UNPKG

@lbrlabs/pulumi-dynatrace

Version:

A Pulumi package for creating and managing Dynatrace cloud resources.

127 lines (126 loc) 6.81 kB
import * as pulumi from "@pulumi/pulumi"; /** * ## Dynatrace Documentation * * - Dynatrace IAM - https://www.dynatrace.com/support/help/how-to-use-dynatrace/user-management-and-sso/manage-groups-and-permissions * * - Settings API - https://www.dynatrace.com/support/help/how-to-use-dynatrace/user-management-and-sso/manage-groups-and-permissions/iam/iam-getting-started * * ## Prerequisites * * Using this resource requires an OAuth client to be configured within your account settings. * The scopes of the OAuth Client need to include `account-idm-read`, `account-idm-write`, `account-env-read`, `account-env-write`, `iam-policies-management`, `iam:policies:write`, `iam:policies:read`, `iam:bindings:write`, `iam:bindings:read` and `iam:effective-permissions:read`. * * Finally the provider configuration requires the credentials for that OAuth Client. * The configuration section of your provider needs to look like this. * ```typescript * import * as pulumi from "@pulumi/pulumi"; * ``` * * ## Resource Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as dynatrace from "@lbrlabs/pulumi-dynatrace"; * * const permA = new dynatrace.IamPermission("permA", { * account: "023733f0-86d8-47d1-88bd-7f5cc2e22eb8", * group: "74ec0a82-8010-4f11-8579-b29a5ba865f0", * }); * ``` */ export declare class IamPermission extends pulumi.CustomResource { /** * Get an existing IamPermission resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: IamPermissionState, opts?: pulumi.CustomResourceOptions): IamPermission; /** * Returns true if the given object is an instance of IamPermission. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is IamPermission; /** * The UUID of the account this permission is valid for */ readonly account: pulumi.Output<string | undefined>; /** * The environment this permission is valid (`https://<environmentid>.live.dynatrace.com`). Also required in when trying to specify a management zone permission. */ readonly environment: pulumi.Output<string | undefined>; /** * The ID of the group this permission is valid for */ readonly group: pulumi.Output<string>; /** * The management zone this permission is valid for. You need to use the attribute `legacyId` when referring to a resource `dynatrace.ManagementZoneV2` or a data source `dynatrace.ManagementZone`. The attribute `environment` is required to get specified also in order to identify the management zone uniquely. */ readonly managementZone: pulumi.Output<string | undefined>; /** * Possible values: `account-company-info`, `account-user-management`, `account-viewer`, `tenant-viewer`, `tenant-manage-settings`, `tenant-agent-install`, `tenant-logviewer`, `tenant-view-sensitive-request-data`, `tenant-configure-request-capture-data`, `tenant-replay-sessions-with-masking`, `tenant-replay-sessions-without-masking`, `tenant-manage-security-problems`, `tenant-manage-support-tickets` */ readonly name: pulumi.Output<string>; /** * Create a IamPermission resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: IamPermissionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering IamPermission resources. */ export interface IamPermissionState { /** * The UUID of the account this permission is valid for */ account?: pulumi.Input<string>; /** * The environment this permission is valid (`https://<environmentid>.live.dynatrace.com`). Also required in when trying to specify a management zone permission. */ environment?: pulumi.Input<string>; /** * The ID of the group this permission is valid for */ group?: pulumi.Input<string>; /** * The management zone this permission is valid for. You need to use the attribute `legacyId` when referring to a resource `dynatrace.ManagementZoneV2` or a data source `dynatrace.ManagementZone`. The attribute `environment` is required to get specified also in order to identify the management zone uniquely. */ managementZone?: pulumi.Input<string>; /** * Possible values: `account-company-info`, `account-user-management`, `account-viewer`, `tenant-viewer`, `tenant-manage-settings`, `tenant-agent-install`, `tenant-logviewer`, `tenant-view-sensitive-request-data`, `tenant-configure-request-capture-data`, `tenant-replay-sessions-with-masking`, `tenant-replay-sessions-without-masking`, `tenant-manage-security-problems`, `tenant-manage-support-tickets` */ name?: pulumi.Input<string>; } /** * The set of arguments for constructing a IamPermission resource. */ export interface IamPermissionArgs { /** * The UUID of the account this permission is valid for */ account?: pulumi.Input<string>; /** * The environment this permission is valid (`https://<environmentid>.live.dynatrace.com`). Also required in when trying to specify a management zone permission. */ environment?: pulumi.Input<string>; /** * The ID of the group this permission is valid for */ group: pulumi.Input<string>; /** * The management zone this permission is valid for. You need to use the attribute `legacyId` when referring to a resource `dynatrace.ManagementZoneV2` or a data source `dynatrace.ManagementZone`. The attribute `environment` is required to get specified also in order to identify the management zone uniquely. */ managementZone?: pulumi.Input<string>; /** * Possible values: `account-company-info`, `account-user-management`, `account-viewer`, `tenant-viewer`, `tenant-manage-settings`, `tenant-agent-install`, `tenant-logviewer`, `tenant-view-sensitive-request-data`, `tenant-configure-request-capture-data`, `tenant-replay-sessions-with-masking`, `tenant-replay-sessions-without-masking`, `tenant-manage-security-problems`, `tenant-manage-support-tickets` */ name?: pulumi.Input<string>; }