import * as pulumi from "@pulumi/pulumi"; import * as enums from "../../types/enums"; /** * Creates a new TagKey. If another request with the same parameters is sent while the original request is in process, the second request will receive an error. A maximum of 1000 TagKeys can exist under a parent at any given time. */ export declare class TagKey extends pulumi.CustomResource { /** * Get an existing TagKey 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): TagKey; /** * Returns true if the given object is an instance of TagKey. 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 TagKey; /** * Creation time. */ readonly createTime: pulumi.Output; /** * Optional. User-assigned description of the TagKey. Must not exceed 256 characters. Read-write. */ readonly description: pulumi.Output; /** * Optional. Entity tag which users can pass to prevent race conditions. This field is always set in server responses. See UpdateTagKeyRequest for details. */ readonly etag: pulumi.Output; /** * Immutable. The resource name for a TagKey. Must be in the format `tagKeys/{tag_key_id}`, where `tag_key_id` is the generated numeric id for the TagKey. */ readonly name: pulumi.Output; /** * Immutable. Namespaced name of the TagKey. */ readonly namespacedName: pulumi.Output; /** * Immutable. The resource name of the TagKey's parent. A TagKey can be parented by an Organization or a Project. For a TagKey parented by an Organization, its parent must be in the form `organizations/{org_id}`. For a TagKey parented by a Project, its parent can be in the form `projects/{project_id}` or `projects/{project_number}`. */ readonly parent: pulumi.Output; /** * Optional. A purpose denotes that this Tag is intended for use in policies of a specific policy engine, and will involve that policy engine in management operations involving this Tag. A purpose does not grant a policy engine exclusive rights to the Tag, and it may be referenced by other policy engines. A purpose cannot be changed once set. */ readonly purpose: pulumi.Output; /** * Optional. Purpose data corresponds to the policy system that the tag is intended for. See documentation for `Purpose` for formatting of this field. Purpose data cannot be changed once set. */ readonly purposeData: pulumi.Output<{ [key: string]: string; }>; /** * Immutable. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace. The short name must be 1-63 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. */ readonly shortName: pulumi.Output; /** * Update time. */ readonly updateTime: pulumi.Output; /** * Create a TagKey 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: TagKeyArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a TagKey resource. */ export interface TagKeyArgs { /** * Optional. User-assigned description of the TagKey. Must not exceed 256 characters. Read-write. */ description?: pulumi.Input; /** * Optional. Entity tag which users can pass to prevent race conditions. This field is always set in server responses. See UpdateTagKeyRequest for details. */ etag?: pulumi.Input; /** * Immutable. The resource name for a TagKey. Must be in the format `tagKeys/{tag_key_id}`, where `tag_key_id` is the generated numeric id for the TagKey. */ name?: pulumi.Input; /** * Immutable. The resource name of the TagKey's parent. A TagKey can be parented by an Organization or a Project. For a TagKey parented by an Organization, its parent must be in the form `organizations/{org_id}`. For a TagKey parented by a Project, its parent can be in the form `projects/{project_id}` or `projects/{project_number}`. */ parent?: pulumi.Input; /** * Optional. A purpose denotes that this Tag is intended for use in policies of a specific policy engine, and will involve that policy engine in management operations involving this Tag. A purpose does not grant a policy engine exclusive rights to the Tag, and it may be referenced by other policy engines. A purpose cannot be changed once set. */ purpose?: pulumi.Input; /** * Optional. Purpose data corresponds to the policy system that the tag is intended for. See documentation for `Purpose` for formatting of this field. Purpose data cannot be changed once set. */ purposeData?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Immutable. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace. The short name must be 1-63 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. */ shortName: pulumi.Input; }