UNPKG

@pulumi/databricks

Version:

A Pulumi package for creating and managing databricks cloud resources.

156 lines (155 loc) 7.13 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Retrieves `applicationIds` of all databricks.ServicePrincipal based on their `displayName` * * > This data source can be used with an account or workspace-level provider. * * ## Example Usage * * Adding all service principals of which display name contains `my-spn` to admin group * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as databricks from "@pulumi/databricks"; * import * as std from "@pulumi/std"; * * export = async () => { * const admins = await databricks.getGroup({ * displayName: "admins", * }); * const spns = await databricks.getServicePrincipals({ * displayNameContains: "my-spn", * }); * const spn = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: await databricks.getServicePrincipal({ * applicationId: __value, * }) })); * const myMemberSpn: databricks.GroupMember[] = []; * for (const range of std.toset({ * input: spns.applicationIds, * }).result.map((v, k) => ({key: k, value: v}))) { * myMemberSpn.push(new databricks.GroupMember(`my_member_spn-${range.key}`, { * groupId: admins.id, * memberId: spn[range.value].spId, * })); * } * } * ``` * * ## Related Resources * * The following resources are used in the same context: * * - End to end workspace management guide. * - databricks.getCurrentUser data to retrieve information about databricks.User or databricks_service_principal, that is calling Databricks REST API. * - databricks.Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups. * - databricks.Group data to retrieve information about databricks.Group members, entitlements and instance profiles. * - databricks.GroupInstanceProfile to attach databricks.InstanceProfile (AWS) to databricks_group. * - databricks.GroupMember to attach users and groups as group members. * - databricks.Permissions to manage [access control](https://docs.databricks.com/security/access-control/index.html) in Databricks workspace. * - databricksService principal to manage service principals */ export declare function getServicePrincipals(args?: GetServicePrincipalsArgs, opts?: pulumi.InvokeOptions): Promise<GetServicePrincipalsResult>; /** * A collection of arguments for invoking getServicePrincipals. */ export interface GetServicePrincipalsArgs { /** * List of `applicationIds` of service principals. Individual service principal can be retrieved using databricks.ServicePrincipal data source or from `servicePrincipals` attribute. */ applicationIds?: string[]; /** * Only return databricks.ServicePrincipal display name that match the given name string */ displayNameContains?: string; /** * List of objects describing individual service principals. Each object has the following attributes: */ servicePrincipals?: inputs.GetServicePrincipalsServicePrincipal[]; } /** * A collection of values returned by getServicePrincipals. */ export interface GetServicePrincipalsResult { /** * List of `applicationIds` of service principals. Individual service principal can be retrieved using databricks.ServicePrincipal data source or from `servicePrincipals` attribute. */ readonly applicationIds: string[]; readonly displayNameContains: string; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; /** * List of objects describing individual service principals. Each object has the following attributes: */ readonly servicePrincipals: outputs.GetServicePrincipalsServicePrincipal[]; } /** * Retrieves `applicationIds` of all databricks.ServicePrincipal based on their `displayName` * * > This data source can be used with an account or workspace-level provider. * * ## Example Usage * * Adding all service principals of which display name contains `my-spn` to admin group * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as databricks from "@pulumi/databricks"; * import * as std from "@pulumi/std"; * * export = async () => { * const admins = await databricks.getGroup({ * displayName: "admins", * }); * const spns = await databricks.getServicePrincipals({ * displayNameContains: "my-spn", * }); * const spn = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: await databricks.getServicePrincipal({ * applicationId: __value, * }) })); * const myMemberSpn: databricks.GroupMember[] = []; * for (const range of std.toset({ * input: spns.applicationIds, * }).result.map((v, k) => ({key: k, value: v}))) { * myMemberSpn.push(new databricks.GroupMember(`my_member_spn-${range.key}`, { * groupId: admins.id, * memberId: spn[range.value].spId, * })); * } * } * ``` * * ## Related Resources * * The following resources are used in the same context: * * - End to end workspace management guide. * - databricks.getCurrentUser data to retrieve information about databricks.User or databricks_service_principal, that is calling Databricks REST API. * - databricks.Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups. * - databricks.Group data to retrieve information about databricks.Group members, entitlements and instance profiles. * - databricks.GroupInstanceProfile to attach databricks.InstanceProfile (AWS) to databricks_group. * - databricks.GroupMember to attach users and groups as group members. * - databricks.Permissions to manage [access control](https://docs.databricks.com/security/access-control/index.html) in Databricks workspace. * - databricksService principal to manage service principals */ export declare function getServicePrincipalsOutput(args?: GetServicePrincipalsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetServicePrincipalsResult>; /** * A collection of arguments for invoking getServicePrincipals. */ export interface GetServicePrincipalsOutputArgs { /** * List of `applicationIds` of service principals. Individual service principal can be retrieved using databricks.ServicePrincipal data source or from `servicePrincipals` attribute. */ applicationIds?: pulumi.Input<pulumi.Input<string>[]>; /** * Only return databricks.ServicePrincipal display name that match the given name string */ displayNameContains?: pulumi.Input<string>; /** * List of objects describing individual service principals. Each object has the following attributes: */ servicePrincipals?: pulumi.Input<pulumi.Input<inputs.GetServicePrincipalsServicePrincipalArgs>[]>; }