import * as pulumi from "@pulumi/pulumi"; import * as enums from "../../types/enums"; /** * Creates a new custom Role. */ export declare class Role extends pulumi.CustomResource { /** * Get an existing Role 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 opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): Role; /** * Returns true if the given object is an instance of Role. 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 Role; /** * The current deleted state of the role. This field is read only. It will be ignored in calls to CreateRole and UpdateRole. */ readonly deleted: pulumi.Output; /** * Optional. A human-readable description for the role. */ readonly description: pulumi.Output; /** * Used to perform a consistent read-modify-write. */ readonly etag: pulumi.Output; /** * The names of the permissions this role grants when bound in an IAM policy. */ readonly includedPermissions: pulumi.Output; /** * The name of the role. When `Role` is used in `CreateRole`, the role name must not be set. When `Role` is used in output and other input such as `UpdateRole`, the role name is the complete path. For example, `roles/logging.viewer` for predefined roles, `organizations/{ORGANIZATION_ID}/roles/my-role` for organization-level custom roles, and `projects/{PROJECT_ID}/roles/my-role` for project-level custom roles. */ readonly name: pulumi.Output; readonly project: pulumi.Output; /** * The current launch stage of the role. If the `ALPHA` launch stage has been selected for a role, the `stage` field will not be included in the returned definition for the role. */ readonly stage: pulumi.Output; /** * Optional. A human-readable title for the role. Typically this is limited to 100 UTF-8 bytes. */ readonly title: pulumi.Output; /** * Create a Role 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?: RoleArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a Role resource. */ export interface RoleArgs { /** * The current deleted state of the role. This field is read only. It will be ignored in calls to CreateRole and UpdateRole. */ deleted?: pulumi.Input; /** * Optional. A human-readable description for the role. */ description?: pulumi.Input; /** * Used to perform a consistent read-modify-write. */ etag?: pulumi.Input; /** * The names of the permissions this role grants when bound in an IAM policy. */ includedPermissions?: pulumi.Input[]>; /** * The name of the role. When `Role` is used in `CreateRole`, the role name must not be set. When `Role` is used in output and other input such as `UpdateRole`, the role name is the complete path. For example, `roles/logging.viewer` for predefined roles, `organizations/{ORGANIZATION_ID}/roles/my-role` for organization-level custom roles, and `projects/{PROJECT_ID}/roles/my-role` for project-level custom roles. */ name?: pulumi.Input; project?: pulumi.Input; /** * The role ID to use for this role. A role ID may contain alphanumeric characters, underscores (`_`), and periods (`.`). It must contain a minimum of 3 characters and a maximum of 64 characters. */ roleId?: pulumi.Input; /** * The current launch stage of the role. If the `ALPHA` launch stage has been selected for a role, the `stage` field will not be included in the returned definition for the role. */ stage?: pulumi.Input; /** * Optional. A human-readable title for the role. Typically this is limited to 100 UTF-8 bytes. */ title?: pulumi.Input; }