@pulumi/databricks
Version:
A Pulumi package for creating and managing databricks cloud resources.
156 lines (155 loc) • 7.13 kB
TypeScript
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>[]>;
}