tags

package
v7.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GetTagKeysArgs added in v7.19.0

type GetTagKeysArgs struct {
	// The resource name of the parent organization or project. It can be in format `organizations/{org_id}` or `projects/{project_id_or_number}`.
	Parent string `pulumi:"parent"`
}

A collection of arguments for invoking getTagKeys.

type GetTagKeysKey added in v7.19.0

type GetTagKeysKey struct {
	// 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 string `pulumi:"createTime"`
	// User-assigned description of the TagKey.
	Description string `pulumi:"description"`
	// an identifier for the resource with format `tagKeys/{{name}}`
	Name string `pulumi:"name"`
	// Namespaced name of the TagKey which is in the format `{parentNamespace}/{shortName}`.
	NamespacedName string `pulumi:"namespacedName"`
	// The resource name of the parent organization or project. It can be in format `organizations/{org_id}` or `projects/{project_id_or_number}`.
	Parent string `pulumi:"parent"`
	// 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.
	Purpose string `pulumi:"purpose"`
	// Purpose data corresponds to the policy system that the tag is intended for. See documentation for Purpose for formatting of this field.
	PurposeData map[string]string `pulumi:"purposeData"`
	// The user friendly name for a TagKey. The short name should be unique for TagKeys wihting the same tag namespace.
	ShortName string `pulumi:"shortName"`
	// 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 string `pulumi:"updateTime"`
}

type GetTagKeysKeyArgs added in v7.19.0

type GetTagKeysKeyArgs struct {
	// 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.StringInput `pulumi:"createTime"`
	// User-assigned description of the TagKey.
	Description pulumi.StringInput `pulumi:"description"`
	// an identifier for the resource with format `tagKeys/{{name}}`
	Name pulumi.StringInput `pulumi:"name"`
	// Namespaced name of the TagKey which is in the format `{parentNamespace}/{shortName}`.
	NamespacedName pulumi.StringInput `pulumi:"namespacedName"`
	// The resource name of the parent organization or project. It can be in format `organizations/{org_id}` or `projects/{project_id_or_number}`.
	Parent pulumi.StringInput `pulumi:"parent"`
	// 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.
	Purpose pulumi.StringInput `pulumi:"purpose"`
	// Purpose data corresponds to the policy system that the tag is intended for. See documentation for Purpose for formatting of this field.
	PurposeData pulumi.StringMapInput `pulumi:"purposeData"`
	// The user friendly name for a TagKey. The short name should be unique for TagKeys wihting the same tag namespace.
	ShortName pulumi.StringInput `pulumi:"shortName"`
	// 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.StringInput `pulumi:"updateTime"`
}

func (GetTagKeysKeyArgs) ElementType added in v7.19.0

func (GetTagKeysKeyArgs) ElementType() reflect.Type

func (GetTagKeysKeyArgs) ToGetTagKeysKeyOutput added in v7.19.0

func (i GetTagKeysKeyArgs) ToGetTagKeysKeyOutput() GetTagKeysKeyOutput

func (GetTagKeysKeyArgs) ToGetTagKeysKeyOutputWithContext added in v7.19.0

func (i GetTagKeysKeyArgs) ToGetTagKeysKeyOutputWithContext(ctx context.Context) GetTagKeysKeyOutput

type GetTagKeysKeyArray added in v7.19.0

type GetTagKeysKeyArray []GetTagKeysKeyInput

func (GetTagKeysKeyArray) ElementType added in v7.19.0

func (GetTagKeysKeyArray) ElementType() reflect.Type

func (GetTagKeysKeyArray) ToGetTagKeysKeyArrayOutput added in v7.19.0

func (i GetTagKeysKeyArray) ToGetTagKeysKeyArrayOutput() GetTagKeysKeyArrayOutput

func (GetTagKeysKeyArray) ToGetTagKeysKeyArrayOutputWithContext added in v7.19.0

func (i GetTagKeysKeyArray) ToGetTagKeysKeyArrayOutputWithContext(ctx context.Context) GetTagKeysKeyArrayOutput

type GetTagKeysKeyArrayInput added in v7.19.0

type GetTagKeysKeyArrayInput interface {
	pulumi.Input

	ToGetTagKeysKeyArrayOutput() GetTagKeysKeyArrayOutput
	ToGetTagKeysKeyArrayOutputWithContext(context.Context) GetTagKeysKeyArrayOutput
}

GetTagKeysKeyArrayInput is an input type that accepts GetTagKeysKeyArray and GetTagKeysKeyArrayOutput values. You can construct a concrete instance of `GetTagKeysKeyArrayInput` via:

GetTagKeysKeyArray{ GetTagKeysKeyArgs{...} }

type GetTagKeysKeyArrayOutput added in v7.19.0

type GetTagKeysKeyArrayOutput struct{ *pulumi.OutputState }

func (GetTagKeysKeyArrayOutput) ElementType added in v7.19.0

func (GetTagKeysKeyArrayOutput) ElementType() reflect.Type

func (GetTagKeysKeyArrayOutput) Index added in v7.19.0

func (GetTagKeysKeyArrayOutput) ToGetTagKeysKeyArrayOutput added in v7.19.0

func (o GetTagKeysKeyArrayOutput) ToGetTagKeysKeyArrayOutput() GetTagKeysKeyArrayOutput

func (GetTagKeysKeyArrayOutput) ToGetTagKeysKeyArrayOutputWithContext added in v7.19.0

func (o GetTagKeysKeyArrayOutput) ToGetTagKeysKeyArrayOutputWithContext(ctx context.Context) GetTagKeysKeyArrayOutput

type GetTagKeysKeyInput added in v7.19.0

type GetTagKeysKeyInput interface {
	pulumi.Input

	ToGetTagKeysKeyOutput() GetTagKeysKeyOutput
	ToGetTagKeysKeyOutputWithContext(context.Context) GetTagKeysKeyOutput
}

GetTagKeysKeyInput is an input type that accepts GetTagKeysKeyArgs and GetTagKeysKeyOutput values. You can construct a concrete instance of `GetTagKeysKeyInput` via:

GetTagKeysKeyArgs{...}

type GetTagKeysKeyOutput added in v7.19.0

type GetTagKeysKeyOutput struct{ *pulumi.OutputState }

func (GetTagKeysKeyOutput) CreateTime added in v7.19.0

func (o GetTagKeysKeyOutput) CreateTime() pulumi.StringOutput

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".

func (GetTagKeysKeyOutput) Description added in v7.19.0

func (o GetTagKeysKeyOutput) Description() pulumi.StringOutput

User-assigned description of the TagKey.

func (GetTagKeysKeyOutput) ElementType added in v7.19.0

func (GetTagKeysKeyOutput) ElementType() reflect.Type

func (GetTagKeysKeyOutput) Name added in v7.19.0

an identifier for the resource with format `tagKeys/{{name}}`

func (GetTagKeysKeyOutput) NamespacedName added in v7.19.0

func (o GetTagKeysKeyOutput) NamespacedName() pulumi.StringOutput

Namespaced name of the TagKey which is in the format `{parentNamespace}/{shortName}`.

func (GetTagKeysKeyOutput) Parent added in v7.19.0

The resource name of the parent organization or project. It can be in format `organizations/{org_id}` or `projects/{project_id_or_number}`.

func (GetTagKeysKeyOutput) Purpose added in v7.19.0

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.

func (GetTagKeysKeyOutput) PurposeData added in v7.19.0

func (o GetTagKeysKeyOutput) PurposeData() pulumi.StringMapOutput

Purpose data corresponds to the policy system that the tag is intended for. See documentation for Purpose for formatting of this field.

func (GetTagKeysKeyOutput) ShortName added in v7.19.0

func (o GetTagKeysKeyOutput) ShortName() pulumi.StringOutput

The user friendly name for a TagKey. The short name should be unique for TagKeys wihting the same tag namespace.

func (GetTagKeysKeyOutput) ToGetTagKeysKeyOutput added in v7.19.0

func (o GetTagKeysKeyOutput) ToGetTagKeysKeyOutput() GetTagKeysKeyOutput

func (GetTagKeysKeyOutput) ToGetTagKeysKeyOutputWithContext added in v7.19.0

func (o GetTagKeysKeyOutput) ToGetTagKeysKeyOutputWithContext(ctx context.Context) GetTagKeysKeyOutput

func (GetTagKeysKeyOutput) UpdateTime added in v7.19.0

func (o GetTagKeysKeyOutput) UpdateTime() pulumi.StringOutput

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".

type GetTagKeysOutputArgs added in v7.19.0

type GetTagKeysOutputArgs struct {
	// The resource name of the parent organization or project. It can be in format `organizations/{org_id}` or `projects/{project_id_or_number}`.
	Parent pulumi.StringInput `pulumi:"parent"`
}

A collection of arguments for invoking getTagKeys.

func (GetTagKeysOutputArgs) ElementType added in v7.19.0

func (GetTagKeysOutputArgs) ElementType() reflect.Type

type GetTagKeysResult added in v7.19.0

type GetTagKeysResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id   string          `pulumi:"id"`
	Keys []GetTagKeysKey `pulumi:"keys"`
	// The resource name of the TagKey's parent. A TagKey can be parented by an Orgination or a Project.
	Parent string `pulumi:"parent"`
}

A collection of values returned by getTagKeys.

func GetTagKeys added in v7.19.0

func GetTagKeys(ctx *pulumi.Context, args *GetTagKeysArgs, opts ...pulumi.InvokeOption) (*GetTagKeysResult, error)

Get tag keys by org or project `parent`.

## Example Usage

type GetTagKeysResultOutput added in v7.19.0

type GetTagKeysResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTagKeys.

func GetTagKeysOutput added in v7.19.0

func GetTagKeysOutput(ctx *pulumi.Context, args GetTagKeysOutputArgs, opts ...pulumi.InvokeOption) GetTagKeysResultOutput

func (GetTagKeysResultOutput) ElementType added in v7.19.0

func (GetTagKeysResultOutput) ElementType() reflect.Type

func (GetTagKeysResultOutput) Id added in v7.19.0

The provider-assigned unique ID for this managed resource.

func (GetTagKeysResultOutput) Keys added in v7.19.0

func (GetTagKeysResultOutput) Parent added in v7.19.0

The resource name of the TagKey's parent. A TagKey can be parented by an Orgination or a Project.

func (GetTagKeysResultOutput) ToGetTagKeysResultOutput added in v7.19.0

func (o GetTagKeysResultOutput) ToGetTagKeysResultOutput() GetTagKeysResultOutput

func (GetTagKeysResultOutput) ToGetTagKeysResultOutputWithContext added in v7.19.0

func (o GetTagKeysResultOutput) ToGetTagKeysResultOutputWithContext(ctx context.Context) GetTagKeysResultOutput

type GetTagValuesArgs added in v7.19.0

type GetTagValuesArgs struct {
	// The resource name of the parent tagKey in format `tagKey/{name}`.
	Parent string `pulumi:"parent"`
}

A collection of arguments for invoking getTagValues.

type GetTagValuesOutputArgs added in v7.19.0

type GetTagValuesOutputArgs struct {
	// The resource name of the parent tagKey in format `tagKey/{name}`.
	Parent pulumi.StringInput `pulumi:"parent"`
}

A collection of arguments for invoking getTagValues.

func (GetTagValuesOutputArgs) ElementType added in v7.19.0

func (GetTagValuesOutputArgs) ElementType() reflect.Type

type GetTagValuesResult added in v7.19.0

type GetTagValuesResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The resource name of the new TagValue's parent TagKey. Must be of the form tagKeys/{tag_key_id}.
	Parent string              `pulumi:"parent"`
	Values []GetTagValuesValue `pulumi:"values"`
}

A collection of values returned by getTagValues.

func GetTagValues added in v7.19.0

func GetTagValues(ctx *pulumi.Context, args *GetTagValuesArgs, opts ...pulumi.InvokeOption) (*GetTagValuesResult, error)

Get tag values from a `parent` key.

## Example Usage

type GetTagValuesResultOutput added in v7.19.0

type GetTagValuesResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTagValues.

func GetTagValuesOutput added in v7.19.0

func GetTagValuesOutput(ctx *pulumi.Context, args GetTagValuesOutputArgs, opts ...pulumi.InvokeOption) GetTagValuesResultOutput

func (GetTagValuesResultOutput) ElementType added in v7.19.0

func (GetTagValuesResultOutput) ElementType() reflect.Type

func (GetTagValuesResultOutput) Id added in v7.19.0

The provider-assigned unique ID for this managed resource.

func (GetTagValuesResultOutput) Parent added in v7.19.0

The resource name of the new TagValue's parent TagKey. Must be of the form tagKeys/{tag_key_id}.

func (GetTagValuesResultOutput) ToGetTagValuesResultOutput added in v7.19.0

func (o GetTagValuesResultOutput) ToGetTagValuesResultOutput() GetTagValuesResultOutput

func (GetTagValuesResultOutput) ToGetTagValuesResultOutputWithContext added in v7.19.0

func (o GetTagValuesResultOutput) ToGetTagValuesResultOutputWithContext(ctx context.Context) GetTagValuesResultOutput

func (GetTagValuesResultOutput) Values added in v7.19.0

type GetTagValuesValue added in v7.19.0

type GetTagValuesValue struct {
	// 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 string `pulumi:"createTime"`
	// User-assigned description of the TagValue.
	Description string `pulumi:"description"`
	// an identifier for the resource with format `tagValues/{{name}}`
	Name string `pulumi:"name"`
	// Namespaced name of the TagValue.
	NamespacedName string `pulumi:"namespacedName"`
	// The resource name of the parent tagKey in format `tagKey/{name}`.
	Parent string `pulumi:"parent"`
	// User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.
	ShortName string `pulumi:"shortName"`
	// 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 string `pulumi:"updateTime"`
}

type GetTagValuesValueArgs added in v7.19.0

type GetTagValuesValueArgs struct {
	// 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.StringInput `pulumi:"createTime"`
	// User-assigned description of the TagValue.
	Description pulumi.StringInput `pulumi:"description"`
	// an identifier for the resource with format `tagValues/{{name}}`
	Name pulumi.StringInput `pulumi:"name"`
	// Namespaced name of the TagValue.
	NamespacedName pulumi.StringInput `pulumi:"namespacedName"`
	// The resource name of the parent tagKey in format `tagKey/{name}`.
	Parent pulumi.StringInput `pulumi:"parent"`
	// User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.
	ShortName pulumi.StringInput `pulumi:"shortName"`
	// 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.StringInput `pulumi:"updateTime"`
}

func (GetTagValuesValueArgs) ElementType added in v7.19.0

func (GetTagValuesValueArgs) ElementType() reflect.Type

func (GetTagValuesValueArgs) ToGetTagValuesValueOutput added in v7.19.0

func (i GetTagValuesValueArgs) ToGetTagValuesValueOutput() GetTagValuesValueOutput

func (GetTagValuesValueArgs) ToGetTagValuesValueOutputWithContext added in v7.19.0

func (i GetTagValuesValueArgs) ToGetTagValuesValueOutputWithContext(ctx context.Context) GetTagValuesValueOutput

type GetTagValuesValueArray added in v7.19.0

type GetTagValuesValueArray []GetTagValuesValueInput

func (GetTagValuesValueArray) ElementType added in v7.19.0

func (GetTagValuesValueArray) ElementType() reflect.Type

func (GetTagValuesValueArray) ToGetTagValuesValueArrayOutput added in v7.19.0

func (i GetTagValuesValueArray) ToGetTagValuesValueArrayOutput() GetTagValuesValueArrayOutput

func (GetTagValuesValueArray) ToGetTagValuesValueArrayOutputWithContext added in v7.19.0

func (i GetTagValuesValueArray) ToGetTagValuesValueArrayOutputWithContext(ctx context.Context) GetTagValuesValueArrayOutput

type GetTagValuesValueArrayInput added in v7.19.0

type GetTagValuesValueArrayInput interface {
	pulumi.Input

	ToGetTagValuesValueArrayOutput() GetTagValuesValueArrayOutput
	ToGetTagValuesValueArrayOutputWithContext(context.Context) GetTagValuesValueArrayOutput
}

GetTagValuesValueArrayInput is an input type that accepts GetTagValuesValueArray and GetTagValuesValueArrayOutput values. You can construct a concrete instance of `GetTagValuesValueArrayInput` via:

GetTagValuesValueArray{ GetTagValuesValueArgs{...} }

type GetTagValuesValueArrayOutput added in v7.19.0

type GetTagValuesValueArrayOutput struct{ *pulumi.OutputState }

func (GetTagValuesValueArrayOutput) ElementType added in v7.19.0

func (GetTagValuesValueArrayOutput) Index added in v7.19.0

func (GetTagValuesValueArrayOutput) ToGetTagValuesValueArrayOutput added in v7.19.0

func (o GetTagValuesValueArrayOutput) ToGetTagValuesValueArrayOutput() GetTagValuesValueArrayOutput

func (GetTagValuesValueArrayOutput) ToGetTagValuesValueArrayOutputWithContext added in v7.19.0

func (o GetTagValuesValueArrayOutput) ToGetTagValuesValueArrayOutputWithContext(ctx context.Context) GetTagValuesValueArrayOutput

type GetTagValuesValueInput added in v7.19.0

type GetTagValuesValueInput interface {
	pulumi.Input

	ToGetTagValuesValueOutput() GetTagValuesValueOutput
	ToGetTagValuesValueOutputWithContext(context.Context) GetTagValuesValueOutput
}

GetTagValuesValueInput is an input type that accepts GetTagValuesValueArgs and GetTagValuesValueOutput values. You can construct a concrete instance of `GetTagValuesValueInput` via:

GetTagValuesValueArgs{...}

type GetTagValuesValueOutput added in v7.19.0

type GetTagValuesValueOutput struct{ *pulumi.OutputState }

func (GetTagValuesValueOutput) CreateTime added in v7.19.0

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".

func (GetTagValuesValueOutput) Description added in v7.19.0

User-assigned description of the TagValue.

func (GetTagValuesValueOutput) ElementType added in v7.19.0

func (GetTagValuesValueOutput) ElementType() reflect.Type

func (GetTagValuesValueOutput) Name added in v7.19.0

an identifier for the resource with format `tagValues/{{name}}`

func (GetTagValuesValueOutput) NamespacedName added in v7.19.0

func (o GetTagValuesValueOutput) NamespacedName() pulumi.StringOutput

Namespaced name of the TagValue.

func (GetTagValuesValueOutput) Parent added in v7.19.0

The resource name of the parent tagKey in format `tagKey/{name}`.

func (GetTagValuesValueOutput) ShortName added in v7.19.0

User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.

func (GetTagValuesValueOutput) ToGetTagValuesValueOutput added in v7.19.0

func (o GetTagValuesValueOutput) ToGetTagValuesValueOutput() GetTagValuesValueOutput

func (GetTagValuesValueOutput) ToGetTagValuesValueOutputWithContext added in v7.19.0

func (o GetTagValuesValueOutput) ToGetTagValuesValueOutputWithContext(ctx context.Context) GetTagValuesValueOutput

func (GetTagValuesValueOutput) UpdateTime added in v7.19.0

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".

type LocationTagBinding

type LocationTagBinding struct {
	pulumi.CustomResourceState

	// Location of the target resource.
	//
	// ***
	Location pulumi.StringPtrOutput `pulumi:"location"`
	// The generated id for the TagBinding. This is a string of the form: `tagBindings/{parent}/{tag-value-name}`
	Name pulumi.StringOutput `pulumi:"name"`
	// The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123
	Parent pulumi.StringOutput `pulumi:"parent"`
	// The TagValue of the TagBinding. Must be of the form tagValues/456.
	TagValue pulumi.StringOutput `pulumi:"tagValue"`
}

A LocationTagBinding represents a connection between a TagValue and a non-global target such as a Cloud Run Service or Compute Instance. Once a LocationTagBinding is created, the TagValue is applied to all the descendants of the cloud resource.

To get more information about LocationTagBinding, see:

* [API documentation](https://cloud.google.com/resource-manager/reference/rest/v3/tagBindings) * How-to Guides

## Example Usage

### Cloud Run Service

To bind a tag to a Cloud Run service:

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
			ProjectId: pulumi.String("project_id"),
			Name:      pulumi.String("project_id"),
			OrgId:     pulumi.String("123456789"),
		})
		if err != nil {
			return err
		}
		key, err := tags.NewTagKey(ctx, "key", &tags.TagKeyArgs{
			Parent:      pulumi.String("organizations/123456789"),
			ShortName:   pulumi.String("keyname"),
			Description: pulumi.String("For keyname resources."),
		})
		if err != nil {
			return err
		}
		value, err := tags.NewTagValue(ctx, "value", &tags.TagValueArgs{
			Parent: key.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("tagKeys/%v", name), nil
			}).(pulumi.StringOutput),
			ShortName:   pulumi.String("valuename"),
			Description: pulumi.String("For valuename resources."),
		})
		if err != nil {
			return err
		}
		_, err = tags.NewLocationTagBinding(ctx, "binding", &tags.LocationTagBindingArgs{
			Parent: pulumi.String(fmt.Sprintf("//run.googleapis.com/projects/%v/locations/%v/services/%v", projectGoogleProject.Number, _default.Location, _default.Name)),
			TagValue: value.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("tagValues/%v", name), nil
			}).(pulumi.StringOutput),
			Location: pulumi.String("us-central1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

### Compute Instance

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
			ProjectId: pulumi.String("project_id"),
			Name:      pulumi.String("project_id"),
			OrgId:     pulumi.String("123456789"),
		})
		if err != nil {
			return err
		}
		key, err := tags.NewTagKey(ctx, "key", &tags.TagKeyArgs{
			Parent:      pulumi.String("organizations/123456789"),
			ShortName:   pulumi.String("keyname"),
			Description: pulumi.String("For keyname resources."),
		})
		if err != nil {
			return err
		}
		value, err := tags.NewTagValue(ctx, "value", &tags.TagValueArgs{
			Parent: key.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("tagKeys/%v", name), nil
			}).(pulumi.StringOutput),
			ShortName:   pulumi.String("valuename"),
			Description: pulumi.String("For valuename resources."),
		})
		if err != nil {
			return err
		}
		_, err = tags.NewLocationTagBinding(ctx, "binding", &tags.LocationTagBindingArgs{
			Parent: project.Number.ApplyT(func(number string) (string, error) {
				return fmt.Sprintf("//compute.googleapis.com/projects/%v/zones/us-central1-a/instances/%v", number, instance.InstanceId), nil
			}).(pulumi.StringOutput),
			TagValue: value.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("tagValues/%v", name), nil
			}).(pulumi.StringOutput),
			Location: pulumi.String("us-central1-a"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

LocationTagBinding can be imported using any of these accepted formats:

* `{{location}}/{{name}}`

When using the `pulumi import` command, TagBinding can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:tags/locationTagBinding:LocationTagBinding default {{location}}/{{name}} ```

func GetLocationTagBinding

func GetLocationTagBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LocationTagBindingState, opts ...pulumi.ResourceOption) (*LocationTagBinding, error)

GetLocationTagBinding gets an existing LocationTagBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewLocationTagBinding

func NewLocationTagBinding(ctx *pulumi.Context,
	name string, args *LocationTagBindingArgs, opts ...pulumi.ResourceOption) (*LocationTagBinding, error)

NewLocationTagBinding registers a new resource with the given unique name, arguments, and options.

func (*LocationTagBinding) ElementType

func (*LocationTagBinding) ElementType() reflect.Type

func (*LocationTagBinding) ToLocationTagBindingOutput

func (i *LocationTagBinding) ToLocationTagBindingOutput() LocationTagBindingOutput

func (*LocationTagBinding) ToLocationTagBindingOutputWithContext

func (i *LocationTagBinding) ToLocationTagBindingOutputWithContext(ctx context.Context) LocationTagBindingOutput

type LocationTagBindingArgs

type LocationTagBindingArgs struct {
	// Location of the target resource.
	//
	// ***
	Location pulumi.StringPtrInput
	// The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123
	Parent pulumi.StringInput
	// The TagValue of the TagBinding. Must be of the form tagValues/456.
	TagValue pulumi.StringInput
}

The set of arguments for constructing a LocationTagBinding resource.

func (LocationTagBindingArgs) ElementType

func (LocationTagBindingArgs) ElementType() reflect.Type

type LocationTagBindingArray

type LocationTagBindingArray []LocationTagBindingInput

func (LocationTagBindingArray) ElementType

func (LocationTagBindingArray) ElementType() reflect.Type

func (LocationTagBindingArray) ToLocationTagBindingArrayOutput

func (i LocationTagBindingArray) ToLocationTagBindingArrayOutput() LocationTagBindingArrayOutput

func (LocationTagBindingArray) ToLocationTagBindingArrayOutputWithContext

func (i LocationTagBindingArray) ToLocationTagBindingArrayOutputWithContext(ctx context.Context) LocationTagBindingArrayOutput

type LocationTagBindingArrayInput

type LocationTagBindingArrayInput interface {
	pulumi.Input

	ToLocationTagBindingArrayOutput() LocationTagBindingArrayOutput
	ToLocationTagBindingArrayOutputWithContext(context.Context) LocationTagBindingArrayOutput
}

LocationTagBindingArrayInput is an input type that accepts LocationTagBindingArray and LocationTagBindingArrayOutput values. You can construct a concrete instance of `LocationTagBindingArrayInput` via:

LocationTagBindingArray{ LocationTagBindingArgs{...} }

type LocationTagBindingArrayOutput

type LocationTagBindingArrayOutput struct{ *pulumi.OutputState }

func (LocationTagBindingArrayOutput) ElementType

func (LocationTagBindingArrayOutput) Index

func (LocationTagBindingArrayOutput) ToLocationTagBindingArrayOutput

func (o LocationTagBindingArrayOutput) ToLocationTagBindingArrayOutput() LocationTagBindingArrayOutput

func (LocationTagBindingArrayOutput) ToLocationTagBindingArrayOutputWithContext

func (o LocationTagBindingArrayOutput) ToLocationTagBindingArrayOutputWithContext(ctx context.Context) LocationTagBindingArrayOutput

type LocationTagBindingInput

type LocationTagBindingInput interface {
	pulumi.Input

	ToLocationTagBindingOutput() LocationTagBindingOutput
	ToLocationTagBindingOutputWithContext(ctx context.Context) LocationTagBindingOutput
}

type LocationTagBindingMap

type LocationTagBindingMap map[string]LocationTagBindingInput

func (LocationTagBindingMap) ElementType

func (LocationTagBindingMap) ElementType() reflect.Type

func (LocationTagBindingMap) ToLocationTagBindingMapOutput

func (i LocationTagBindingMap) ToLocationTagBindingMapOutput() LocationTagBindingMapOutput

func (LocationTagBindingMap) ToLocationTagBindingMapOutputWithContext

func (i LocationTagBindingMap) ToLocationTagBindingMapOutputWithContext(ctx context.Context) LocationTagBindingMapOutput

type LocationTagBindingMapInput

type LocationTagBindingMapInput interface {
	pulumi.Input

	ToLocationTagBindingMapOutput() LocationTagBindingMapOutput
	ToLocationTagBindingMapOutputWithContext(context.Context) LocationTagBindingMapOutput
}

LocationTagBindingMapInput is an input type that accepts LocationTagBindingMap and LocationTagBindingMapOutput values. You can construct a concrete instance of `LocationTagBindingMapInput` via:

LocationTagBindingMap{ "key": LocationTagBindingArgs{...} }

type LocationTagBindingMapOutput

type LocationTagBindingMapOutput struct{ *pulumi.OutputState }

func (LocationTagBindingMapOutput) ElementType

func (LocationTagBindingMapOutput) MapIndex

func (LocationTagBindingMapOutput) ToLocationTagBindingMapOutput

func (o LocationTagBindingMapOutput) ToLocationTagBindingMapOutput() LocationTagBindingMapOutput

func (LocationTagBindingMapOutput) ToLocationTagBindingMapOutputWithContext

func (o LocationTagBindingMapOutput) ToLocationTagBindingMapOutputWithContext(ctx context.Context) LocationTagBindingMapOutput

type LocationTagBindingOutput

type LocationTagBindingOutput struct{ *pulumi.OutputState }

func (LocationTagBindingOutput) ElementType

func (LocationTagBindingOutput) ElementType() reflect.Type

func (LocationTagBindingOutput) Location

Location of the target resource.

***

func (LocationTagBindingOutput) Name

The generated id for the TagBinding. This is a string of the form: `tagBindings/{parent}/{tag-value-name}`

func (LocationTagBindingOutput) Parent

The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123

func (LocationTagBindingOutput) TagValue

The TagValue of the TagBinding. Must be of the form tagValues/456.

func (LocationTagBindingOutput) ToLocationTagBindingOutput

func (o LocationTagBindingOutput) ToLocationTagBindingOutput() LocationTagBindingOutput

func (LocationTagBindingOutput) ToLocationTagBindingOutputWithContext

func (o LocationTagBindingOutput) ToLocationTagBindingOutputWithContext(ctx context.Context) LocationTagBindingOutput

type LocationTagBindingState

type LocationTagBindingState struct {
	// Location of the target resource.
	//
	// ***
	Location pulumi.StringPtrInput
	// The generated id for the TagBinding. This is a string of the form: `tagBindings/{parent}/{tag-value-name}`
	Name pulumi.StringPtrInput
	// The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123
	Parent pulumi.StringPtrInput
	// The TagValue of the TagBinding. Must be of the form tagValues/456.
	TagValue pulumi.StringPtrInput
}

func (LocationTagBindingState) ElementType

func (LocationTagBindingState) ElementType() reflect.Type

type LookupTagKeyArgs

type LookupTagKeyArgs struct {
	// The resource name of the parent organization or project. It can be in format `organizations/{org_id}` or `projects/{project_id_or_number}`.
	Parent string `pulumi:"parent"`
	// The tag key's short_name.
	ShortName string `pulumi:"shortName"`
}

A collection of arguments for invoking getTagKey.

type LookupTagKeyIamPolicyArgs

type LookupTagKeyIamPolicyArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	TagKey string `pulumi:"tagKey"`
}

A collection of arguments for invoking getTagKeyIamPolicy.

type LookupTagKeyIamPolicyOutputArgs

type LookupTagKeyIamPolicyOutputArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringInput `pulumi:"tagKey"`
}

A collection of arguments for invoking getTagKeyIamPolicy.

func (LookupTagKeyIamPolicyOutputArgs) ElementType

type LookupTagKeyIamPolicyResult

type LookupTagKeyIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `tags.TagKeyIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	TagKey     string `pulumi:"tagKey"`
}

A collection of values returned by getTagKeyIamPolicy.

func LookupTagKeyIamPolicy

func LookupTagKeyIamPolicy(ctx *pulumi.Context, args *LookupTagKeyIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupTagKeyIamPolicyResult, error)

Retrieves the current IAM policy data for tagkey

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.LookupTagKeyIamPolicy(ctx, &tags.LookupTagKeyIamPolicyArgs{
			TagKey: key.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupTagKeyIamPolicyResultOutput

type LookupTagKeyIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTagKeyIamPolicy.

func (LookupTagKeyIamPolicyResultOutput) ElementType

func (LookupTagKeyIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (LookupTagKeyIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupTagKeyIamPolicyResultOutput) PolicyData

(Required only by `tags.TagKeyIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupTagKeyIamPolicyResultOutput) TagKey

func (LookupTagKeyIamPolicyResultOutput) ToLookupTagKeyIamPolicyResultOutput

func (o LookupTagKeyIamPolicyResultOutput) ToLookupTagKeyIamPolicyResultOutput() LookupTagKeyIamPolicyResultOutput

func (LookupTagKeyIamPolicyResultOutput) ToLookupTagKeyIamPolicyResultOutputWithContext

func (o LookupTagKeyIamPolicyResultOutput) ToLookupTagKeyIamPolicyResultOutputWithContext(ctx context.Context) LookupTagKeyIamPolicyResultOutput

type LookupTagKeyOutputArgs

type LookupTagKeyOutputArgs struct {
	// The resource name of the parent organization or project. It can be in format `organizations/{org_id}` or `projects/{project_id_or_number}`.
	Parent pulumi.StringInput `pulumi:"parent"`
	// The tag key's short_name.
	ShortName pulumi.StringInput `pulumi:"shortName"`
}

A collection of arguments for invoking getTagKey.

func (LookupTagKeyOutputArgs) ElementType

func (LookupTagKeyOutputArgs) ElementType() reflect.Type

type LookupTagKeyResult

type LookupTagKeyResult struct {
	// 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  string `pulumi:"createTime"`
	Description string `pulumi:"description"`
	// an identifier for the resource with format `tagKeys/{{name}}`
	Id string `pulumi:"id"`
	// The generated numeric id for the TagKey.
	Name string `pulumi:"name"`
	// Namespaced name of the TagKey which is in the format `{parentNamespace}/{shortName}`.
	NamespacedName string `pulumi:"namespacedName"`
	Parent         string `pulumi:"parent"`
	ShortName      string `pulumi:"shortName"`
	// 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 string `pulumi:"updateTime"`
}

A collection of values returned by getTagKey.

func LookupTagKey

func LookupTagKey(ctx *pulumi.Context, args *LookupTagKeyArgs, opts ...pulumi.InvokeOption) (*LookupTagKeyResult, error)

Get a tag key by org or project `parent` and `shortName`.

## Example Usage

type LookupTagKeyResultOutput

type LookupTagKeyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTagKey.

func (LookupTagKeyResultOutput) CreateTime

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".

func (LookupTagKeyResultOutput) Description

func (LookupTagKeyResultOutput) ElementType

func (LookupTagKeyResultOutput) ElementType() reflect.Type

func (LookupTagKeyResultOutput) Id

an identifier for the resource with format `tagKeys/{{name}}`

func (LookupTagKeyResultOutput) Name

The generated numeric id for the TagKey.

func (LookupTagKeyResultOutput) NamespacedName

func (o LookupTagKeyResultOutput) NamespacedName() pulumi.StringOutput

Namespaced name of the TagKey which is in the format `{parentNamespace}/{shortName}`.

func (LookupTagKeyResultOutput) Parent

func (LookupTagKeyResultOutput) ShortName

func (LookupTagKeyResultOutput) ToLookupTagKeyResultOutput

func (o LookupTagKeyResultOutput) ToLookupTagKeyResultOutput() LookupTagKeyResultOutput

func (LookupTagKeyResultOutput) ToLookupTagKeyResultOutputWithContext

func (o LookupTagKeyResultOutput) ToLookupTagKeyResultOutputWithContext(ctx context.Context) LookupTagKeyResultOutput

func (LookupTagKeyResultOutput) UpdateTime

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".

type LookupTagValueArgs

type LookupTagValueArgs struct {
	// The resource name of the parent tagKey in format `tagKey/{name}`.
	Parent string `pulumi:"parent"`
	// The tag value's short_name.
	ShortName string `pulumi:"shortName"`
}

A collection of arguments for invoking getTagValue.

type LookupTagValueIamPolicyArgs

type LookupTagValueIamPolicyArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	TagValue string `pulumi:"tagValue"`
}

A collection of arguments for invoking getTagValueIamPolicy.

type LookupTagValueIamPolicyOutputArgs

type LookupTagValueIamPolicyOutputArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringInput `pulumi:"tagValue"`
}

A collection of arguments for invoking getTagValueIamPolicy.

func (LookupTagValueIamPolicyOutputArgs) ElementType

type LookupTagValueIamPolicyResult

type LookupTagValueIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `tags.TagValueIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	TagValue   string `pulumi:"tagValue"`
}

A collection of values returned by getTagValueIamPolicy.

func LookupTagValueIamPolicy

func LookupTagValueIamPolicy(ctx *pulumi.Context, args *LookupTagValueIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupTagValueIamPolicyResult, error)

Retrieves the current IAM policy data for tagvalue

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.LookupTagValueIamPolicy(ctx, &tags.LookupTagValueIamPolicyArgs{
			TagValue: value.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupTagValueIamPolicyResultOutput

type LookupTagValueIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTagValueIamPolicy.

func (LookupTagValueIamPolicyResultOutput) ElementType

func (LookupTagValueIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (LookupTagValueIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupTagValueIamPolicyResultOutput) PolicyData

(Required only by `tags.TagValueIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupTagValueIamPolicyResultOutput) TagValue

func (LookupTagValueIamPolicyResultOutput) ToLookupTagValueIamPolicyResultOutput

func (o LookupTagValueIamPolicyResultOutput) ToLookupTagValueIamPolicyResultOutput() LookupTagValueIamPolicyResultOutput

func (LookupTagValueIamPolicyResultOutput) ToLookupTagValueIamPolicyResultOutputWithContext

func (o LookupTagValueIamPolicyResultOutput) ToLookupTagValueIamPolicyResultOutputWithContext(ctx context.Context) LookupTagValueIamPolicyResultOutput

type LookupTagValueOutputArgs

type LookupTagValueOutputArgs struct {
	// The resource name of the parent tagKey in format `tagKey/{name}`.
	Parent pulumi.StringInput `pulumi:"parent"`
	// The tag value's short_name.
	ShortName pulumi.StringInput `pulumi:"shortName"`
}

A collection of arguments for invoking getTagValue.

func (LookupTagValueOutputArgs) ElementType

func (LookupTagValueOutputArgs) ElementType() reflect.Type

type LookupTagValueResult

type LookupTagValueResult struct {
	// 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  string `pulumi:"createTime"`
	Description string `pulumi:"description"`
	// an identifier for the resource with format `tagValues/{{name}}`
	Id string `pulumi:"id"`
	// The generated numeric id for the TagValue.
	Name string `pulumi:"name"`
	// Namespaced name of the TagValue.
	NamespacedName string `pulumi:"namespacedName"`
	Parent         string `pulumi:"parent"`
	ShortName      string `pulumi:"shortName"`
	// 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 string `pulumi:"updateTime"`
}

A collection of values returned by getTagValue.

func LookupTagValue

func LookupTagValue(ctx *pulumi.Context, args *LookupTagValueArgs, opts ...pulumi.InvokeOption) (*LookupTagValueResult, error)

Get a tag value by `parent` key and `shortName`.

## Example Usage

type LookupTagValueResultOutput

type LookupTagValueResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTagValue.

func (LookupTagValueResultOutput) CreateTime

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".

func (LookupTagValueResultOutput) Description

func (LookupTagValueResultOutput) ElementType

func (LookupTagValueResultOutput) ElementType() reflect.Type

func (LookupTagValueResultOutput) Id

an identifier for the resource with format `tagValues/{{name}}`

func (LookupTagValueResultOutput) Name

The generated numeric id for the TagValue.

func (LookupTagValueResultOutput) NamespacedName

func (o LookupTagValueResultOutput) NamespacedName() pulumi.StringOutput

Namespaced name of the TagValue.

func (LookupTagValueResultOutput) Parent

func (LookupTagValueResultOutput) ShortName

func (LookupTagValueResultOutput) ToLookupTagValueResultOutput

func (o LookupTagValueResultOutput) ToLookupTagValueResultOutput() LookupTagValueResultOutput

func (LookupTagValueResultOutput) ToLookupTagValueResultOutputWithContext

func (o LookupTagValueResultOutput) ToLookupTagValueResultOutputWithContext(ctx context.Context) LookupTagValueResultOutput

func (LookupTagValueResultOutput) UpdateTime

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".

type TagBinding

type TagBinding struct {
	pulumi.CustomResourceState

	// The generated id for the TagBinding. This is a string of the form: `tagBindings/{full-resource-name}/{tag-value-name}`
	Name pulumi.StringOutput `pulumi:"name"`
	// The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123
	Parent pulumi.StringOutput `pulumi:"parent"`
	// The TagValue of the TagBinding. Must be of the form tagValues/456.
	//
	// ***
	TagValue pulumi.StringOutput `pulumi:"tagValue"`
}

A TagBinding represents a connection between a TagValue and a cloud resource (currently project, folder, or organization). Once a TagBinding is created, the TagValue is applied to all the descendants of the cloud resource.

To get more information about TagBinding, see:

* [API documentation](https://cloud.google.com/resource-manager/reference/rest/v3/tagBindings) * How-to Guides

## Example Usage

### Tag Binding Basic

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
			ProjectId: pulumi.String("project_id"),
			Name:      pulumi.String("project_id"),
			OrgId:     pulumi.String("123456789"),
		})
		if err != nil {
			return err
		}
		key, err := tags.NewTagKey(ctx, "key", &tags.TagKeyArgs{
			Parent:      pulumi.String("organizations/123456789"),
			ShortName:   pulumi.String("keyname"),
			Description: pulumi.String("For keyname resources."),
		})
		if err != nil {
			return err
		}
		value, err := tags.NewTagValue(ctx, "value", &tags.TagValueArgs{
			Parent: key.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("tagKeys/%v", name), nil
			}).(pulumi.StringOutput),
			ShortName:   pulumi.String("valuename"),
			Description: pulumi.String("For valuename resources."),
		})
		if err != nil {
			return err
		}
		_, err = tags.NewTagBinding(ctx, "binding", &tags.TagBindingArgs{
			Parent: project.Number.ApplyT(func(number string) (string, error) {
				return fmt.Sprintf("//cloudresourcemanager.googleapis.com/projects/%v", number), nil
			}).(pulumi.StringOutput),
			TagValue: value.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("tagValues/%v", name), nil
			}).(pulumi.StringOutput),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

TagBinding can be imported using any of these accepted formats:

* `tagBindings/{{name}}`

* `{{name}}`

When using the `pulumi import` command, TagBinding can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:tags/tagBinding:TagBinding default tagBindings/{{name}} ```

```sh $ pulumi import gcp:tags/tagBinding:TagBinding default {{name}} ```

func GetTagBinding

func GetTagBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagBindingState, opts ...pulumi.ResourceOption) (*TagBinding, error)

GetTagBinding gets an existing TagBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagBinding

func NewTagBinding(ctx *pulumi.Context,
	name string, args *TagBindingArgs, opts ...pulumi.ResourceOption) (*TagBinding, error)

NewTagBinding registers a new resource with the given unique name, arguments, and options.

func (*TagBinding) ElementType

func (*TagBinding) ElementType() reflect.Type

func (*TagBinding) ToTagBindingOutput

func (i *TagBinding) ToTagBindingOutput() TagBindingOutput

func (*TagBinding) ToTagBindingOutputWithContext

func (i *TagBinding) ToTagBindingOutputWithContext(ctx context.Context) TagBindingOutput

type TagBindingArgs

type TagBindingArgs struct {
	// The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123
	Parent pulumi.StringInput
	// The TagValue of the TagBinding. Must be of the form tagValues/456.
	//
	// ***
	TagValue pulumi.StringInput
}

The set of arguments for constructing a TagBinding resource.

func (TagBindingArgs) ElementType

func (TagBindingArgs) ElementType() reflect.Type

type TagBindingArray

type TagBindingArray []TagBindingInput

func (TagBindingArray) ElementType

func (TagBindingArray) ElementType() reflect.Type

func (TagBindingArray) ToTagBindingArrayOutput

func (i TagBindingArray) ToTagBindingArrayOutput() TagBindingArrayOutput

func (TagBindingArray) ToTagBindingArrayOutputWithContext

func (i TagBindingArray) ToTagBindingArrayOutputWithContext(ctx context.Context) TagBindingArrayOutput

type TagBindingArrayInput

type TagBindingArrayInput interface {
	pulumi.Input

	ToTagBindingArrayOutput() TagBindingArrayOutput
	ToTagBindingArrayOutputWithContext(context.Context) TagBindingArrayOutput
}

TagBindingArrayInput is an input type that accepts TagBindingArray and TagBindingArrayOutput values. You can construct a concrete instance of `TagBindingArrayInput` via:

TagBindingArray{ TagBindingArgs{...} }

type TagBindingArrayOutput

type TagBindingArrayOutput struct{ *pulumi.OutputState }

func (TagBindingArrayOutput) ElementType

func (TagBindingArrayOutput) ElementType() reflect.Type

func (TagBindingArrayOutput) Index

func (TagBindingArrayOutput) ToTagBindingArrayOutput

func (o TagBindingArrayOutput) ToTagBindingArrayOutput() TagBindingArrayOutput

func (TagBindingArrayOutput) ToTagBindingArrayOutputWithContext

func (o TagBindingArrayOutput) ToTagBindingArrayOutputWithContext(ctx context.Context) TagBindingArrayOutput

type TagBindingInput

type TagBindingInput interface {
	pulumi.Input

	ToTagBindingOutput() TagBindingOutput
	ToTagBindingOutputWithContext(ctx context.Context) TagBindingOutput
}

type TagBindingMap

type TagBindingMap map[string]TagBindingInput

func (TagBindingMap) ElementType

func (TagBindingMap) ElementType() reflect.Type

func (TagBindingMap) ToTagBindingMapOutput

func (i TagBindingMap) ToTagBindingMapOutput() TagBindingMapOutput

func (TagBindingMap) ToTagBindingMapOutputWithContext

func (i TagBindingMap) ToTagBindingMapOutputWithContext(ctx context.Context) TagBindingMapOutput

type TagBindingMapInput

type TagBindingMapInput interface {
	pulumi.Input

	ToTagBindingMapOutput() TagBindingMapOutput
	ToTagBindingMapOutputWithContext(context.Context) TagBindingMapOutput
}

TagBindingMapInput is an input type that accepts TagBindingMap and TagBindingMapOutput values. You can construct a concrete instance of `TagBindingMapInput` via:

TagBindingMap{ "key": TagBindingArgs{...} }

type TagBindingMapOutput

type TagBindingMapOutput struct{ *pulumi.OutputState }

func (TagBindingMapOutput) ElementType

func (TagBindingMapOutput) ElementType() reflect.Type

func (TagBindingMapOutput) MapIndex

func (TagBindingMapOutput) ToTagBindingMapOutput

func (o TagBindingMapOutput) ToTagBindingMapOutput() TagBindingMapOutput

func (TagBindingMapOutput) ToTagBindingMapOutputWithContext

func (o TagBindingMapOutput) ToTagBindingMapOutputWithContext(ctx context.Context) TagBindingMapOutput

type TagBindingOutput

type TagBindingOutput struct{ *pulumi.OutputState }

func (TagBindingOutput) ElementType

func (TagBindingOutput) ElementType() reflect.Type

func (TagBindingOutput) Name

The generated id for the TagBinding. This is a string of the form: `tagBindings/{full-resource-name}/{tag-value-name}`

func (TagBindingOutput) Parent

The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123

func (TagBindingOutput) TagValue

func (o TagBindingOutput) TagValue() pulumi.StringOutput

The TagValue of the TagBinding. Must be of the form tagValues/456.

***

func (TagBindingOutput) ToTagBindingOutput

func (o TagBindingOutput) ToTagBindingOutput() TagBindingOutput

func (TagBindingOutput) ToTagBindingOutputWithContext

func (o TagBindingOutput) ToTagBindingOutputWithContext(ctx context.Context) TagBindingOutput

type TagBindingState

type TagBindingState struct {
	// The generated id for the TagBinding. This is a string of the form: `tagBindings/{full-resource-name}/{tag-value-name}`
	Name pulumi.StringPtrInput
	// The full resource name of the resource the TagValue is bound to. E.g. //cloudresourcemanager.googleapis.com/projects/123
	Parent pulumi.StringPtrInput
	// The TagValue of the TagBinding. Must be of the form tagValues/456.
	//
	// ***
	TagValue pulumi.StringPtrInput
}

func (TagBindingState) ElementType

func (TagBindingState) ElementType() reflect.Type

type TagKey

type TagKey struct {
	pulumi.CustomResourceState

	// 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.StringOutput `pulumi:"createTime"`
	// User-assigned description of the TagKey. Must not exceed 256 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The generated numeric id for the TagKey.
	Name pulumi.StringOutput `pulumi:"name"`
	// Output only. Namespaced name of the TagKey.
	NamespacedName pulumi.StringOutput `pulumi:"namespacedName"`
	// 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.StringOutput `pulumi:"parent"`
	// 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`.
	Purpose pulumi.StringPtrOutput `pulumi:"purpose"`
	// 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 = "<project-name>/<vpc-name>"`.
	PurposeData pulumi.StringMapOutput `pulumi:"purposeData"`
	// 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 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.StringOutput `pulumi:"shortName"`
	// 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.StringOutput `pulumi:"updateTime"`
}

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

## Example Usage

### Tag Key Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKey(ctx, "key", &tags.TagKeyArgs{
			Parent:      pulumi.String("organizations/123456789"),
			ShortName:   pulumi.String("keyname"),
			Description: pulumi.String("For keyname resources."),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## 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}} ```

func GetTagKey

func GetTagKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagKeyState, opts ...pulumi.ResourceOption) (*TagKey, error)

GetTagKey gets an existing TagKey resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagKey

func NewTagKey(ctx *pulumi.Context,
	name string, args *TagKeyArgs, opts ...pulumi.ResourceOption) (*TagKey, error)

NewTagKey registers a new resource with the given unique name, arguments, and options.

func (*TagKey) ElementType

func (*TagKey) ElementType() reflect.Type

func (*TagKey) ToTagKeyOutput

func (i *TagKey) ToTagKeyOutput() TagKeyOutput

func (*TagKey) ToTagKeyOutputWithContext

func (i *TagKey) ToTagKeyOutputWithContext(ctx context.Context) TagKeyOutput

type TagKeyArgs

type TagKeyArgs struct {
	// User-assigned description of the TagKey. Must not exceed 256 characters.
	Description pulumi.StringPtrInput
	// 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.StringInput
	// 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`.
	Purpose pulumi.StringPtrInput
	// 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 = "<project-name>/<vpc-name>"`.
	PurposeData pulumi.StringMapInput
	// 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 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.StringInput
}

The set of arguments for constructing a TagKey resource.

func (TagKeyArgs) ElementType

func (TagKeyArgs) ElementType() reflect.Type

type TagKeyArray

type TagKeyArray []TagKeyInput

func (TagKeyArray) ElementType

func (TagKeyArray) ElementType() reflect.Type

func (TagKeyArray) ToTagKeyArrayOutput

func (i TagKeyArray) ToTagKeyArrayOutput() TagKeyArrayOutput

func (TagKeyArray) ToTagKeyArrayOutputWithContext

func (i TagKeyArray) ToTagKeyArrayOutputWithContext(ctx context.Context) TagKeyArrayOutput

type TagKeyArrayInput

type TagKeyArrayInput interface {
	pulumi.Input

	ToTagKeyArrayOutput() TagKeyArrayOutput
	ToTagKeyArrayOutputWithContext(context.Context) TagKeyArrayOutput
}

TagKeyArrayInput is an input type that accepts TagKeyArray and TagKeyArrayOutput values. You can construct a concrete instance of `TagKeyArrayInput` via:

TagKeyArray{ TagKeyArgs{...} }

type TagKeyArrayOutput

type TagKeyArrayOutput struct{ *pulumi.OutputState }

func (TagKeyArrayOutput) ElementType

func (TagKeyArrayOutput) ElementType() reflect.Type

func (TagKeyArrayOutput) Index

func (TagKeyArrayOutput) ToTagKeyArrayOutput

func (o TagKeyArrayOutput) ToTagKeyArrayOutput() TagKeyArrayOutput

func (TagKeyArrayOutput) ToTagKeyArrayOutputWithContext

func (o TagKeyArrayOutput) ToTagKeyArrayOutputWithContext(ctx context.Context) TagKeyArrayOutput

type TagKeyIamBinding

type TagKeyIamBinding struct {
	pulumi.CustomResourceState

	Condition TagKeyIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. Only one
	// `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringOutput `pulumi:"tagKey"`
}

Three different resources help you manage your IAM policy for Tags TagKey. Each of these resources serves a different use case:

* `tags.TagKeyIamPolicy`: Authoritative. Sets the IAM policy for the tagkey and replaces any existing policy already attached. * `tags.TagKeyIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the tagkey are preserved. * `tags.TagKeyIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagkey are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `tags.TagKeyIamPolicy`: Retrieves the IAM policy for the tagkey

> **Note:** `tags.TagKeyIamPolicy` **cannot** be used in conjunction with `tags.TagKeyIamBinding` and `tags.TagKeyIamMember` or they will fight over what your policy should be.

> **Note:** `tags.TagKeyIamBinding` resources **can be** used in conjunction with `tags.TagKeyIamMember` resources **only if** they do not grant privilege to the same role.

## google\_tags\_tag\_key\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagKeyIamPolicy(ctx, "policy", &tags.TagKeyIamPolicyArgs{
			TagKey:     pulumi.Any(key.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamBinding(ctx, "binding", &tags.TagKeyIamBindingArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamMember(ctx, "member", &tags.TagKeyIamMemberArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagKeyIamPolicy(ctx, "policy", &tags.TagKeyIamPolicyArgs{
			TagKey:     pulumi.Any(key.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamBinding(ctx, "binding", &tags.TagKeyIamBindingArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamMember(ctx, "member", &tags.TagKeyIamMemberArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* tagKeys/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Tags tagkey IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamBinding:TagKeyIamBinding editor "tagKeys/{{tag_key}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamBinding:TagKeyIamBinding editor "tagKeys/{{tag_key}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamBinding:TagKeyIamBinding editor tagKeys/{{tag_key}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetTagKeyIamBinding

func GetTagKeyIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagKeyIamBindingState, opts ...pulumi.ResourceOption) (*TagKeyIamBinding, error)

GetTagKeyIamBinding gets an existing TagKeyIamBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagKeyIamBinding

func NewTagKeyIamBinding(ctx *pulumi.Context,
	name string, args *TagKeyIamBindingArgs, opts ...pulumi.ResourceOption) (*TagKeyIamBinding, error)

NewTagKeyIamBinding registers a new resource with the given unique name, arguments, and options.

func (*TagKeyIamBinding) ElementType

func (*TagKeyIamBinding) ElementType() reflect.Type

func (*TagKeyIamBinding) ToTagKeyIamBindingOutput

func (i *TagKeyIamBinding) ToTagKeyIamBindingOutput() TagKeyIamBindingOutput

func (*TagKeyIamBinding) ToTagKeyIamBindingOutputWithContext

func (i *TagKeyIamBinding) ToTagKeyIamBindingOutputWithContext(ctx context.Context) TagKeyIamBindingOutput

type TagKeyIamBindingArgs

type TagKeyIamBindingArgs struct {
	Condition TagKeyIamBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringInput
}

The set of arguments for constructing a TagKeyIamBinding resource.

func (TagKeyIamBindingArgs) ElementType

func (TagKeyIamBindingArgs) ElementType() reflect.Type

type TagKeyIamBindingArray

type TagKeyIamBindingArray []TagKeyIamBindingInput

func (TagKeyIamBindingArray) ElementType

func (TagKeyIamBindingArray) ElementType() reflect.Type

func (TagKeyIamBindingArray) ToTagKeyIamBindingArrayOutput

func (i TagKeyIamBindingArray) ToTagKeyIamBindingArrayOutput() TagKeyIamBindingArrayOutput

func (TagKeyIamBindingArray) ToTagKeyIamBindingArrayOutputWithContext

func (i TagKeyIamBindingArray) ToTagKeyIamBindingArrayOutputWithContext(ctx context.Context) TagKeyIamBindingArrayOutput

type TagKeyIamBindingArrayInput

type TagKeyIamBindingArrayInput interface {
	pulumi.Input

	ToTagKeyIamBindingArrayOutput() TagKeyIamBindingArrayOutput
	ToTagKeyIamBindingArrayOutputWithContext(context.Context) TagKeyIamBindingArrayOutput
}

TagKeyIamBindingArrayInput is an input type that accepts TagKeyIamBindingArray and TagKeyIamBindingArrayOutput values. You can construct a concrete instance of `TagKeyIamBindingArrayInput` via:

TagKeyIamBindingArray{ TagKeyIamBindingArgs{...} }

type TagKeyIamBindingArrayOutput

type TagKeyIamBindingArrayOutput struct{ *pulumi.OutputState }

func (TagKeyIamBindingArrayOutput) ElementType

func (TagKeyIamBindingArrayOutput) Index

func (TagKeyIamBindingArrayOutput) ToTagKeyIamBindingArrayOutput

func (o TagKeyIamBindingArrayOutput) ToTagKeyIamBindingArrayOutput() TagKeyIamBindingArrayOutput

func (TagKeyIamBindingArrayOutput) ToTagKeyIamBindingArrayOutputWithContext

func (o TagKeyIamBindingArrayOutput) ToTagKeyIamBindingArrayOutputWithContext(ctx context.Context) TagKeyIamBindingArrayOutput

type TagKeyIamBindingCondition

type TagKeyIamBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TagKeyIamBindingConditionArgs

type TagKeyIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TagKeyIamBindingConditionArgs) ElementType

func (TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionOutput

func (i TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionOutput() TagKeyIamBindingConditionOutput

func (TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionOutputWithContext

func (i TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionOutputWithContext(ctx context.Context) TagKeyIamBindingConditionOutput

func (TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionPtrOutput

func (i TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionPtrOutput() TagKeyIamBindingConditionPtrOutput

func (TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionPtrOutputWithContext

func (i TagKeyIamBindingConditionArgs) ToTagKeyIamBindingConditionPtrOutputWithContext(ctx context.Context) TagKeyIamBindingConditionPtrOutput

type TagKeyIamBindingConditionInput

type TagKeyIamBindingConditionInput interface {
	pulumi.Input

	ToTagKeyIamBindingConditionOutput() TagKeyIamBindingConditionOutput
	ToTagKeyIamBindingConditionOutputWithContext(context.Context) TagKeyIamBindingConditionOutput
}

TagKeyIamBindingConditionInput is an input type that accepts TagKeyIamBindingConditionArgs and TagKeyIamBindingConditionOutput values. You can construct a concrete instance of `TagKeyIamBindingConditionInput` via:

TagKeyIamBindingConditionArgs{...}

type TagKeyIamBindingConditionOutput

type TagKeyIamBindingConditionOutput struct{ *pulumi.OutputState }

func (TagKeyIamBindingConditionOutput) Description

func (TagKeyIamBindingConditionOutput) ElementType

func (TagKeyIamBindingConditionOutput) Expression

func (TagKeyIamBindingConditionOutput) Title

func (TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionOutput

func (o TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionOutput() TagKeyIamBindingConditionOutput

func (TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionOutputWithContext

func (o TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionOutputWithContext(ctx context.Context) TagKeyIamBindingConditionOutput

func (TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionPtrOutput

func (o TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionPtrOutput() TagKeyIamBindingConditionPtrOutput

func (TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionPtrOutputWithContext

func (o TagKeyIamBindingConditionOutput) ToTagKeyIamBindingConditionPtrOutputWithContext(ctx context.Context) TagKeyIamBindingConditionPtrOutput

type TagKeyIamBindingConditionPtrInput

type TagKeyIamBindingConditionPtrInput interface {
	pulumi.Input

	ToTagKeyIamBindingConditionPtrOutput() TagKeyIamBindingConditionPtrOutput
	ToTagKeyIamBindingConditionPtrOutputWithContext(context.Context) TagKeyIamBindingConditionPtrOutput
}

TagKeyIamBindingConditionPtrInput is an input type that accepts TagKeyIamBindingConditionArgs, TagKeyIamBindingConditionPtr and TagKeyIamBindingConditionPtrOutput values. You can construct a concrete instance of `TagKeyIamBindingConditionPtrInput` via:

        TagKeyIamBindingConditionArgs{...}

or:

        nil

type TagKeyIamBindingConditionPtrOutput

type TagKeyIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (TagKeyIamBindingConditionPtrOutput) Description

func (TagKeyIamBindingConditionPtrOutput) Elem

func (TagKeyIamBindingConditionPtrOutput) ElementType

func (TagKeyIamBindingConditionPtrOutput) Expression

func (TagKeyIamBindingConditionPtrOutput) Title

func (TagKeyIamBindingConditionPtrOutput) ToTagKeyIamBindingConditionPtrOutput

func (o TagKeyIamBindingConditionPtrOutput) ToTagKeyIamBindingConditionPtrOutput() TagKeyIamBindingConditionPtrOutput

func (TagKeyIamBindingConditionPtrOutput) ToTagKeyIamBindingConditionPtrOutputWithContext

func (o TagKeyIamBindingConditionPtrOutput) ToTagKeyIamBindingConditionPtrOutputWithContext(ctx context.Context) TagKeyIamBindingConditionPtrOutput

type TagKeyIamBindingInput

type TagKeyIamBindingInput interface {
	pulumi.Input

	ToTagKeyIamBindingOutput() TagKeyIamBindingOutput
	ToTagKeyIamBindingOutputWithContext(ctx context.Context) TagKeyIamBindingOutput
}

type TagKeyIamBindingMap

type TagKeyIamBindingMap map[string]TagKeyIamBindingInput

func (TagKeyIamBindingMap) ElementType

func (TagKeyIamBindingMap) ElementType() reflect.Type

func (TagKeyIamBindingMap) ToTagKeyIamBindingMapOutput

func (i TagKeyIamBindingMap) ToTagKeyIamBindingMapOutput() TagKeyIamBindingMapOutput

func (TagKeyIamBindingMap) ToTagKeyIamBindingMapOutputWithContext

func (i TagKeyIamBindingMap) ToTagKeyIamBindingMapOutputWithContext(ctx context.Context) TagKeyIamBindingMapOutput

type TagKeyIamBindingMapInput

type TagKeyIamBindingMapInput interface {
	pulumi.Input

	ToTagKeyIamBindingMapOutput() TagKeyIamBindingMapOutput
	ToTagKeyIamBindingMapOutputWithContext(context.Context) TagKeyIamBindingMapOutput
}

TagKeyIamBindingMapInput is an input type that accepts TagKeyIamBindingMap and TagKeyIamBindingMapOutput values. You can construct a concrete instance of `TagKeyIamBindingMapInput` via:

TagKeyIamBindingMap{ "key": TagKeyIamBindingArgs{...} }

type TagKeyIamBindingMapOutput

type TagKeyIamBindingMapOutput struct{ *pulumi.OutputState }

func (TagKeyIamBindingMapOutput) ElementType

func (TagKeyIamBindingMapOutput) ElementType() reflect.Type

func (TagKeyIamBindingMapOutput) MapIndex

func (TagKeyIamBindingMapOutput) ToTagKeyIamBindingMapOutput

func (o TagKeyIamBindingMapOutput) ToTagKeyIamBindingMapOutput() TagKeyIamBindingMapOutput

func (TagKeyIamBindingMapOutput) ToTagKeyIamBindingMapOutputWithContext

func (o TagKeyIamBindingMapOutput) ToTagKeyIamBindingMapOutputWithContext(ctx context.Context) TagKeyIamBindingMapOutput

type TagKeyIamBindingOutput

type TagKeyIamBindingOutput struct{ *pulumi.OutputState }

func (TagKeyIamBindingOutput) Condition

func (TagKeyIamBindingOutput) ElementType

func (TagKeyIamBindingOutput) ElementType() reflect.Type

func (TagKeyIamBindingOutput) Etag

(Computed) The etag of the IAM policy.

func (TagKeyIamBindingOutput) Members

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (TagKeyIamBindingOutput) Role

The role that should be applied. Only one `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (TagKeyIamBindingOutput) TagKey

Used to find the parent resource to bind the IAM policy to

func (TagKeyIamBindingOutput) ToTagKeyIamBindingOutput

func (o TagKeyIamBindingOutput) ToTagKeyIamBindingOutput() TagKeyIamBindingOutput

func (TagKeyIamBindingOutput) ToTagKeyIamBindingOutputWithContext

func (o TagKeyIamBindingOutput) ToTagKeyIamBindingOutputWithContext(ctx context.Context) TagKeyIamBindingOutput

type TagKeyIamBindingState

type TagKeyIamBindingState struct {
	Condition TagKeyIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringPtrInput
}

func (TagKeyIamBindingState) ElementType

func (TagKeyIamBindingState) ElementType() reflect.Type

type TagKeyIamMember

type TagKeyIamMember struct {
	pulumi.CustomResourceState

	Condition TagKeyIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. Only one
	// `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringOutput `pulumi:"tagKey"`
}

Three different resources help you manage your IAM policy for Tags TagKey. Each of these resources serves a different use case:

* `tags.TagKeyIamPolicy`: Authoritative. Sets the IAM policy for the tagkey and replaces any existing policy already attached. * `tags.TagKeyIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the tagkey are preserved. * `tags.TagKeyIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagkey are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `tags.TagKeyIamPolicy`: Retrieves the IAM policy for the tagkey

> **Note:** `tags.TagKeyIamPolicy` **cannot** be used in conjunction with `tags.TagKeyIamBinding` and `tags.TagKeyIamMember` or they will fight over what your policy should be.

> **Note:** `tags.TagKeyIamBinding` resources **can be** used in conjunction with `tags.TagKeyIamMember` resources **only if** they do not grant privilege to the same role.

## google\_tags\_tag\_key\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagKeyIamPolicy(ctx, "policy", &tags.TagKeyIamPolicyArgs{
			TagKey:     pulumi.Any(key.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamBinding(ctx, "binding", &tags.TagKeyIamBindingArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamMember(ctx, "member", &tags.TagKeyIamMemberArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagKeyIamPolicy(ctx, "policy", &tags.TagKeyIamPolicyArgs{
			TagKey:     pulumi.Any(key.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamBinding(ctx, "binding", &tags.TagKeyIamBindingArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamMember(ctx, "member", &tags.TagKeyIamMemberArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* tagKeys/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Tags tagkey IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamMember:TagKeyIamMember editor "tagKeys/{{tag_key}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamMember:TagKeyIamMember editor "tagKeys/{{tag_key}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamMember:TagKeyIamMember editor tagKeys/{{tag_key}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetTagKeyIamMember

func GetTagKeyIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagKeyIamMemberState, opts ...pulumi.ResourceOption) (*TagKeyIamMember, error)

GetTagKeyIamMember gets an existing TagKeyIamMember resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagKeyIamMember

func NewTagKeyIamMember(ctx *pulumi.Context,
	name string, args *TagKeyIamMemberArgs, opts ...pulumi.ResourceOption) (*TagKeyIamMember, error)

NewTagKeyIamMember registers a new resource with the given unique name, arguments, and options.

func (*TagKeyIamMember) ElementType

func (*TagKeyIamMember) ElementType() reflect.Type

func (*TagKeyIamMember) ToTagKeyIamMemberOutput

func (i *TagKeyIamMember) ToTagKeyIamMemberOutput() TagKeyIamMemberOutput

func (*TagKeyIamMember) ToTagKeyIamMemberOutputWithContext

func (i *TagKeyIamMember) ToTagKeyIamMemberOutputWithContext(ctx context.Context) TagKeyIamMemberOutput

type TagKeyIamMemberArgs

type TagKeyIamMemberArgs struct {
	Condition TagKeyIamMemberConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// The role that should be applied. Only one
	// `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringInput
}

The set of arguments for constructing a TagKeyIamMember resource.

func (TagKeyIamMemberArgs) ElementType

func (TagKeyIamMemberArgs) ElementType() reflect.Type

type TagKeyIamMemberArray

type TagKeyIamMemberArray []TagKeyIamMemberInput

func (TagKeyIamMemberArray) ElementType

func (TagKeyIamMemberArray) ElementType() reflect.Type

func (TagKeyIamMemberArray) ToTagKeyIamMemberArrayOutput

func (i TagKeyIamMemberArray) ToTagKeyIamMemberArrayOutput() TagKeyIamMemberArrayOutput

func (TagKeyIamMemberArray) ToTagKeyIamMemberArrayOutputWithContext

func (i TagKeyIamMemberArray) ToTagKeyIamMemberArrayOutputWithContext(ctx context.Context) TagKeyIamMemberArrayOutput

type TagKeyIamMemberArrayInput

type TagKeyIamMemberArrayInput interface {
	pulumi.Input

	ToTagKeyIamMemberArrayOutput() TagKeyIamMemberArrayOutput
	ToTagKeyIamMemberArrayOutputWithContext(context.Context) TagKeyIamMemberArrayOutput
}

TagKeyIamMemberArrayInput is an input type that accepts TagKeyIamMemberArray and TagKeyIamMemberArrayOutput values. You can construct a concrete instance of `TagKeyIamMemberArrayInput` via:

TagKeyIamMemberArray{ TagKeyIamMemberArgs{...} }

type TagKeyIamMemberArrayOutput

type TagKeyIamMemberArrayOutput struct{ *pulumi.OutputState }

func (TagKeyIamMemberArrayOutput) ElementType

func (TagKeyIamMemberArrayOutput) ElementType() reflect.Type

func (TagKeyIamMemberArrayOutput) Index

func (TagKeyIamMemberArrayOutput) ToTagKeyIamMemberArrayOutput

func (o TagKeyIamMemberArrayOutput) ToTagKeyIamMemberArrayOutput() TagKeyIamMemberArrayOutput

func (TagKeyIamMemberArrayOutput) ToTagKeyIamMemberArrayOutputWithContext

func (o TagKeyIamMemberArrayOutput) ToTagKeyIamMemberArrayOutputWithContext(ctx context.Context) TagKeyIamMemberArrayOutput

type TagKeyIamMemberCondition

type TagKeyIamMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TagKeyIamMemberConditionArgs

type TagKeyIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TagKeyIamMemberConditionArgs) ElementType

func (TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionOutput

func (i TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionOutput() TagKeyIamMemberConditionOutput

func (TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionOutputWithContext

func (i TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionOutputWithContext(ctx context.Context) TagKeyIamMemberConditionOutput

func (TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionPtrOutput

func (i TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionPtrOutput() TagKeyIamMemberConditionPtrOutput

func (TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionPtrOutputWithContext

func (i TagKeyIamMemberConditionArgs) ToTagKeyIamMemberConditionPtrOutputWithContext(ctx context.Context) TagKeyIamMemberConditionPtrOutput

type TagKeyIamMemberConditionInput

type TagKeyIamMemberConditionInput interface {
	pulumi.Input

	ToTagKeyIamMemberConditionOutput() TagKeyIamMemberConditionOutput
	ToTagKeyIamMemberConditionOutputWithContext(context.Context) TagKeyIamMemberConditionOutput
}

TagKeyIamMemberConditionInput is an input type that accepts TagKeyIamMemberConditionArgs and TagKeyIamMemberConditionOutput values. You can construct a concrete instance of `TagKeyIamMemberConditionInput` via:

TagKeyIamMemberConditionArgs{...}

type TagKeyIamMemberConditionOutput

type TagKeyIamMemberConditionOutput struct{ *pulumi.OutputState }

func (TagKeyIamMemberConditionOutput) Description

func (TagKeyIamMemberConditionOutput) ElementType

func (TagKeyIamMemberConditionOutput) Expression

func (TagKeyIamMemberConditionOutput) Title

func (TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionOutput

func (o TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionOutput() TagKeyIamMemberConditionOutput

func (TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionOutputWithContext

func (o TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionOutputWithContext(ctx context.Context) TagKeyIamMemberConditionOutput

func (TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionPtrOutput

func (o TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionPtrOutput() TagKeyIamMemberConditionPtrOutput

func (TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionPtrOutputWithContext

func (o TagKeyIamMemberConditionOutput) ToTagKeyIamMemberConditionPtrOutputWithContext(ctx context.Context) TagKeyIamMemberConditionPtrOutput

type TagKeyIamMemberConditionPtrInput

type TagKeyIamMemberConditionPtrInput interface {
	pulumi.Input

	ToTagKeyIamMemberConditionPtrOutput() TagKeyIamMemberConditionPtrOutput
	ToTagKeyIamMemberConditionPtrOutputWithContext(context.Context) TagKeyIamMemberConditionPtrOutput
}

TagKeyIamMemberConditionPtrInput is an input type that accepts TagKeyIamMemberConditionArgs, TagKeyIamMemberConditionPtr and TagKeyIamMemberConditionPtrOutput values. You can construct a concrete instance of `TagKeyIamMemberConditionPtrInput` via:

        TagKeyIamMemberConditionArgs{...}

or:

        nil

type TagKeyIamMemberConditionPtrOutput

type TagKeyIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (TagKeyIamMemberConditionPtrOutput) Description

func (TagKeyIamMemberConditionPtrOutput) Elem

func (TagKeyIamMemberConditionPtrOutput) ElementType

func (TagKeyIamMemberConditionPtrOutput) Expression

func (TagKeyIamMemberConditionPtrOutput) Title

func (TagKeyIamMemberConditionPtrOutput) ToTagKeyIamMemberConditionPtrOutput

func (o TagKeyIamMemberConditionPtrOutput) ToTagKeyIamMemberConditionPtrOutput() TagKeyIamMemberConditionPtrOutput

func (TagKeyIamMemberConditionPtrOutput) ToTagKeyIamMemberConditionPtrOutputWithContext

func (o TagKeyIamMemberConditionPtrOutput) ToTagKeyIamMemberConditionPtrOutputWithContext(ctx context.Context) TagKeyIamMemberConditionPtrOutput

type TagKeyIamMemberInput

type TagKeyIamMemberInput interface {
	pulumi.Input

	ToTagKeyIamMemberOutput() TagKeyIamMemberOutput
	ToTagKeyIamMemberOutputWithContext(ctx context.Context) TagKeyIamMemberOutput
}

type TagKeyIamMemberMap

type TagKeyIamMemberMap map[string]TagKeyIamMemberInput

func (TagKeyIamMemberMap) ElementType

func (TagKeyIamMemberMap) ElementType() reflect.Type

func (TagKeyIamMemberMap) ToTagKeyIamMemberMapOutput

func (i TagKeyIamMemberMap) ToTagKeyIamMemberMapOutput() TagKeyIamMemberMapOutput

func (TagKeyIamMemberMap) ToTagKeyIamMemberMapOutputWithContext

func (i TagKeyIamMemberMap) ToTagKeyIamMemberMapOutputWithContext(ctx context.Context) TagKeyIamMemberMapOutput

type TagKeyIamMemberMapInput

type TagKeyIamMemberMapInput interface {
	pulumi.Input

	ToTagKeyIamMemberMapOutput() TagKeyIamMemberMapOutput
	ToTagKeyIamMemberMapOutputWithContext(context.Context) TagKeyIamMemberMapOutput
}

TagKeyIamMemberMapInput is an input type that accepts TagKeyIamMemberMap and TagKeyIamMemberMapOutput values. You can construct a concrete instance of `TagKeyIamMemberMapInput` via:

TagKeyIamMemberMap{ "key": TagKeyIamMemberArgs{...} }

type TagKeyIamMemberMapOutput

type TagKeyIamMemberMapOutput struct{ *pulumi.OutputState }

func (TagKeyIamMemberMapOutput) ElementType

func (TagKeyIamMemberMapOutput) ElementType() reflect.Type

func (TagKeyIamMemberMapOutput) MapIndex

func (TagKeyIamMemberMapOutput) ToTagKeyIamMemberMapOutput

func (o TagKeyIamMemberMapOutput) ToTagKeyIamMemberMapOutput() TagKeyIamMemberMapOutput

func (TagKeyIamMemberMapOutput) ToTagKeyIamMemberMapOutputWithContext

func (o TagKeyIamMemberMapOutput) ToTagKeyIamMemberMapOutputWithContext(ctx context.Context) TagKeyIamMemberMapOutput

type TagKeyIamMemberOutput

type TagKeyIamMemberOutput struct{ *pulumi.OutputState }

func (TagKeyIamMemberOutput) Condition

func (TagKeyIamMemberOutput) ElementType

func (TagKeyIamMemberOutput) ElementType() reflect.Type

func (TagKeyIamMemberOutput) Etag

(Computed) The etag of the IAM policy.

func (TagKeyIamMemberOutput) Member

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (TagKeyIamMemberOutput) Role

The role that should be applied. Only one `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (TagKeyIamMemberOutput) TagKey

Used to find the parent resource to bind the IAM policy to

func (TagKeyIamMemberOutput) ToTagKeyIamMemberOutput

func (o TagKeyIamMemberOutput) ToTagKeyIamMemberOutput() TagKeyIamMemberOutput

func (TagKeyIamMemberOutput) ToTagKeyIamMemberOutputWithContext

func (o TagKeyIamMemberOutput) ToTagKeyIamMemberOutputWithContext(ctx context.Context) TagKeyIamMemberOutput

type TagKeyIamMemberState

type TagKeyIamMemberState struct {
	Condition TagKeyIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `tags.TagKeyIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringPtrInput
}

func (TagKeyIamMemberState) ElementType

func (TagKeyIamMemberState) ElementType() reflect.Type

type TagKeyIamPolicy

type TagKeyIamPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringOutput `pulumi:"tagKey"`
}

Three different resources help you manage your IAM policy for Tags TagKey. Each of these resources serves a different use case:

* `tags.TagKeyIamPolicy`: Authoritative. Sets the IAM policy for the tagkey and replaces any existing policy already attached. * `tags.TagKeyIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the tagkey are preserved. * `tags.TagKeyIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagkey are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `tags.TagKeyIamPolicy`: Retrieves the IAM policy for the tagkey

> **Note:** `tags.TagKeyIamPolicy` **cannot** be used in conjunction with `tags.TagKeyIamBinding` and `tags.TagKeyIamMember` or they will fight over what your policy should be.

> **Note:** `tags.TagKeyIamBinding` resources **can be** used in conjunction with `tags.TagKeyIamMember` resources **only if** they do not grant privilege to the same role.

## google\_tags\_tag\_key\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagKeyIamPolicy(ctx, "policy", &tags.TagKeyIamPolicyArgs{
			TagKey:     pulumi.Any(key.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamBinding(ctx, "binding", &tags.TagKeyIamBindingArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamMember(ctx, "member", &tags.TagKeyIamMemberArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagKeyIamPolicy(ctx, "policy", &tags.TagKeyIamPolicyArgs{
			TagKey:     pulumi.Any(key.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamBinding(ctx, "binding", &tags.TagKeyIamBindingArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_key\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagKeyIamMember(ctx, "member", &tags.TagKeyIamMemberArgs{
			TagKey: pulumi.Any(key.Name),
			Role:   pulumi.String("roles/viewer"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* tagKeys/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Tags tagkey IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamPolicy:TagKeyIamPolicy editor "tagKeys/{{tag_key}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamPolicy:TagKeyIamPolicy editor "tagKeys/{{tag_key}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:tags/tagKeyIamPolicy:TagKeyIamPolicy editor tagKeys/{{tag_key}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetTagKeyIamPolicy

func GetTagKeyIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagKeyIamPolicyState, opts ...pulumi.ResourceOption) (*TagKeyIamPolicy, error)

GetTagKeyIamPolicy gets an existing TagKeyIamPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagKeyIamPolicy

func NewTagKeyIamPolicy(ctx *pulumi.Context,
	name string, args *TagKeyIamPolicyArgs, opts ...pulumi.ResourceOption) (*TagKeyIamPolicy, error)

NewTagKeyIamPolicy registers a new resource with the given unique name, arguments, and options.

func (*TagKeyIamPolicy) ElementType

func (*TagKeyIamPolicy) ElementType() reflect.Type

func (*TagKeyIamPolicy) ToTagKeyIamPolicyOutput

func (i *TagKeyIamPolicy) ToTagKeyIamPolicyOutput() TagKeyIamPolicyOutput

func (*TagKeyIamPolicy) ToTagKeyIamPolicyOutputWithContext

func (i *TagKeyIamPolicy) ToTagKeyIamPolicyOutputWithContext(ctx context.Context) TagKeyIamPolicyOutput

type TagKeyIamPolicyArgs

type TagKeyIamPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringInput
}

The set of arguments for constructing a TagKeyIamPolicy resource.

func (TagKeyIamPolicyArgs) ElementType

func (TagKeyIamPolicyArgs) ElementType() reflect.Type

type TagKeyIamPolicyArray

type TagKeyIamPolicyArray []TagKeyIamPolicyInput

func (TagKeyIamPolicyArray) ElementType

func (TagKeyIamPolicyArray) ElementType() reflect.Type

func (TagKeyIamPolicyArray) ToTagKeyIamPolicyArrayOutput

func (i TagKeyIamPolicyArray) ToTagKeyIamPolicyArrayOutput() TagKeyIamPolicyArrayOutput

func (TagKeyIamPolicyArray) ToTagKeyIamPolicyArrayOutputWithContext

func (i TagKeyIamPolicyArray) ToTagKeyIamPolicyArrayOutputWithContext(ctx context.Context) TagKeyIamPolicyArrayOutput

type TagKeyIamPolicyArrayInput

type TagKeyIamPolicyArrayInput interface {
	pulumi.Input

	ToTagKeyIamPolicyArrayOutput() TagKeyIamPolicyArrayOutput
	ToTagKeyIamPolicyArrayOutputWithContext(context.Context) TagKeyIamPolicyArrayOutput
}

TagKeyIamPolicyArrayInput is an input type that accepts TagKeyIamPolicyArray and TagKeyIamPolicyArrayOutput values. You can construct a concrete instance of `TagKeyIamPolicyArrayInput` via:

TagKeyIamPolicyArray{ TagKeyIamPolicyArgs{...} }

type TagKeyIamPolicyArrayOutput

type TagKeyIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (TagKeyIamPolicyArrayOutput) ElementType

func (TagKeyIamPolicyArrayOutput) ElementType() reflect.Type

func (TagKeyIamPolicyArrayOutput) Index

func (TagKeyIamPolicyArrayOutput) ToTagKeyIamPolicyArrayOutput

func (o TagKeyIamPolicyArrayOutput) ToTagKeyIamPolicyArrayOutput() TagKeyIamPolicyArrayOutput

func (TagKeyIamPolicyArrayOutput) ToTagKeyIamPolicyArrayOutputWithContext

func (o TagKeyIamPolicyArrayOutput) ToTagKeyIamPolicyArrayOutputWithContext(ctx context.Context) TagKeyIamPolicyArrayOutput

type TagKeyIamPolicyInput

type TagKeyIamPolicyInput interface {
	pulumi.Input

	ToTagKeyIamPolicyOutput() TagKeyIamPolicyOutput
	ToTagKeyIamPolicyOutputWithContext(ctx context.Context) TagKeyIamPolicyOutput
}

type TagKeyIamPolicyMap

type TagKeyIamPolicyMap map[string]TagKeyIamPolicyInput

func (TagKeyIamPolicyMap) ElementType

func (TagKeyIamPolicyMap) ElementType() reflect.Type

func (TagKeyIamPolicyMap) ToTagKeyIamPolicyMapOutput

func (i TagKeyIamPolicyMap) ToTagKeyIamPolicyMapOutput() TagKeyIamPolicyMapOutput

func (TagKeyIamPolicyMap) ToTagKeyIamPolicyMapOutputWithContext

func (i TagKeyIamPolicyMap) ToTagKeyIamPolicyMapOutputWithContext(ctx context.Context) TagKeyIamPolicyMapOutput

type TagKeyIamPolicyMapInput

type TagKeyIamPolicyMapInput interface {
	pulumi.Input

	ToTagKeyIamPolicyMapOutput() TagKeyIamPolicyMapOutput
	ToTagKeyIamPolicyMapOutputWithContext(context.Context) TagKeyIamPolicyMapOutput
}

TagKeyIamPolicyMapInput is an input type that accepts TagKeyIamPolicyMap and TagKeyIamPolicyMapOutput values. You can construct a concrete instance of `TagKeyIamPolicyMapInput` via:

TagKeyIamPolicyMap{ "key": TagKeyIamPolicyArgs{...} }

type TagKeyIamPolicyMapOutput

type TagKeyIamPolicyMapOutput struct{ *pulumi.OutputState }

func (TagKeyIamPolicyMapOutput) ElementType

func (TagKeyIamPolicyMapOutput) ElementType() reflect.Type

func (TagKeyIamPolicyMapOutput) MapIndex

func (TagKeyIamPolicyMapOutput) ToTagKeyIamPolicyMapOutput

func (o TagKeyIamPolicyMapOutput) ToTagKeyIamPolicyMapOutput() TagKeyIamPolicyMapOutput

func (TagKeyIamPolicyMapOutput) ToTagKeyIamPolicyMapOutputWithContext

func (o TagKeyIamPolicyMapOutput) ToTagKeyIamPolicyMapOutputWithContext(ctx context.Context) TagKeyIamPolicyMapOutput

type TagKeyIamPolicyOutput

type TagKeyIamPolicyOutput struct{ *pulumi.OutputState }

func (TagKeyIamPolicyOutput) ElementType

func (TagKeyIamPolicyOutput) ElementType() reflect.Type

func (TagKeyIamPolicyOutput) Etag

(Computed) The etag of the IAM policy.

func (TagKeyIamPolicyOutput) PolicyData

func (o TagKeyIamPolicyOutput) PolicyData() pulumi.StringOutput

The policy data generated by a `organizations.getIAMPolicy` data source.

func (TagKeyIamPolicyOutput) TagKey

Used to find the parent resource to bind the IAM policy to

func (TagKeyIamPolicyOutput) ToTagKeyIamPolicyOutput

func (o TagKeyIamPolicyOutput) ToTagKeyIamPolicyOutput() TagKeyIamPolicyOutput

func (TagKeyIamPolicyOutput) ToTagKeyIamPolicyOutputWithContext

func (o TagKeyIamPolicyOutput) ToTagKeyIamPolicyOutputWithContext(ctx context.Context) TagKeyIamPolicyOutput

type TagKeyIamPolicyState

type TagKeyIamPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagKey pulumi.StringPtrInput
}

func (TagKeyIamPolicyState) ElementType

func (TagKeyIamPolicyState) ElementType() reflect.Type

type TagKeyInput

type TagKeyInput interface {
	pulumi.Input

	ToTagKeyOutput() TagKeyOutput
	ToTagKeyOutputWithContext(ctx context.Context) TagKeyOutput
}

type TagKeyMap

type TagKeyMap map[string]TagKeyInput

func (TagKeyMap) ElementType

func (TagKeyMap) ElementType() reflect.Type

func (TagKeyMap) ToTagKeyMapOutput

func (i TagKeyMap) ToTagKeyMapOutput() TagKeyMapOutput

func (TagKeyMap) ToTagKeyMapOutputWithContext

func (i TagKeyMap) ToTagKeyMapOutputWithContext(ctx context.Context) TagKeyMapOutput

type TagKeyMapInput

type TagKeyMapInput interface {
	pulumi.Input

	ToTagKeyMapOutput() TagKeyMapOutput
	ToTagKeyMapOutputWithContext(context.Context) TagKeyMapOutput
}

TagKeyMapInput is an input type that accepts TagKeyMap and TagKeyMapOutput values. You can construct a concrete instance of `TagKeyMapInput` via:

TagKeyMap{ "key": TagKeyArgs{...} }

type TagKeyMapOutput

type TagKeyMapOutput struct{ *pulumi.OutputState }

func (TagKeyMapOutput) ElementType

func (TagKeyMapOutput) ElementType() reflect.Type

func (TagKeyMapOutput) MapIndex

func (TagKeyMapOutput) ToTagKeyMapOutput

func (o TagKeyMapOutput) ToTagKeyMapOutput() TagKeyMapOutput

func (TagKeyMapOutput) ToTagKeyMapOutputWithContext

func (o TagKeyMapOutput) ToTagKeyMapOutputWithContext(ctx context.Context) TagKeyMapOutput

type TagKeyOutput

type TagKeyOutput struct{ *pulumi.OutputState }

func (TagKeyOutput) CreateTime

func (o TagKeyOutput) CreateTime() pulumi.StringOutput

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".

func (TagKeyOutput) Description

func (o TagKeyOutput) Description() pulumi.StringPtrOutput

User-assigned description of the TagKey. Must not exceed 256 characters.

func (TagKeyOutput) ElementType

func (TagKeyOutput) ElementType() reflect.Type

func (TagKeyOutput) Name

func (o TagKeyOutput) Name() pulumi.StringOutput

The generated numeric id for the TagKey.

func (TagKeyOutput) NamespacedName

func (o TagKeyOutput) NamespacedName() pulumi.StringOutput

Output only. Namespaced name of the TagKey.

func (TagKeyOutput) Parent

func (o TagKeyOutput) Parent() pulumi.StringOutput

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}.

func (TagKeyOutput) Purpose

func (o TagKeyOutput) Purpose() pulumi.StringPtrOutput

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`.

func (TagKeyOutput) PurposeData

func (o TagKeyOutput) PurposeData() pulumi.StringMapOutput

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 = "<project-name>/<vpc-name>"`.

func (TagKeyOutput) ShortName

func (o TagKeyOutput) ShortName() pulumi.StringOutput

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 must be 1-63 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.

***

func (TagKeyOutput) ToTagKeyOutput

func (o TagKeyOutput) ToTagKeyOutput() TagKeyOutput

func (TagKeyOutput) ToTagKeyOutputWithContext

func (o TagKeyOutput) ToTagKeyOutputWithContext(ctx context.Context) TagKeyOutput

func (TagKeyOutput) UpdateTime

func (o TagKeyOutput) UpdateTime() pulumi.StringOutput

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".

type TagKeyState

type TagKeyState struct {
	// 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.StringPtrInput
	// User-assigned description of the TagKey. Must not exceed 256 characters.
	Description pulumi.StringPtrInput
	// The generated numeric id for the TagKey.
	Name pulumi.StringPtrInput
	// Output only. Namespaced name of the TagKey.
	NamespacedName pulumi.StringPtrInput
	// 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.StringPtrInput
	// 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`.
	Purpose pulumi.StringPtrInput
	// 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 = "<project-name>/<vpc-name>"`.
	PurposeData pulumi.StringMapInput
	// 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 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.StringPtrInput
	// 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.StringPtrInput
}

func (TagKeyState) ElementType

func (TagKeyState) ElementType() reflect.Type

type TagValue

type TagValue struct {
	pulumi.CustomResourceState

	// 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.StringOutput `pulumi:"createTime"`
	// User-assigned description of the TagValue. Must not exceed 256 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The generated numeric id for the TagValue.
	Name pulumi.StringOutput `pulumi:"name"`
	// Output only. Namespaced name of the TagValue. Will be in the format {parentNamespace}/{tagKeyShortName}/{shortName}.
	NamespacedName pulumi.StringOutput `pulumi:"namespacedName"`
	// Input only. The resource name of the new TagValue's parent. Must be of the form tagKeys/{tag_key_id}.
	Parent pulumi.StringOutput `pulumi:"parent"`
	// Input only. User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.
	// The short name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.
	//
	// ***
	ShortName pulumi.StringOutput `pulumi:"shortName"`
	// 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.StringOutput `pulumi:"updateTime"`
}

A TagValue is a child of a particular TagKey. TagValues are used to group cloud resources for the purpose of controlling them using policies.

To get more information about TagValue, see:

* [API documentation](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues) * How-to Guides

## Example Usage

### Tag Value Basic

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		key, err := tags.NewTagKey(ctx, "key", &tags.TagKeyArgs{
			Parent:      pulumi.String("organizations/123456789"),
			ShortName:   pulumi.String("keyname"),
			Description: pulumi.String("For keyname resources."),
		})
		if err != nil {
			return err
		}
		_, err = tags.NewTagValue(ctx, "value", &tags.TagValueArgs{
			Parent: key.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("tagKeys/%v", name), nil
			}).(pulumi.StringOutput),
			ShortName:   pulumi.String("valuename"),
			Description: pulumi.String("For valuename resources."),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

TagValue can be imported using any of these accepted formats:

* `tagValues/{{name}}`

* `{{name}}`

When using the `pulumi import` command, TagValue can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:tags/tagValue:TagValue default tagValues/{{name}} ```

```sh $ pulumi import gcp:tags/tagValue:TagValue default {{name}} ```

func GetTagValue

func GetTagValue(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagValueState, opts ...pulumi.ResourceOption) (*TagValue, error)

GetTagValue gets an existing TagValue resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagValue

func NewTagValue(ctx *pulumi.Context,
	name string, args *TagValueArgs, opts ...pulumi.ResourceOption) (*TagValue, error)

NewTagValue registers a new resource with the given unique name, arguments, and options.

func (*TagValue) ElementType

func (*TagValue) ElementType() reflect.Type

func (*TagValue) ToTagValueOutput

func (i *TagValue) ToTagValueOutput() TagValueOutput

func (*TagValue) ToTagValueOutputWithContext

func (i *TagValue) ToTagValueOutputWithContext(ctx context.Context) TagValueOutput

type TagValueArgs

type TagValueArgs struct {
	// User-assigned description of the TagValue. Must not exceed 256 characters.
	Description pulumi.StringPtrInput
	// Input only. The resource name of the new TagValue's parent. Must be of the form tagKeys/{tag_key_id}.
	Parent pulumi.StringInput
	// Input only. User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.
	// The short name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.
	//
	// ***
	ShortName pulumi.StringInput
}

The set of arguments for constructing a TagValue resource.

func (TagValueArgs) ElementType

func (TagValueArgs) ElementType() reflect.Type

type TagValueArray

type TagValueArray []TagValueInput

func (TagValueArray) ElementType

func (TagValueArray) ElementType() reflect.Type

func (TagValueArray) ToTagValueArrayOutput

func (i TagValueArray) ToTagValueArrayOutput() TagValueArrayOutput

func (TagValueArray) ToTagValueArrayOutputWithContext

func (i TagValueArray) ToTagValueArrayOutputWithContext(ctx context.Context) TagValueArrayOutput

type TagValueArrayInput

type TagValueArrayInput interface {
	pulumi.Input

	ToTagValueArrayOutput() TagValueArrayOutput
	ToTagValueArrayOutputWithContext(context.Context) TagValueArrayOutput
}

TagValueArrayInput is an input type that accepts TagValueArray and TagValueArrayOutput values. You can construct a concrete instance of `TagValueArrayInput` via:

TagValueArray{ TagValueArgs{...} }

type TagValueArrayOutput

type TagValueArrayOutput struct{ *pulumi.OutputState }

func (TagValueArrayOutput) ElementType

func (TagValueArrayOutput) ElementType() reflect.Type

func (TagValueArrayOutput) Index

func (TagValueArrayOutput) ToTagValueArrayOutput

func (o TagValueArrayOutput) ToTagValueArrayOutput() TagValueArrayOutput

func (TagValueArrayOutput) ToTagValueArrayOutputWithContext

func (o TagValueArrayOutput) ToTagValueArrayOutputWithContext(ctx context.Context) TagValueArrayOutput

type TagValueIamBinding

type TagValueIamBinding struct {
	pulumi.CustomResourceState

	Condition TagValueIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. Only one
	// `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringOutput `pulumi:"tagValue"`
}

Three different resources help you manage your IAM policy for Tags TagValue. Each of these resources serves a different use case:

* `tags.TagValueIamPolicy`: Authoritative. Sets the IAM policy for the tagvalue and replaces any existing policy already attached. * `tags.TagValueIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the tagvalue are preserved. * `tags.TagValueIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagvalue are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `tags.TagValueIamPolicy`: Retrieves the IAM policy for the tagvalue

> **Note:** `tags.TagValueIamPolicy` **cannot** be used in conjunction with `tags.TagValueIamBinding` and `tags.TagValueIamMember` or they will fight over what your policy should be.

> **Note:** `tags.TagValueIamBinding` resources **can be** used in conjunction with `tags.TagValueIamMember` resources **only if** they do not grant privilege to the same role.

## google\_tags\_tag\_value\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagValueIamPolicy(ctx, "policy", &tags.TagValueIamPolicyArgs{
			TagValue:   pulumi.Any(value.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamBinding(ctx, "binding", &tags.TagValueIamBindingArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamMember(ctx, "member", &tags.TagValueIamMemberArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagValueIamPolicy(ctx, "policy", &tags.TagValueIamPolicyArgs{
			TagValue:   pulumi.Any(value.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamBinding(ctx, "binding", &tags.TagValueIamBindingArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamMember(ctx, "member", &tags.TagValueIamMemberArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* tagValues/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Tags tagvalue IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:tags/tagValueIamBinding:TagValueIamBinding editor "tagValues/{{tag_value}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:tags/tagValueIamBinding:TagValueIamBinding editor "tagValues/{{tag_value}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:tags/tagValueIamBinding:TagValueIamBinding editor tagValues/{{tag_value}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetTagValueIamBinding

func GetTagValueIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagValueIamBindingState, opts ...pulumi.ResourceOption) (*TagValueIamBinding, error)

GetTagValueIamBinding gets an existing TagValueIamBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagValueIamBinding

func NewTagValueIamBinding(ctx *pulumi.Context,
	name string, args *TagValueIamBindingArgs, opts ...pulumi.ResourceOption) (*TagValueIamBinding, error)

NewTagValueIamBinding registers a new resource with the given unique name, arguments, and options.

func (*TagValueIamBinding) ElementType

func (*TagValueIamBinding) ElementType() reflect.Type

func (*TagValueIamBinding) ToTagValueIamBindingOutput

func (i *TagValueIamBinding) ToTagValueIamBindingOutput() TagValueIamBindingOutput

func (*TagValueIamBinding) ToTagValueIamBindingOutputWithContext

func (i *TagValueIamBinding) ToTagValueIamBindingOutputWithContext(ctx context.Context) TagValueIamBindingOutput

type TagValueIamBindingArgs

type TagValueIamBindingArgs struct {
	Condition TagValueIamBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringInput
}

The set of arguments for constructing a TagValueIamBinding resource.

func (TagValueIamBindingArgs) ElementType

func (TagValueIamBindingArgs) ElementType() reflect.Type

type TagValueIamBindingArray

type TagValueIamBindingArray []TagValueIamBindingInput

func (TagValueIamBindingArray) ElementType

func (TagValueIamBindingArray) ElementType() reflect.Type

func (TagValueIamBindingArray) ToTagValueIamBindingArrayOutput

func (i TagValueIamBindingArray) ToTagValueIamBindingArrayOutput() TagValueIamBindingArrayOutput

func (TagValueIamBindingArray) ToTagValueIamBindingArrayOutputWithContext

func (i TagValueIamBindingArray) ToTagValueIamBindingArrayOutputWithContext(ctx context.Context) TagValueIamBindingArrayOutput

type TagValueIamBindingArrayInput

type TagValueIamBindingArrayInput interface {
	pulumi.Input

	ToTagValueIamBindingArrayOutput() TagValueIamBindingArrayOutput
	ToTagValueIamBindingArrayOutputWithContext(context.Context) TagValueIamBindingArrayOutput
}

TagValueIamBindingArrayInput is an input type that accepts TagValueIamBindingArray and TagValueIamBindingArrayOutput values. You can construct a concrete instance of `TagValueIamBindingArrayInput` via:

TagValueIamBindingArray{ TagValueIamBindingArgs{...} }

type TagValueIamBindingArrayOutput

type TagValueIamBindingArrayOutput struct{ *pulumi.OutputState }

func (TagValueIamBindingArrayOutput) ElementType

func (TagValueIamBindingArrayOutput) Index

func (TagValueIamBindingArrayOutput) ToTagValueIamBindingArrayOutput

func (o TagValueIamBindingArrayOutput) ToTagValueIamBindingArrayOutput() TagValueIamBindingArrayOutput

func (TagValueIamBindingArrayOutput) ToTagValueIamBindingArrayOutputWithContext

func (o TagValueIamBindingArrayOutput) ToTagValueIamBindingArrayOutputWithContext(ctx context.Context) TagValueIamBindingArrayOutput

type TagValueIamBindingCondition

type TagValueIamBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TagValueIamBindingConditionArgs

type TagValueIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TagValueIamBindingConditionArgs) ElementType

func (TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionOutput

func (i TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionOutput() TagValueIamBindingConditionOutput

func (TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionOutputWithContext

func (i TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionOutputWithContext(ctx context.Context) TagValueIamBindingConditionOutput

func (TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionPtrOutput

func (i TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionPtrOutput() TagValueIamBindingConditionPtrOutput

func (TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionPtrOutputWithContext

func (i TagValueIamBindingConditionArgs) ToTagValueIamBindingConditionPtrOutputWithContext(ctx context.Context) TagValueIamBindingConditionPtrOutput

type TagValueIamBindingConditionInput

type TagValueIamBindingConditionInput interface {
	pulumi.Input

	ToTagValueIamBindingConditionOutput() TagValueIamBindingConditionOutput
	ToTagValueIamBindingConditionOutputWithContext(context.Context) TagValueIamBindingConditionOutput
}

TagValueIamBindingConditionInput is an input type that accepts TagValueIamBindingConditionArgs and TagValueIamBindingConditionOutput values. You can construct a concrete instance of `TagValueIamBindingConditionInput` via:

TagValueIamBindingConditionArgs{...}

type TagValueIamBindingConditionOutput

type TagValueIamBindingConditionOutput struct{ *pulumi.OutputState }

func (TagValueIamBindingConditionOutput) Description

func (TagValueIamBindingConditionOutput) ElementType

func (TagValueIamBindingConditionOutput) Expression

func (TagValueIamBindingConditionOutput) Title

func (TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionOutput

func (o TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionOutput() TagValueIamBindingConditionOutput

func (TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionOutputWithContext

func (o TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionOutputWithContext(ctx context.Context) TagValueIamBindingConditionOutput

func (TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionPtrOutput

func (o TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionPtrOutput() TagValueIamBindingConditionPtrOutput

func (TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionPtrOutputWithContext

func (o TagValueIamBindingConditionOutput) ToTagValueIamBindingConditionPtrOutputWithContext(ctx context.Context) TagValueIamBindingConditionPtrOutput

type TagValueIamBindingConditionPtrInput

type TagValueIamBindingConditionPtrInput interface {
	pulumi.Input

	ToTagValueIamBindingConditionPtrOutput() TagValueIamBindingConditionPtrOutput
	ToTagValueIamBindingConditionPtrOutputWithContext(context.Context) TagValueIamBindingConditionPtrOutput
}

TagValueIamBindingConditionPtrInput is an input type that accepts TagValueIamBindingConditionArgs, TagValueIamBindingConditionPtr and TagValueIamBindingConditionPtrOutput values. You can construct a concrete instance of `TagValueIamBindingConditionPtrInput` via:

        TagValueIamBindingConditionArgs{...}

or:

        nil

type TagValueIamBindingConditionPtrOutput

type TagValueIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (TagValueIamBindingConditionPtrOutput) Description

func (TagValueIamBindingConditionPtrOutput) Elem

func (TagValueIamBindingConditionPtrOutput) ElementType

func (TagValueIamBindingConditionPtrOutput) Expression

func (TagValueIamBindingConditionPtrOutput) Title

func (TagValueIamBindingConditionPtrOutput) ToTagValueIamBindingConditionPtrOutput

func (o TagValueIamBindingConditionPtrOutput) ToTagValueIamBindingConditionPtrOutput() TagValueIamBindingConditionPtrOutput

func (TagValueIamBindingConditionPtrOutput) ToTagValueIamBindingConditionPtrOutputWithContext

func (o TagValueIamBindingConditionPtrOutput) ToTagValueIamBindingConditionPtrOutputWithContext(ctx context.Context) TagValueIamBindingConditionPtrOutput

type TagValueIamBindingInput

type TagValueIamBindingInput interface {
	pulumi.Input

	ToTagValueIamBindingOutput() TagValueIamBindingOutput
	ToTagValueIamBindingOutputWithContext(ctx context.Context) TagValueIamBindingOutput
}

type TagValueIamBindingMap

type TagValueIamBindingMap map[string]TagValueIamBindingInput

func (TagValueIamBindingMap) ElementType

func (TagValueIamBindingMap) ElementType() reflect.Type

func (TagValueIamBindingMap) ToTagValueIamBindingMapOutput

func (i TagValueIamBindingMap) ToTagValueIamBindingMapOutput() TagValueIamBindingMapOutput

func (TagValueIamBindingMap) ToTagValueIamBindingMapOutputWithContext

func (i TagValueIamBindingMap) ToTagValueIamBindingMapOutputWithContext(ctx context.Context) TagValueIamBindingMapOutput

type TagValueIamBindingMapInput

type TagValueIamBindingMapInput interface {
	pulumi.Input

	ToTagValueIamBindingMapOutput() TagValueIamBindingMapOutput
	ToTagValueIamBindingMapOutputWithContext(context.Context) TagValueIamBindingMapOutput
}

TagValueIamBindingMapInput is an input type that accepts TagValueIamBindingMap and TagValueIamBindingMapOutput values. You can construct a concrete instance of `TagValueIamBindingMapInput` via:

TagValueIamBindingMap{ "key": TagValueIamBindingArgs{...} }

type TagValueIamBindingMapOutput

type TagValueIamBindingMapOutput struct{ *pulumi.OutputState }

func (TagValueIamBindingMapOutput) ElementType

func (TagValueIamBindingMapOutput) MapIndex

func (TagValueIamBindingMapOutput) ToTagValueIamBindingMapOutput

func (o TagValueIamBindingMapOutput) ToTagValueIamBindingMapOutput() TagValueIamBindingMapOutput

func (TagValueIamBindingMapOutput) ToTagValueIamBindingMapOutputWithContext

func (o TagValueIamBindingMapOutput) ToTagValueIamBindingMapOutputWithContext(ctx context.Context) TagValueIamBindingMapOutput

type TagValueIamBindingOutput

type TagValueIamBindingOutput struct{ *pulumi.OutputState }

func (TagValueIamBindingOutput) Condition

func (TagValueIamBindingOutput) ElementType

func (TagValueIamBindingOutput) ElementType() reflect.Type

func (TagValueIamBindingOutput) Etag

(Computed) The etag of the IAM policy.

func (TagValueIamBindingOutput) Members

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (TagValueIamBindingOutput) Role

The role that should be applied. Only one `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (TagValueIamBindingOutput) TagValue

Used to find the parent resource to bind the IAM policy to

func (TagValueIamBindingOutput) ToTagValueIamBindingOutput

func (o TagValueIamBindingOutput) ToTagValueIamBindingOutput() TagValueIamBindingOutput

func (TagValueIamBindingOutput) ToTagValueIamBindingOutputWithContext

func (o TagValueIamBindingOutput) ToTagValueIamBindingOutputWithContext(ctx context.Context) TagValueIamBindingOutput

type TagValueIamBindingState

type TagValueIamBindingState struct {
	Condition TagValueIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringPtrInput
}

func (TagValueIamBindingState) ElementType

func (TagValueIamBindingState) ElementType() reflect.Type

type TagValueIamMember

type TagValueIamMember struct {
	pulumi.CustomResourceState

	Condition TagValueIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. Only one
	// `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringOutput `pulumi:"tagValue"`
}

Three different resources help you manage your IAM policy for Tags TagValue. Each of these resources serves a different use case:

* `tags.TagValueIamPolicy`: Authoritative. Sets the IAM policy for the tagvalue and replaces any existing policy already attached. * `tags.TagValueIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the tagvalue are preserved. * `tags.TagValueIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagvalue are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `tags.TagValueIamPolicy`: Retrieves the IAM policy for the tagvalue

> **Note:** `tags.TagValueIamPolicy` **cannot** be used in conjunction with `tags.TagValueIamBinding` and `tags.TagValueIamMember` or they will fight over what your policy should be.

> **Note:** `tags.TagValueIamBinding` resources **can be** used in conjunction with `tags.TagValueIamMember` resources **only if** they do not grant privilege to the same role.

## google\_tags\_tag\_value\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagValueIamPolicy(ctx, "policy", &tags.TagValueIamPolicyArgs{
			TagValue:   pulumi.Any(value.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamBinding(ctx, "binding", &tags.TagValueIamBindingArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamMember(ctx, "member", &tags.TagValueIamMemberArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagValueIamPolicy(ctx, "policy", &tags.TagValueIamPolicyArgs{
			TagValue:   pulumi.Any(value.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamBinding(ctx, "binding", &tags.TagValueIamBindingArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamMember(ctx, "member", &tags.TagValueIamMemberArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* tagValues/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Tags tagvalue IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:tags/tagValueIamMember:TagValueIamMember editor "tagValues/{{tag_value}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:tags/tagValueIamMember:TagValueIamMember editor "tagValues/{{tag_value}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:tags/tagValueIamMember:TagValueIamMember editor tagValues/{{tag_value}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetTagValueIamMember

func GetTagValueIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagValueIamMemberState, opts ...pulumi.ResourceOption) (*TagValueIamMember, error)

GetTagValueIamMember gets an existing TagValueIamMember resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagValueIamMember

func NewTagValueIamMember(ctx *pulumi.Context,
	name string, args *TagValueIamMemberArgs, opts ...pulumi.ResourceOption) (*TagValueIamMember, error)

NewTagValueIamMember registers a new resource with the given unique name, arguments, and options.

func (*TagValueIamMember) ElementType

func (*TagValueIamMember) ElementType() reflect.Type

func (*TagValueIamMember) ToTagValueIamMemberOutput

func (i *TagValueIamMember) ToTagValueIamMemberOutput() TagValueIamMemberOutput

func (*TagValueIamMember) ToTagValueIamMemberOutputWithContext

func (i *TagValueIamMember) ToTagValueIamMemberOutputWithContext(ctx context.Context) TagValueIamMemberOutput

type TagValueIamMemberArgs

type TagValueIamMemberArgs struct {
	Condition TagValueIamMemberConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// The role that should be applied. Only one
	// `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringInput
}

The set of arguments for constructing a TagValueIamMember resource.

func (TagValueIamMemberArgs) ElementType

func (TagValueIamMemberArgs) ElementType() reflect.Type

type TagValueIamMemberArray

type TagValueIamMemberArray []TagValueIamMemberInput

func (TagValueIamMemberArray) ElementType

func (TagValueIamMemberArray) ElementType() reflect.Type

func (TagValueIamMemberArray) ToTagValueIamMemberArrayOutput

func (i TagValueIamMemberArray) ToTagValueIamMemberArrayOutput() TagValueIamMemberArrayOutput

func (TagValueIamMemberArray) ToTagValueIamMemberArrayOutputWithContext

func (i TagValueIamMemberArray) ToTagValueIamMemberArrayOutputWithContext(ctx context.Context) TagValueIamMemberArrayOutput

type TagValueIamMemberArrayInput

type TagValueIamMemberArrayInput interface {
	pulumi.Input

	ToTagValueIamMemberArrayOutput() TagValueIamMemberArrayOutput
	ToTagValueIamMemberArrayOutputWithContext(context.Context) TagValueIamMemberArrayOutput
}

TagValueIamMemberArrayInput is an input type that accepts TagValueIamMemberArray and TagValueIamMemberArrayOutput values. You can construct a concrete instance of `TagValueIamMemberArrayInput` via:

TagValueIamMemberArray{ TagValueIamMemberArgs{...} }

type TagValueIamMemberArrayOutput

type TagValueIamMemberArrayOutput struct{ *pulumi.OutputState }

func (TagValueIamMemberArrayOutput) ElementType

func (TagValueIamMemberArrayOutput) Index

func (TagValueIamMemberArrayOutput) ToTagValueIamMemberArrayOutput

func (o TagValueIamMemberArrayOutput) ToTagValueIamMemberArrayOutput() TagValueIamMemberArrayOutput

func (TagValueIamMemberArrayOutput) ToTagValueIamMemberArrayOutputWithContext

func (o TagValueIamMemberArrayOutput) ToTagValueIamMemberArrayOutputWithContext(ctx context.Context) TagValueIamMemberArrayOutput

type TagValueIamMemberCondition

type TagValueIamMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TagValueIamMemberConditionArgs

type TagValueIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TagValueIamMemberConditionArgs) ElementType

func (TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionOutput

func (i TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionOutput() TagValueIamMemberConditionOutput

func (TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionOutputWithContext

func (i TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionOutputWithContext(ctx context.Context) TagValueIamMemberConditionOutput

func (TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionPtrOutput

func (i TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionPtrOutput() TagValueIamMemberConditionPtrOutput

func (TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionPtrOutputWithContext

func (i TagValueIamMemberConditionArgs) ToTagValueIamMemberConditionPtrOutputWithContext(ctx context.Context) TagValueIamMemberConditionPtrOutput

type TagValueIamMemberConditionInput

type TagValueIamMemberConditionInput interface {
	pulumi.Input

	ToTagValueIamMemberConditionOutput() TagValueIamMemberConditionOutput
	ToTagValueIamMemberConditionOutputWithContext(context.Context) TagValueIamMemberConditionOutput
}

TagValueIamMemberConditionInput is an input type that accepts TagValueIamMemberConditionArgs and TagValueIamMemberConditionOutput values. You can construct a concrete instance of `TagValueIamMemberConditionInput` via:

TagValueIamMemberConditionArgs{...}

type TagValueIamMemberConditionOutput

type TagValueIamMemberConditionOutput struct{ *pulumi.OutputState }

func (TagValueIamMemberConditionOutput) Description

func (TagValueIamMemberConditionOutput) ElementType

func (TagValueIamMemberConditionOutput) Expression

func (TagValueIamMemberConditionOutput) Title

func (TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionOutput

func (o TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionOutput() TagValueIamMemberConditionOutput

func (TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionOutputWithContext

func (o TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionOutputWithContext(ctx context.Context) TagValueIamMemberConditionOutput

func (TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionPtrOutput

func (o TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionPtrOutput() TagValueIamMemberConditionPtrOutput

func (TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionPtrOutputWithContext

func (o TagValueIamMemberConditionOutput) ToTagValueIamMemberConditionPtrOutputWithContext(ctx context.Context) TagValueIamMemberConditionPtrOutput

type TagValueIamMemberConditionPtrInput

type TagValueIamMemberConditionPtrInput interface {
	pulumi.Input

	ToTagValueIamMemberConditionPtrOutput() TagValueIamMemberConditionPtrOutput
	ToTagValueIamMemberConditionPtrOutputWithContext(context.Context) TagValueIamMemberConditionPtrOutput
}

TagValueIamMemberConditionPtrInput is an input type that accepts TagValueIamMemberConditionArgs, TagValueIamMemberConditionPtr and TagValueIamMemberConditionPtrOutput values. You can construct a concrete instance of `TagValueIamMemberConditionPtrInput` via:

        TagValueIamMemberConditionArgs{...}

or:

        nil

type TagValueIamMemberConditionPtrOutput

type TagValueIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (TagValueIamMemberConditionPtrOutput) Description

func (TagValueIamMemberConditionPtrOutput) Elem

func (TagValueIamMemberConditionPtrOutput) ElementType

func (TagValueIamMemberConditionPtrOutput) Expression

func (TagValueIamMemberConditionPtrOutput) Title

func (TagValueIamMemberConditionPtrOutput) ToTagValueIamMemberConditionPtrOutput

func (o TagValueIamMemberConditionPtrOutput) ToTagValueIamMemberConditionPtrOutput() TagValueIamMemberConditionPtrOutput

func (TagValueIamMemberConditionPtrOutput) ToTagValueIamMemberConditionPtrOutputWithContext

func (o TagValueIamMemberConditionPtrOutput) ToTagValueIamMemberConditionPtrOutputWithContext(ctx context.Context) TagValueIamMemberConditionPtrOutput

type TagValueIamMemberInput

type TagValueIamMemberInput interface {
	pulumi.Input

	ToTagValueIamMemberOutput() TagValueIamMemberOutput
	ToTagValueIamMemberOutputWithContext(ctx context.Context) TagValueIamMemberOutput
}

type TagValueIamMemberMap

type TagValueIamMemberMap map[string]TagValueIamMemberInput

func (TagValueIamMemberMap) ElementType

func (TagValueIamMemberMap) ElementType() reflect.Type

func (TagValueIamMemberMap) ToTagValueIamMemberMapOutput

func (i TagValueIamMemberMap) ToTagValueIamMemberMapOutput() TagValueIamMemberMapOutput

func (TagValueIamMemberMap) ToTagValueIamMemberMapOutputWithContext

func (i TagValueIamMemberMap) ToTagValueIamMemberMapOutputWithContext(ctx context.Context) TagValueIamMemberMapOutput

type TagValueIamMemberMapInput

type TagValueIamMemberMapInput interface {
	pulumi.Input

	ToTagValueIamMemberMapOutput() TagValueIamMemberMapOutput
	ToTagValueIamMemberMapOutputWithContext(context.Context) TagValueIamMemberMapOutput
}

TagValueIamMemberMapInput is an input type that accepts TagValueIamMemberMap and TagValueIamMemberMapOutput values. You can construct a concrete instance of `TagValueIamMemberMapInput` via:

TagValueIamMemberMap{ "key": TagValueIamMemberArgs{...} }

type TagValueIamMemberMapOutput

type TagValueIamMemberMapOutput struct{ *pulumi.OutputState }

func (TagValueIamMemberMapOutput) ElementType

func (TagValueIamMemberMapOutput) ElementType() reflect.Type

func (TagValueIamMemberMapOutput) MapIndex

func (TagValueIamMemberMapOutput) ToTagValueIamMemberMapOutput

func (o TagValueIamMemberMapOutput) ToTagValueIamMemberMapOutput() TagValueIamMemberMapOutput

func (TagValueIamMemberMapOutput) ToTagValueIamMemberMapOutputWithContext

func (o TagValueIamMemberMapOutput) ToTagValueIamMemberMapOutputWithContext(ctx context.Context) TagValueIamMemberMapOutput

type TagValueIamMemberOutput

type TagValueIamMemberOutput struct{ *pulumi.OutputState }

func (TagValueIamMemberOutput) Condition

func (TagValueIamMemberOutput) ElementType

func (TagValueIamMemberOutput) ElementType() reflect.Type

func (TagValueIamMemberOutput) Etag

(Computed) The etag of the IAM policy.

func (TagValueIamMemberOutput) Member

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (TagValueIamMemberOutput) Role

The role that should be applied. Only one `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (TagValueIamMemberOutput) TagValue

Used to find the parent resource to bind the IAM policy to

func (TagValueIamMemberOutput) ToTagValueIamMemberOutput

func (o TagValueIamMemberOutput) ToTagValueIamMemberOutput() TagValueIamMemberOutput

func (TagValueIamMemberOutput) ToTagValueIamMemberOutputWithContext

func (o TagValueIamMemberOutput) ToTagValueIamMemberOutputWithContext(ctx context.Context) TagValueIamMemberOutput

type TagValueIamMemberState

type TagValueIamMemberState struct {
	Condition TagValueIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `tags.TagValueIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringPtrInput
}

func (TagValueIamMemberState) ElementType

func (TagValueIamMemberState) ElementType() reflect.Type

type TagValueIamPolicy

type TagValueIamPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringOutput `pulumi:"tagValue"`
}

Three different resources help you manage your IAM policy for Tags TagValue. Each of these resources serves a different use case:

* `tags.TagValueIamPolicy`: Authoritative. Sets the IAM policy for the tagvalue and replaces any existing policy already attached. * `tags.TagValueIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the tagvalue are preserved. * `tags.TagValueIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagvalue are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `tags.TagValueIamPolicy`: Retrieves the IAM policy for the tagvalue

> **Note:** `tags.TagValueIamPolicy` **cannot** be used in conjunction with `tags.TagValueIamBinding` and `tags.TagValueIamMember` or they will fight over what your policy should be.

> **Note:** `tags.TagValueIamBinding` resources **can be** used in conjunction with `tags.TagValueIamMember` resources **only if** they do not grant privilege to the same role.

## google\_tags\_tag\_value\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagValueIamPolicy(ctx, "policy", &tags.TagValueIamPolicyArgs{
			TagValue:   pulumi.Any(value.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamBinding(ctx, "binding", &tags.TagValueIamBindingArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamMember(ctx, "member", &tags.TagValueIamMemberArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = tags.NewTagValueIamPolicy(ctx, "policy", &tags.TagValueIamPolicyArgs{
			TagValue:   pulumi.Any(value.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamBinding(ctx, "binding", &tags.TagValueIamBindingArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_tags\_tag\_value\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tags.NewTagValueIamMember(ctx, "member", &tags.TagValueIamMemberArgs{
			TagValue: pulumi.Any(value.Name),
			Role:     pulumi.String("roles/viewer"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* tagValues/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Tags tagvalue IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:tags/tagValueIamPolicy:TagValueIamPolicy editor "tagValues/{{tag_value}} roles/viewer user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:tags/tagValueIamPolicy:TagValueIamPolicy editor "tagValues/{{tag_value}} roles/viewer" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:tags/tagValueIamPolicy:TagValueIamPolicy editor tagValues/{{tag_value}} ```

-> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetTagValueIamPolicy

func GetTagValueIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagValueIamPolicyState, opts ...pulumi.ResourceOption) (*TagValueIamPolicy, error)

GetTagValueIamPolicy gets an existing TagValueIamPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagValueIamPolicy

func NewTagValueIamPolicy(ctx *pulumi.Context,
	name string, args *TagValueIamPolicyArgs, opts ...pulumi.ResourceOption) (*TagValueIamPolicy, error)

NewTagValueIamPolicy registers a new resource with the given unique name, arguments, and options.

func (*TagValueIamPolicy) ElementType

func (*TagValueIamPolicy) ElementType() reflect.Type

func (*TagValueIamPolicy) ToTagValueIamPolicyOutput

func (i *TagValueIamPolicy) ToTagValueIamPolicyOutput() TagValueIamPolicyOutput

func (*TagValueIamPolicy) ToTagValueIamPolicyOutputWithContext

func (i *TagValueIamPolicy) ToTagValueIamPolicyOutputWithContext(ctx context.Context) TagValueIamPolicyOutput

type TagValueIamPolicyArgs

type TagValueIamPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringInput
}

The set of arguments for constructing a TagValueIamPolicy resource.

func (TagValueIamPolicyArgs) ElementType

func (TagValueIamPolicyArgs) ElementType() reflect.Type

type TagValueIamPolicyArray

type TagValueIamPolicyArray []TagValueIamPolicyInput

func (TagValueIamPolicyArray) ElementType

func (TagValueIamPolicyArray) ElementType() reflect.Type

func (TagValueIamPolicyArray) ToTagValueIamPolicyArrayOutput

func (i TagValueIamPolicyArray) ToTagValueIamPolicyArrayOutput() TagValueIamPolicyArrayOutput

func (TagValueIamPolicyArray) ToTagValueIamPolicyArrayOutputWithContext

func (i TagValueIamPolicyArray) ToTagValueIamPolicyArrayOutputWithContext(ctx context.Context) TagValueIamPolicyArrayOutput

type TagValueIamPolicyArrayInput

type TagValueIamPolicyArrayInput interface {
	pulumi.Input

	ToTagValueIamPolicyArrayOutput() TagValueIamPolicyArrayOutput
	ToTagValueIamPolicyArrayOutputWithContext(context.Context) TagValueIamPolicyArrayOutput
}

TagValueIamPolicyArrayInput is an input type that accepts TagValueIamPolicyArray and TagValueIamPolicyArrayOutput values. You can construct a concrete instance of `TagValueIamPolicyArrayInput` via:

TagValueIamPolicyArray{ TagValueIamPolicyArgs{...} }

type TagValueIamPolicyArrayOutput

type TagValueIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (TagValueIamPolicyArrayOutput) ElementType

func (TagValueIamPolicyArrayOutput) Index

func (TagValueIamPolicyArrayOutput) ToTagValueIamPolicyArrayOutput

func (o TagValueIamPolicyArrayOutput) ToTagValueIamPolicyArrayOutput() TagValueIamPolicyArrayOutput

func (TagValueIamPolicyArrayOutput) ToTagValueIamPolicyArrayOutputWithContext

func (o TagValueIamPolicyArrayOutput) ToTagValueIamPolicyArrayOutputWithContext(ctx context.Context) TagValueIamPolicyArrayOutput

type TagValueIamPolicyInput

type TagValueIamPolicyInput interface {
	pulumi.Input

	ToTagValueIamPolicyOutput() TagValueIamPolicyOutput
	ToTagValueIamPolicyOutputWithContext(ctx context.Context) TagValueIamPolicyOutput
}

type TagValueIamPolicyMap

type TagValueIamPolicyMap map[string]TagValueIamPolicyInput

func (TagValueIamPolicyMap) ElementType

func (TagValueIamPolicyMap) ElementType() reflect.Type

func (TagValueIamPolicyMap) ToTagValueIamPolicyMapOutput

func (i TagValueIamPolicyMap) ToTagValueIamPolicyMapOutput() TagValueIamPolicyMapOutput

func (TagValueIamPolicyMap) ToTagValueIamPolicyMapOutputWithContext

func (i TagValueIamPolicyMap) ToTagValueIamPolicyMapOutputWithContext(ctx context.Context) TagValueIamPolicyMapOutput

type TagValueIamPolicyMapInput

type TagValueIamPolicyMapInput interface {
	pulumi.Input

	ToTagValueIamPolicyMapOutput() TagValueIamPolicyMapOutput
	ToTagValueIamPolicyMapOutputWithContext(context.Context) TagValueIamPolicyMapOutput
}

TagValueIamPolicyMapInput is an input type that accepts TagValueIamPolicyMap and TagValueIamPolicyMapOutput values. You can construct a concrete instance of `TagValueIamPolicyMapInput` via:

TagValueIamPolicyMap{ "key": TagValueIamPolicyArgs{...} }

type TagValueIamPolicyMapOutput

type TagValueIamPolicyMapOutput struct{ *pulumi.OutputState }

func (TagValueIamPolicyMapOutput) ElementType

func (TagValueIamPolicyMapOutput) ElementType() reflect.Type

func (TagValueIamPolicyMapOutput) MapIndex

func (TagValueIamPolicyMapOutput) ToTagValueIamPolicyMapOutput

func (o TagValueIamPolicyMapOutput) ToTagValueIamPolicyMapOutput() TagValueIamPolicyMapOutput

func (TagValueIamPolicyMapOutput) ToTagValueIamPolicyMapOutputWithContext

func (o TagValueIamPolicyMapOutput) ToTagValueIamPolicyMapOutputWithContext(ctx context.Context) TagValueIamPolicyMapOutput

type TagValueIamPolicyOutput

type TagValueIamPolicyOutput struct{ *pulumi.OutputState }

func (TagValueIamPolicyOutput) ElementType

func (TagValueIamPolicyOutput) ElementType() reflect.Type

func (TagValueIamPolicyOutput) Etag

(Computed) The etag of the IAM policy.

func (TagValueIamPolicyOutput) PolicyData

The policy data generated by a `organizations.getIAMPolicy` data source.

func (TagValueIamPolicyOutput) TagValue

Used to find the parent resource to bind the IAM policy to

func (TagValueIamPolicyOutput) ToTagValueIamPolicyOutput

func (o TagValueIamPolicyOutput) ToTagValueIamPolicyOutput() TagValueIamPolicyOutput

func (TagValueIamPolicyOutput) ToTagValueIamPolicyOutputWithContext

func (o TagValueIamPolicyOutput) ToTagValueIamPolicyOutputWithContext(ctx context.Context) TagValueIamPolicyOutput

type TagValueIamPolicyState

type TagValueIamPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagValue pulumi.StringPtrInput
}

func (TagValueIamPolicyState) ElementType

func (TagValueIamPolicyState) ElementType() reflect.Type

type TagValueInput

type TagValueInput interface {
	pulumi.Input

	ToTagValueOutput() TagValueOutput
	ToTagValueOutputWithContext(ctx context.Context) TagValueOutput
}

type TagValueMap

type TagValueMap map[string]TagValueInput

func (TagValueMap) ElementType

func (TagValueMap) ElementType() reflect.Type

func (TagValueMap) ToTagValueMapOutput

func (i TagValueMap) ToTagValueMapOutput() TagValueMapOutput

func (TagValueMap) ToTagValueMapOutputWithContext

func (i TagValueMap) ToTagValueMapOutputWithContext(ctx context.Context) TagValueMapOutput

type TagValueMapInput

type TagValueMapInput interface {
	pulumi.Input

	ToTagValueMapOutput() TagValueMapOutput
	ToTagValueMapOutputWithContext(context.Context) TagValueMapOutput
}

TagValueMapInput is an input type that accepts TagValueMap and TagValueMapOutput values. You can construct a concrete instance of `TagValueMapInput` via:

TagValueMap{ "key": TagValueArgs{...} }

type TagValueMapOutput

type TagValueMapOutput struct{ *pulumi.OutputState }

func (TagValueMapOutput) ElementType

func (TagValueMapOutput) ElementType() reflect.Type

func (TagValueMapOutput) MapIndex

func (TagValueMapOutput) ToTagValueMapOutput

func (o TagValueMapOutput) ToTagValueMapOutput() TagValueMapOutput

func (TagValueMapOutput) ToTagValueMapOutputWithContext

func (o TagValueMapOutput) ToTagValueMapOutputWithContext(ctx context.Context) TagValueMapOutput

type TagValueOutput

type TagValueOutput struct{ *pulumi.OutputState }

func (TagValueOutput) CreateTime

func (o TagValueOutput) CreateTime() pulumi.StringOutput

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".

func (TagValueOutput) Description

func (o TagValueOutput) Description() pulumi.StringPtrOutput

User-assigned description of the TagValue. Must not exceed 256 characters.

func (TagValueOutput) ElementType

func (TagValueOutput) ElementType() reflect.Type

func (TagValueOutput) Name

The generated numeric id for the TagValue.

func (TagValueOutput) NamespacedName

func (o TagValueOutput) NamespacedName() pulumi.StringOutput

Output only. Namespaced name of the TagValue. Will be in the format {parentNamespace}/{tagKeyShortName}/{shortName}.

func (TagValueOutput) Parent

func (o TagValueOutput) Parent() pulumi.StringOutput

Input only. The resource name of the new TagValue's parent. Must be of the form tagKeys/{tag_key_id}.

func (TagValueOutput) ShortName

func (o TagValueOutput) ShortName() pulumi.StringOutput

Input only. User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey. The short name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.

***

func (TagValueOutput) ToTagValueOutput

func (o TagValueOutput) ToTagValueOutput() TagValueOutput

func (TagValueOutput) ToTagValueOutputWithContext

func (o TagValueOutput) ToTagValueOutputWithContext(ctx context.Context) TagValueOutput

func (TagValueOutput) UpdateTime

func (o TagValueOutput) UpdateTime() pulumi.StringOutput

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".

type TagValueState

type TagValueState struct {
	// 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.StringPtrInput
	// User-assigned description of the TagValue. Must not exceed 256 characters.
	Description pulumi.StringPtrInput
	// The generated numeric id for the TagValue.
	Name pulumi.StringPtrInput
	// Output only. Namespaced name of the TagValue. Will be in the format {parentNamespace}/{tagKeyShortName}/{shortName}.
	NamespacedName pulumi.StringPtrInput
	// Input only. The resource name of the new TagValue's parent. Must be of the form tagKeys/{tag_key_id}.
	Parent pulumi.StringPtrInput
	// Input only. User-assigned short name for TagValue. The short name should be unique for TagValues within the same parent TagKey.
	// The short name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.
	//
	// ***
	ShortName pulumi.StringPtrInput
	// 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.StringPtrInput
}

func (TagValueState) ElementType

func (TagValueState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL