import * as pulumi from "@pulumi/pulumi"; /** * A TagKey, used to group a set of TagValues. * * To get more information about TagKey, see: * * * [API documentation](https://cloud.google.com/resource-manager/reference/rest/v3/tagKeys) * * How-to Guides * * [Official Documentation](https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing) * * ## Example Usage * * ### Tag Key Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const key = new gcp.tags.TagKey("key", { * parent: "organizations/123456789", * shortName: "keyname", * description: "For keyname resources.", * }); * ``` * * ## Import * * TagKey can be imported using any of these accepted formats: * * * `tagKeys/{{name}}` * * * `{{name}}` * * When using the `pulumi import` command, TagKey can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:tags/tagKey:TagKey default tagKeys/{{name}} * ``` * * ```sh * $ pulumi import gcp:tags/tagKey:TagKey default {{name}} * ``` */ 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 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, state?: TagKeyState, 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; /** * Output only. Creation time. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". */ readonly createTime: pulumi.Output; /** * User-assigned description of the TagKey. Must not exceed 256 characters. */ readonly description: pulumi.Output; /** * The generated numeric id for the TagKey. */ readonly name: pulumi.Output; /** * Output only. Namespaced name of the TagKey. */ readonly namespacedName: pulumi.Output; /** * Input only. The resource name of the new TagKey's parent. Must be of the form organizations/{org_id} or projects/{project_id_or_number}. */ readonly parent: pulumi.Output; /** * Optional. A purpose cannot be changed once set. * 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. * Possible values are: `GCE_FIREWALL`, `DATA_GOVERNANCE`. */ readonly purpose: pulumi.Output; /** * Optional. Purpose data cannot be changed once set. * Purpose data corresponds to the policy system that the tag is intended for. For example, the GCE_FIREWALL purpose expects data in the following format: `network = "/"`. */ readonly purposeData: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Input only. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace. * The short name can have a maximum length of 256 characters. The permitted character set for the shortName includes all UTF-8 encoded Unicode characters except single quotes ('), double quotes ("), backslashes (\\), and forward slashes (/). */ readonly shortName: pulumi.Output; /** * Output only. Update time. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". */ 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); } /** * Input properties used for looking up and filtering TagKey resources. */ export interface TagKeyState { /** * Output only. Creation time. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". */ createTime?: pulumi.Input; /** * User-assigned description of the TagKey. Must not exceed 256 characters. */ description?: pulumi.Input; /** * The generated numeric id for the TagKey. */ name?: pulumi.Input; /** * Output only. Namespaced name of the TagKey. */ namespacedName?: pulumi.Input; /** * Input only. The resource name of the new TagKey's parent. Must be of the form organizations/{org_id} or projects/{project_id_or_number}. */ parent?: pulumi.Input; /** * Optional. A purpose cannot be changed once set. * 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. * Possible values are: `GCE_FIREWALL`, `DATA_GOVERNANCE`. */ purpose?: pulumi.Input; /** * Optional. Purpose data cannot be changed once set. * Purpose data corresponds to the policy system that the tag is intended for. For example, the GCE_FIREWALL purpose expects data in the following format: `network = "/"`. */ purposeData?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Input only. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace. * The short name can have a maximum length of 256 characters. The permitted character set for the shortName includes all UTF-8 encoded Unicode characters except single quotes ('), double quotes ("), backslashes (\\), and forward slashes (/). */ shortName?: pulumi.Input; /** * Output only. Update time. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a TagKey resource. */ export interface TagKeyArgs { /** * User-assigned description of the TagKey. Must not exceed 256 characters. */ description?: pulumi.Input; /** * Input only. The resource name of the new TagKey's parent. Must be of the form organizations/{org_id} or projects/{project_id_or_number}. */ parent: pulumi.Input; /** * Optional. A purpose cannot be changed once set. * 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. * Possible values are: `GCE_FIREWALL`, `DATA_GOVERNANCE`. */ purpose?: pulumi.Input; /** * Optional. Purpose data cannot be changed once set. * Purpose data corresponds to the policy system that the tag is intended for. For example, the GCE_FIREWALL purpose expects data in the following format: `network = "/"`. */ purposeData?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Input only. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace. * The short name can have a maximum length of 256 characters. The permitted character set for the shortName includes all UTF-8 encoded Unicode characters except single quotes ('), double quotes ("), backslashes (\\), and forward slashes (/). */ shortName: pulumi.Input; }