datacatalog

package
v6.67.1 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Entry

type Entry struct {
	pulumi.CustomResourceState

	// Specification for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.
	// Context: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
	// Structure is documented below.
	BigqueryDateShardedSpecs EntryBigqueryDateShardedSpecArrayOutput `pulumi:"bigqueryDateShardedSpecs"`
	// Specification that applies to a BigQuery table. This is only valid on entries of type TABLE.
	// Structure is documented below.
	BigqueryTableSpecs EntryBigqueryTableSpecArrayOutput `pulumi:"bigqueryTableSpecs"`
	// Entry description, which can consist of several sentences or paragraphs that describe entry contents.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Display information such as title and description. A short name to identify the entry,
	// for example, "Analytics Data - Jan 2011".
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// The name of the entry group this entry is in.
	EntryGroup pulumi.StringOutput `pulumi:"entryGroup"`
	// The id of the entry to create.
	//
	// ***
	EntryId pulumi.StringOutput `pulumi:"entryId"`
	// Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET.
	// Structure is documented below.
	GcsFilesetSpec EntryGcsFilesetSpecPtrOutput `pulumi:"gcsFilesetSpec"`
	// This field indicates the entry's source system that Data Catalog integrates with, such as BigQuery or Pub/Sub.
	IntegratedSystem pulumi.StringOutput `pulumi:"integratedSystem"`
	// The resource this metadata entry refers to.
	// For Google Cloud Platform resources, linkedResource is the full name of the resource.
	// For example, the linkedResource for a table resource from BigQuery is:
	// //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
	// Output only when Entry is of type in the EntryType enum. For entries with userSpecifiedType,
	// this field is optional and defaults to an empty string.
	LinkedResource pulumi.StringOutput `pulumi:"linkedResource"`
	// The Data Catalog resource name of the entry in URL format.
	// Example: projects/{project_id}/locations/{location}/entryGroups/{entryGroupId}/entries/{entryId}.
	// Note that this Entry and its child resources may not actually be stored in the location in this name.
	Name pulumi.StringOutput `pulumi:"name"`
	// Schema of the entry (e.g. BigQuery, GoogleSQL, Avro schema), as a json string. An entry might not have any schema
	// attached to it. See
	// https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries#schema
	// for what fields this schema can contain.
	Schema pulumi.StringPtrOutput `pulumi:"schema"`
	// The type of the entry. Only used for Entries with types in the EntryType enum.
	// Currently, only FILESET enum value is allowed. All other entries created through Data Catalog must use userSpecifiedType.
	// Possible values are: `FILESET`.
	Type pulumi.StringPtrOutput `pulumi:"type"`
	// This field indicates the entry's source system that Data Catalog does not integrate with.
	// userSpecifiedSystem strings must begin with a letter or underscore and can only contain letters, numbers,
	// and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.
	UserSpecifiedSystem pulumi.StringPtrOutput `pulumi:"userSpecifiedSystem"`
	// Entry type if it does not fit any of the input-allowed values listed in EntryType enum above.
	// When creating an entry, users should check the enum values first, if nothing matches the entry
	// to be created, then provide a custom value, for example "mySpecialType".
	// userSpecifiedType strings must begin with a letter or underscore and can only contain letters,
	// numbers, and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.
	UserSpecifiedType pulumi.StringPtrOutput `pulumi:"userSpecifiedType"`
}

Entry Metadata. A Data Catalog Entry resource represents another resource in Google Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic) or outside of Google Cloud Platform. Clients can use the linkedResource field in the Entry resource to refer to the original resource ID of the source system.

An Entry resource contains resource details, such as its schema. An Entry can also be used to attach flexible metadata, such as a Tag.

To get more information about Entry, see:

* [API documentation](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries) * How-to Guides

## Example Usage ### Data Catalog Entry Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		entryGroup, err := datacatalog.NewEntryGroup(ctx, "entryGroup", &datacatalog.EntryGroupArgs{
			EntryGroupId: pulumi.String("my_group"),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewEntry(ctx, "basicEntry", &datacatalog.EntryArgs{
			EntryGroup:          entryGroup.ID(),
			EntryId:             pulumi.String("my_entry"),
			UserSpecifiedType:   pulumi.String("my_custom_type"),
			UserSpecifiedSystem: pulumi.String("SomethingExternal"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Data Catalog Entry Fileset

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		entryGroup, err := datacatalog.NewEntryGroup(ctx, "entryGroup", &datacatalog.EntryGroupArgs{
			EntryGroupId: pulumi.String("my_group"),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewEntry(ctx, "basicEntry", &datacatalog.EntryArgs{
			EntryGroup: entryGroup.ID(),
			EntryId:    pulumi.String("my_entry"),
			Type:       pulumi.String("FILESET"),
			GcsFilesetSpec: &datacatalog.EntryGcsFilesetSpecArgs{
				FilePatterns: pulumi.StringArray{
					pulumi.String("gs://fake_bucket/dir/*"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Data Catalog Entry Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		entryGroup, err := datacatalog.NewEntryGroup(ctx, "entryGroup", &datacatalog.EntryGroupArgs{
			EntryGroupId: pulumi.String("my_group"),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewEntry(ctx, "basicEntry", &datacatalog.EntryArgs{
			EntryGroup:          entryGroup.ID(),
			EntryId:             pulumi.String("my_entry"),
			UserSpecifiedType:   pulumi.String("my_user_specified_type"),
			UserSpecifiedSystem: pulumi.String("Something_custom"),
			LinkedResource:      pulumi.String("my/linked/resource"),
			DisplayName:         pulumi.String("my custom type entry"),
			Description:         pulumi.String("a custom type entry for a user specified system"),
			Schema: pulumi.String(`{
  "columns": [
    {
      "column": "first_name",
      "description": "First name",
      "mode": "REQUIRED",
      "type": "STRING"
    },
    {
      "column": "last_name",
      "description": "Last name",
      "mode": "REQUIRED",
      "type": "STRING"
    },
    {
      "column": "address",
      "description": "Address",
      "mode": "REPEATED",
      "subcolumns": [
        {
          "column": "city",
          "description": "City",
          "mode": "NULLABLE",
          "type": "STRING"
        },
        {
          "column": "state",
          "description": "State",
          "mode": "NULLABLE",
          "type": "STRING"
        }
      ],
      "type": "RECORD"
    }
  ]
}

`),

		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Entry can be imported using any of these accepted formats:

```sh

$ pulumi import gcp:datacatalog/entry:Entry default {{name}}

```

func GetEntry

func GetEntry(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *EntryState, opts ...pulumi.ResourceOption) (*Entry, error)

GetEntry gets an existing Entry 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 NewEntry

func NewEntry(ctx *pulumi.Context,
	name string, args *EntryArgs, opts ...pulumi.ResourceOption) (*Entry, error)

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

func (*Entry) ElementType

func (*Entry) ElementType() reflect.Type

func (*Entry) ToEntryOutput

func (i *Entry) ToEntryOutput() EntryOutput

func (*Entry) ToEntryOutputWithContext

func (i *Entry) ToEntryOutputWithContext(ctx context.Context) EntryOutput

func (*Entry) ToOutput added in v6.65.1

func (i *Entry) ToOutput(ctx context.Context) pulumix.Output[*Entry]

type EntryArgs

type EntryArgs struct {
	// Entry description, which can consist of several sentences or paragraphs that describe entry contents.
	Description pulumi.StringPtrInput
	// Display information such as title and description. A short name to identify the entry,
	// for example, "Analytics Data - Jan 2011".
	DisplayName pulumi.StringPtrInput
	// The name of the entry group this entry is in.
	EntryGroup pulumi.StringInput
	// The id of the entry to create.
	//
	// ***
	EntryId pulumi.StringInput
	// Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET.
	// Structure is documented below.
	GcsFilesetSpec EntryGcsFilesetSpecPtrInput
	// The resource this metadata entry refers to.
	// For Google Cloud Platform resources, linkedResource is the full name of the resource.
	// For example, the linkedResource for a table resource from BigQuery is:
	// //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
	// Output only when Entry is of type in the EntryType enum. For entries with userSpecifiedType,
	// this field is optional and defaults to an empty string.
	LinkedResource pulumi.StringPtrInput
	// Schema of the entry (e.g. BigQuery, GoogleSQL, Avro schema), as a json string. An entry might not have any schema
	// attached to it. See
	// https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries#schema
	// for what fields this schema can contain.
	Schema pulumi.StringPtrInput
	// The type of the entry. Only used for Entries with types in the EntryType enum.
	// Currently, only FILESET enum value is allowed. All other entries created through Data Catalog must use userSpecifiedType.
	// Possible values are: `FILESET`.
	Type pulumi.StringPtrInput
	// This field indicates the entry's source system that Data Catalog does not integrate with.
	// userSpecifiedSystem strings must begin with a letter or underscore and can only contain letters, numbers,
	// and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.
	UserSpecifiedSystem pulumi.StringPtrInput
	// Entry type if it does not fit any of the input-allowed values listed in EntryType enum above.
	// When creating an entry, users should check the enum values first, if nothing matches the entry
	// to be created, then provide a custom value, for example "mySpecialType".
	// userSpecifiedType strings must begin with a letter or underscore and can only contain letters,
	// numbers, and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.
	UserSpecifiedType pulumi.StringPtrInput
}

The set of arguments for constructing a Entry resource.

func (EntryArgs) ElementType

func (EntryArgs) ElementType() reflect.Type

type EntryArray

type EntryArray []EntryInput

func (EntryArray) ElementType

func (EntryArray) ElementType() reflect.Type

func (EntryArray) ToEntryArrayOutput

func (i EntryArray) ToEntryArrayOutput() EntryArrayOutput

func (EntryArray) ToEntryArrayOutputWithContext

func (i EntryArray) ToEntryArrayOutputWithContext(ctx context.Context) EntryArrayOutput

func (EntryArray) ToOutput added in v6.65.1

func (i EntryArray) ToOutput(ctx context.Context) pulumix.Output[[]*Entry]

type EntryArrayInput

type EntryArrayInput interface {
	pulumi.Input

	ToEntryArrayOutput() EntryArrayOutput
	ToEntryArrayOutputWithContext(context.Context) EntryArrayOutput
}

EntryArrayInput is an input type that accepts EntryArray and EntryArrayOutput values. You can construct a concrete instance of `EntryArrayInput` via:

EntryArray{ EntryArgs{...} }

type EntryArrayOutput

type EntryArrayOutput struct{ *pulumi.OutputState }

func (EntryArrayOutput) ElementType

func (EntryArrayOutput) ElementType() reflect.Type

func (EntryArrayOutput) Index

func (EntryArrayOutput) ToEntryArrayOutput

func (o EntryArrayOutput) ToEntryArrayOutput() EntryArrayOutput

func (EntryArrayOutput) ToEntryArrayOutputWithContext

func (o EntryArrayOutput) ToEntryArrayOutputWithContext(ctx context.Context) EntryArrayOutput

func (EntryArrayOutput) ToOutput added in v6.65.1

func (o EntryArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Entry]

type EntryBigqueryDateShardedSpec

type EntryBigqueryDateShardedSpec struct {
	// (Output)
	// The Data Catalog resource name of the dataset entry the current table belongs to, for example,
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}
	Dataset *string `pulumi:"dataset"`
	// (Output)
	// Total number of shards.
	ShardCount *int `pulumi:"shardCount"`
	// (Output)
	// The table name prefix of the shards. The name of any given shard is [tablePrefix]YYYYMMDD,
	// for example, for shard MyTable20180101, the tablePrefix is MyTable.
	TablePrefix *string `pulumi:"tablePrefix"`
}

type EntryBigqueryDateShardedSpecArgs

type EntryBigqueryDateShardedSpecArgs struct {
	// (Output)
	// The Data Catalog resource name of the dataset entry the current table belongs to, for example,
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}
	Dataset pulumi.StringPtrInput `pulumi:"dataset"`
	// (Output)
	// Total number of shards.
	ShardCount pulumi.IntPtrInput `pulumi:"shardCount"`
	// (Output)
	// The table name prefix of the shards. The name of any given shard is [tablePrefix]YYYYMMDD,
	// for example, for shard MyTable20180101, the tablePrefix is MyTable.
	TablePrefix pulumi.StringPtrInput `pulumi:"tablePrefix"`
}

func (EntryBigqueryDateShardedSpecArgs) ElementType

func (EntryBigqueryDateShardedSpecArgs) ToEntryBigqueryDateShardedSpecOutput

func (i EntryBigqueryDateShardedSpecArgs) ToEntryBigqueryDateShardedSpecOutput() EntryBigqueryDateShardedSpecOutput

func (EntryBigqueryDateShardedSpecArgs) ToEntryBigqueryDateShardedSpecOutputWithContext

func (i EntryBigqueryDateShardedSpecArgs) ToEntryBigqueryDateShardedSpecOutputWithContext(ctx context.Context) EntryBigqueryDateShardedSpecOutput

func (EntryBigqueryDateShardedSpecArgs) ToOutput added in v6.65.1

type EntryBigqueryDateShardedSpecArray

type EntryBigqueryDateShardedSpecArray []EntryBigqueryDateShardedSpecInput

func (EntryBigqueryDateShardedSpecArray) ElementType

func (EntryBigqueryDateShardedSpecArray) ToEntryBigqueryDateShardedSpecArrayOutput

func (i EntryBigqueryDateShardedSpecArray) ToEntryBigqueryDateShardedSpecArrayOutput() EntryBigqueryDateShardedSpecArrayOutput

func (EntryBigqueryDateShardedSpecArray) ToEntryBigqueryDateShardedSpecArrayOutputWithContext

func (i EntryBigqueryDateShardedSpecArray) ToEntryBigqueryDateShardedSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryDateShardedSpecArrayOutput

func (EntryBigqueryDateShardedSpecArray) ToOutput added in v6.65.1

type EntryBigqueryDateShardedSpecArrayInput

type EntryBigqueryDateShardedSpecArrayInput interface {
	pulumi.Input

	ToEntryBigqueryDateShardedSpecArrayOutput() EntryBigqueryDateShardedSpecArrayOutput
	ToEntryBigqueryDateShardedSpecArrayOutputWithContext(context.Context) EntryBigqueryDateShardedSpecArrayOutput
}

EntryBigqueryDateShardedSpecArrayInput is an input type that accepts EntryBigqueryDateShardedSpecArray and EntryBigqueryDateShardedSpecArrayOutput values. You can construct a concrete instance of `EntryBigqueryDateShardedSpecArrayInput` via:

EntryBigqueryDateShardedSpecArray{ EntryBigqueryDateShardedSpecArgs{...} }

type EntryBigqueryDateShardedSpecArrayOutput

type EntryBigqueryDateShardedSpecArrayOutput struct{ *pulumi.OutputState }

func (EntryBigqueryDateShardedSpecArrayOutput) ElementType

func (EntryBigqueryDateShardedSpecArrayOutput) Index

func (EntryBigqueryDateShardedSpecArrayOutput) ToEntryBigqueryDateShardedSpecArrayOutput

func (o EntryBigqueryDateShardedSpecArrayOutput) ToEntryBigqueryDateShardedSpecArrayOutput() EntryBigqueryDateShardedSpecArrayOutput

func (EntryBigqueryDateShardedSpecArrayOutput) ToEntryBigqueryDateShardedSpecArrayOutputWithContext

func (o EntryBigqueryDateShardedSpecArrayOutput) ToEntryBigqueryDateShardedSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryDateShardedSpecArrayOutput

func (EntryBigqueryDateShardedSpecArrayOutput) ToOutput added in v6.65.1

type EntryBigqueryDateShardedSpecInput

type EntryBigqueryDateShardedSpecInput interface {
	pulumi.Input

	ToEntryBigqueryDateShardedSpecOutput() EntryBigqueryDateShardedSpecOutput
	ToEntryBigqueryDateShardedSpecOutputWithContext(context.Context) EntryBigqueryDateShardedSpecOutput
}

EntryBigqueryDateShardedSpecInput is an input type that accepts EntryBigqueryDateShardedSpecArgs and EntryBigqueryDateShardedSpecOutput values. You can construct a concrete instance of `EntryBigqueryDateShardedSpecInput` via:

EntryBigqueryDateShardedSpecArgs{...}

type EntryBigqueryDateShardedSpecOutput

type EntryBigqueryDateShardedSpecOutput struct{ *pulumi.OutputState }

func (EntryBigqueryDateShardedSpecOutput) Dataset

(Output) The Data Catalog resource name of the dataset entry the current table belongs to, for example, projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}

func (EntryBigqueryDateShardedSpecOutput) ElementType

func (EntryBigqueryDateShardedSpecOutput) ShardCount

(Output) Total number of shards.

func (EntryBigqueryDateShardedSpecOutput) TablePrefix

(Output) The table name prefix of the shards. The name of any given shard is [tablePrefix]YYYYMMDD, for example, for shard MyTable20180101, the tablePrefix is MyTable.

func (EntryBigqueryDateShardedSpecOutput) ToEntryBigqueryDateShardedSpecOutput

func (o EntryBigqueryDateShardedSpecOutput) ToEntryBigqueryDateShardedSpecOutput() EntryBigqueryDateShardedSpecOutput

func (EntryBigqueryDateShardedSpecOutput) ToEntryBigqueryDateShardedSpecOutputWithContext

func (o EntryBigqueryDateShardedSpecOutput) ToEntryBigqueryDateShardedSpecOutputWithContext(ctx context.Context) EntryBigqueryDateShardedSpecOutput

func (EntryBigqueryDateShardedSpecOutput) ToOutput added in v6.65.1

type EntryBigqueryTableSpec

type EntryBigqueryTableSpec struct {
	// (Output)
	// The table source type.
	TableSourceType *string `pulumi:"tableSourceType"`
	// (Output)
	// Spec of a BigQuery table. This field should only be populated if tableSourceType is BIGQUERY_TABLE.
	// Structure is documented below.
	TableSpecs []EntryBigqueryTableSpecTableSpec `pulumi:"tableSpecs"`
	// (Output)
	// Table view specification. This field should only be populated if tableSourceType is BIGQUERY_VIEW.
	// Structure is documented below.
	ViewSpecs []EntryBigqueryTableSpecViewSpec `pulumi:"viewSpecs"`
}

type EntryBigqueryTableSpecArgs

type EntryBigqueryTableSpecArgs struct {
	// (Output)
	// The table source type.
	TableSourceType pulumi.StringPtrInput `pulumi:"tableSourceType"`
	// (Output)
	// Spec of a BigQuery table. This field should only be populated if tableSourceType is BIGQUERY_TABLE.
	// Structure is documented below.
	TableSpecs EntryBigqueryTableSpecTableSpecArrayInput `pulumi:"tableSpecs"`
	// (Output)
	// Table view specification. This field should only be populated if tableSourceType is BIGQUERY_VIEW.
	// Structure is documented below.
	ViewSpecs EntryBigqueryTableSpecViewSpecArrayInput `pulumi:"viewSpecs"`
}

func (EntryBigqueryTableSpecArgs) ElementType

func (EntryBigqueryTableSpecArgs) ElementType() reflect.Type

func (EntryBigqueryTableSpecArgs) ToEntryBigqueryTableSpecOutput

func (i EntryBigqueryTableSpecArgs) ToEntryBigqueryTableSpecOutput() EntryBigqueryTableSpecOutput

func (EntryBigqueryTableSpecArgs) ToEntryBigqueryTableSpecOutputWithContext

func (i EntryBigqueryTableSpecArgs) ToEntryBigqueryTableSpecOutputWithContext(ctx context.Context) EntryBigqueryTableSpecOutput

func (EntryBigqueryTableSpecArgs) ToOutput added in v6.65.1

type EntryBigqueryTableSpecArray

type EntryBigqueryTableSpecArray []EntryBigqueryTableSpecInput

func (EntryBigqueryTableSpecArray) ElementType

func (EntryBigqueryTableSpecArray) ToEntryBigqueryTableSpecArrayOutput

func (i EntryBigqueryTableSpecArray) ToEntryBigqueryTableSpecArrayOutput() EntryBigqueryTableSpecArrayOutput

func (EntryBigqueryTableSpecArray) ToEntryBigqueryTableSpecArrayOutputWithContext

func (i EntryBigqueryTableSpecArray) ToEntryBigqueryTableSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryTableSpecArrayOutput

func (EntryBigqueryTableSpecArray) ToOutput added in v6.65.1

type EntryBigqueryTableSpecArrayInput

type EntryBigqueryTableSpecArrayInput interface {
	pulumi.Input

	ToEntryBigqueryTableSpecArrayOutput() EntryBigqueryTableSpecArrayOutput
	ToEntryBigqueryTableSpecArrayOutputWithContext(context.Context) EntryBigqueryTableSpecArrayOutput
}

EntryBigqueryTableSpecArrayInput is an input type that accepts EntryBigqueryTableSpecArray and EntryBigqueryTableSpecArrayOutput values. You can construct a concrete instance of `EntryBigqueryTableSpecArrayInput` via:

EntryBigqueryTableSpecArray{ EntryBigqueryTableSpecArgs{...} }

type EntryBigqueryTableSpecArrayOutput

type EntryBigqueryTableSpecArrayOutput struct{ *pulumi.OutputState }

func (EntryBigqueryTableSpecArrayOutput) ElementType

func (EntryBigqueryTableSpecArrayOutput) Index

func (EntryBigqueryTableSpecArrayOutput) ToEntryBigqueryTableSpecArrayOutput

func (o EntryBigqueryTableSpecArrayOutput) ToEntryBigqueryTableSpecArrayOutput() EntryBigqueryTableSpecArrayOutput

func (EntryBigqueryTableSpecArrayOutput) ToEntryBigqueryTableSpecArrayOutputWithContext

func (o EntryBigqueryTableSpecArrayOutput) ToEntryBigqueryTableSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryTableSpecArrayOutput

func (EntryBigqueryTableSpecArrayOutput) ToOutput added in v6.65.1

type EntryBigqueryTableSpecInput

type EntryBigqueryTableSpecInput interface {
	pulumi.Input

	ToEntryBigqueryTableSpecOutput() EntryBigqueryTableSpecOutput
	ToEntryBigqueryTableSpecOutputWithContext(context.Context) EntryBigqueryTableSpecOutput
}

EntryBigqueryTableSpecInput is an input type that accepts EntryBigqueryTableSpecArgs and EntryBigqueryTableSpecOutput values. You can construct a concrete instance of `EntryBigqueryTableSpecInput` via:

EntryBigqueryTableSpecArgs{...}

type EntryBigqueryTableSpecOutput

type EntryBigqueryTableSpecOutput struct{ *pulumi.OutputState }

func (EntryBigqueryTableSpecOutput) ElementType

func (EntryBigqueryTableSpecOutput) TableSourceType

(Output) The table source type.

func (EntryBigqueryTableSpecOutput) TableSpecs

(Output) Spec of a BigQuery table. This field should only be populated if tableSourceType is BIGQUERY_TABLE. Structure is documented below.

func (EntryBigqueryTableSpecOutput) ToEntryBigqueryTableSpecOutput

func (o EntryBigqueryTableSpecOutput) ToEntryBigqueryTableSpecOutput() EntryBigqueryTableSpecOutput

func (EntryBigqueryTableSpecOutput) ToEntryBigqueryTableSpecOutputWithContext

func (o EntryBigqueryTableSpecOutput) ToEntryBigqueryTableSpecOutputWithContext(ctx context.Context) EntryBigqueryTableSpecOutput

func (EntryBigqueryTableSpecOutput) ToOutput added in v6.65.1

func (EntryBigqueryTableSpecOutput) ViewSpecs

(Output) Table view specification. This field should only be populated if tableSourceType is BIGQUERY_VIEW. Structure is documented below.

type EntryBigqueryTableSpecTableSpec

type EntryBigqueryTableSpecTableSpec struct {
	// (Output)
	// If the table is a dated shard, i.e., with name pattern [prefix]YYYYMMDD, groupedEntry is the
	// Data Catalog resource name of the date sharded grouped entry, for example,
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}.
	// Otherwise, groupedEntry is empty.
	GroupedEntry *string `pulumi:"groupedEntry"`
}

type EntryBigqueryTableSpecTableSpecArgs

type EntryBigqueryTableSpecTableSpecArgs struct {
	// (Output)
	// If the table is a dated shard, i.e., with name pattern [prefix]YYYYMMDD, groupedEntry is the
	// Data Catalog resource name of the date sharded grouped entry, for example,
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}.
	// Otherwise, groupedEntry is empty.
	GroupedEntry pulumi.StringPtrInput `pulumi:"groupedEntry"`
}

func (EntryBigqueryTableSpecTableSpecArgs) ElementType

func (EntryBigqueryTableSpecTableSpecArgs) ToEntryBigqueryTableSpecTableSpecOutput

func (i EntryBigqueryTableSpecTableSpecArgs) ToEntryBigqueryTableSpecTableSpecOutput() EntryBigqueryTableSpecTableSpecOutput

func (EntryBigqueryTableSpecTableSpecArgs) ToEntryBigqueryTableSpecTableSpecOutputWithContext

func (i EntryBigqueryTableSpecTableSpecArgs) ToEntryBigqueryTableSpecTableSpecOutputWithContext(ctx context.Context) EntryBigqueryTableSpecTableSpecOutput

func (EntryBigqueryTableSpecTableSpecArgs) ToOutput added in v6.65.1

type EntryBigqueryTableSpecTableSpecArray

type EntryBigqueryTableSpecTableSpecArray []EntryBigqueryTableSpecTableSpecInput

func (EntryBigqueryTableSpecTableSpecArray) ElementType

func (EntryBigqueryTableSpecTableSpecArray) ToEntryBigqueryTableSpecTableSpecArrayOutput

func (i EntryBigqueryTableSpecTableSpecArray) ToEntryBigqueryTableSpecTableSpecArrayOutput() EntryBigqueryTableSpecTableSpecArrayOutput

func (EntryBigqueryTableSpecTableSpecArray) ToEntryBigqueryTableSpecTableSpecArrayOutputWithContext

func (i EntryBigqueryTableSpecTableSpecArray) ToEntryBigqueryTableSpecTableSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryTableSpecTableSpecArrayOutput

func (EntryBigqueryTableSpecTableSpecArray) ToOutput added in v6.65.1

type EntryBigqueryTableSpecTableSpecArrayInput

type EntryBigqueryTableSpecTableSpecArrayInput interface {
	pulumi.Input

	ToEntryBigqueryTableSpecTableSpecArrayOutput() EntryBigqueryTableSpecTableSpecArrayOutput
	ToEntryBigqueryTableSpecTableSpecArrayOutputWithContext(context.Context) EntryBigqueryTableSpecTableSpecArrayOutput
}

EntryBigqueryTableSpecTableSpecArrayInput is an input type that accepts EntryBigqueryTableSpecTableSpecArray and EntryBigqueryTableSpecTableSpecArrayOutput values. You can construct a concrete instance of `EntryBigqueryTableSpecTableSpecArrayInput` via:

EntryBigqueryTableSpecTableSpecArray{ EntryBigqueryTableSpecTableSpecArgs{...} }

type EntryBigqueryTableSpecTableSpecArrayOutput

type EntryBigqueryTableSpecTableSpecArrayOutput struct{ *pulumi.OutputState }

func (EntryBigqueryTableSpecTableSpecArrayOutput) ElementType

func (EntryBigqueryTableSpecTableSpecArrayOutput) Index

func (EntryBigqueryTableSpecTableSpecArrayOutput) ToEntryBigqueryTableSpecTableSpecArrayOutput

func (o EntryBigqueryTableSpecTableSpecArrayOutput) ToEntryBigqueryTableSpecTableSpecArrayOutput() EntryBigqueryTableSpecTableSpecArrayOutput

func (EntryBigqueryTableSpecTableSpecArrayOutput) ToEntryBigqueryTableSpecTableSpecArrayOutputWithContext

func (o EntryBigqueryTableSpecTableSpecArrayOutput) ToEntryBigqueryTableSpecTableSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryTableSpecTableSpecArrayOutput

func (EntryBigqueryTableSpecTableSpecArrayOutput) ToOutput added in v6.65.1

type EntryBigqueryTableSpecTableSpecInput

type EntryBigqueryTableSpecTableSpecInput interface {
	pulumi.Input

	ToEntryBigqueryTableSpecTableSpecOutput() EntryBigqueryTableSpecTableSpecOutput
	ToEntryBigqueryTableSpecTableSpecOutputWithContext(context.Context) EntryBigqueryTableSpecTableSpecOutput
}

EntryBigqueryTableSpecTableSpecInput is an input type that accepts EntryBigqueryTableSpecTableSpecArgs and EntryBigqueryTableSpecTableSpecOutput values. You can construct a concrete instance of `EntryBigqueryTableSpecTableSpecInput` via:

EntryBigqueryTableSpecTableSpecArgs{...}

type EntryBigqueryTableSpecTableSpecOutput

type EntryBigqueryTableSpecTableSpecOutput struct{ *pulumi.OutputState }

func (EntryBigqueryTableSpecTableSpecOutput) ElementType

func (EntryBigqueryTableSpecTableSpecOutput) GroupedEntry

(Output) If the table is a dated shard, i.e., with name pattern [prefix]YYYYMMDD, groupedEntry is the Data Catalog resource name of the date sharded grouped entry, for example, projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}. Otherwise, groupedEntry is empty.

func (EntryBigqueryTableSpecTableSpecOutput) ToEntryBigqueryTableSpecTableSpecOutput

func (o EntryBigqueryTableSpecTableSpecOutput) ToEntryBigqueryTableSpecTableSpecOutput() EntryBigqueryTableSpecTableSpecOutput

func (EntryBigqueryTableSpecTableSpecOutput) ToEntryBigqueryTableSpecTableSpecOutputWithContext

func (o EntryBigqueryTableSpecTableSpecOutput) ToEntryBigqueryTableSpecTableSpecOutputWithContext(ctx context.Context) EntryBigqueryTableSpecTableSpecOutput

func (EntryBigqueryTableSpecTableSpecOutput) ToOutput added in v6.65.1

type EntryBigqueryTableSpecViewSpec

type EntryBigqueryTableSpecViewSpec struct {
	// (Output)
	// The query that defines the table view.
	ViewQuery *string `pulumi:"viewQuery"`
}

type EntryBigqueryTableSpecViewSpecArgs

type EntryBigqueryTableSpecViewSpecArgs struct {
	// (Output)
	// The query that defines the table view.
	ViewQuery pulumi.StringPtrInput `pulumi:"viewQuery"`
}

func (EntryBigqueryTableSpecViewSpecArgs) ElementType

func (EntryBigqueryTableSpecViewSpecArgs) ToEntryBigqueryTableSpecViewSpecOutput

func (i EntryBigqueryTableSpecViewSpecArgs) ToEntryBigqueryTableSpecViewSpecOutput() EntryBigqueryTableSpecViewSpecOutput

func (EntryBigqueryTableSpecViewSpecArgs) ToEntryBigqueryTableSpecViewSpecOutputWithContext

func (i EntryBigqueryTableSpecViewSpecArgs) ToEntryBigqueryTableSpecViewSpecOutputWithContext(ctx context.Context) EntryBigqueryTableSpecViewSpecOutput

func (EntryBigqueryTableSpecViewSpecArgs) ToOutput added in v6.65.1

type EntryBigqueryTableSpecViewSpecArray

type EntryBigqueryTableSpecViewSpecArray []EntryBigqueryTableSpecViewSpecInput

func (EntryBigqueryTableSpecViewSpecArray) ElementType

func (EntryBigqueryTableSpecViewSpecArray) ToEntryBigqueryTableSpecViewSpecArrayOutput

func (i EntryBigqueryTableSpecViewSpecArray) ToEntryBigqueryTableSpecViewSpecArrayOutput() EntryBigqueryTableSpecViewSpecArrayOutput

func (EntryBigqueryTableSpecViewSpecArray) ToEntryBigqueryTableSpecViewSpecArrayOutputWithContext

func (i EntryBigqueryTableSpecViewSpecArray) ToEntryBigqueryTableSpecViewSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryTableSpecViewSpecArrayOutput

func (EntryBigqueryTableSpecViewSpecArray) ToOutput added in v6.65.1

type EntryBigqueryTableSpecViewSpecArrayInput

type EntryBigqueryTableSpecViewSpecArrayInput interface {
	pulumi.Input

	ToEntryBigqueryTableSpecViewSpecArrayOutput() EntryBigqueryTableSpecViewSpecArrayOutput
	ToEntryBigqueryTableSpecViewSpecArrayOutputWithContext(context.Context) EntryBigqueryTableSpecViewSpecArrayOutput
}

EntryBigqueryTableSpecViewSpecArrayInput is an input type that accepts EntryBigqueryTableSpecViewSpecArray and EntryBigqueryTableSpecViewSpecArrayOutput values. You can construct a concrete instance of `EntryBigqueryTableSpecViewSpecArrayInput` via:

EntryBigqueryTableSpecViewSpecArray{ EntryBigqueryTableSpecViewSpecArgs{...} }

type EntryBigqueryTableSpecViewSpecArrayOutput

type EntryBigqueryTableSpecViewSpecArrayOutput struct{ *pulumi.OutputState }

func (EntryBigqueryTableSpecViewSpecArrayOutput) ElementType

func (EntryBigqueryTableSpecViewSpecArrayOutput) Index

func (EntryBigqueryTableSpecViewSpecArrayOutput) ToEntryBigqueryTableSpecViewSpecArrayOutput

func (o EntryBigqueryTableSpecViewSpecArrayOutput) ToEntryBigqueryTableSpecViewSpecArrayOutput() EntryBigqueryTableSpecViewSpecArrayOutput

func (EntryBigqueryTableSpecViewSpecArrayOutput) ToEntryBigqueryTableSpecViewSpecArrayOutputWithContext

func (o EntryBigqueryTableSpecViewSpecArrayOutput) ToEntryBigqueryTableSpecViewSpecArrayOutputWithContext(ctx context.Context) EntryBigqueryTableSpecViewSpecArrayOutput

func (EntryBigqueryTableSpecViewSpecArrayOutput) ToOutput added in v6.65.1

type EntryBigqueryTableSpecViewSpecInput

type EntryBigqueryTableSpecViewSpecInput interface {
	pulumi.Input

	ToEntryBigqueryTableSpecViewSpecOutput() EntryBigqueryTableSpecViewSpecOutput
	ToEntryBigqueryTableSpecViewSpecOutputWithContext(context.Context) EntryBigqueryTableSpecViewSpecOutput
}

EntryBigqueryTableSpecViewSpecInput is an input type that accepts EntryBigqueryTableSpecViewSpecArgs and EntryBigqueryTableSpecViewSpecOutput values. You can construct a concrete instance of `EntryBigqueryTableSpecViewSpecInput` via:

EntryBigqueryTableSpecViewSpecArgs{...}

type EntryBigqueryTableSpecViewSpecOutput

type EntryBigqueryTableSpecViewSpecOutput struct{ *pulumi.OutputState }

func (EntryBigqueryTableSpecViewSpecOutput) ElementType

func (EntryBigqueryTableSpecViewSpecOutput) ToEntryBigqueryTableSpecViewSpecOutput

func (o EntryBigqueryTableSpecViewSpecOutput) ToEntryBigqueryTableSpecViewSpecOutput() EntryBigqueryTableSpecViewSpecOutput

func (EntryBigqueryTableSpecViewSpecOutput) ToEntryBigqueryTableSpecViewSpecOutputWithContext

func (o EntryBigqueryTableSpecViewSpecOutput) ToEntryBigqueryTableSpecViewSpecOutputWithContext(ctx context.Context) EntryBigqueryTableSpecViewSpecOutput

func (EntryBigqueryTableSpecViewSpecOutput) ToOutput added in v6.65.1

func (EntryBigqueryTableSpecViewSpecOutput) ViewQuery

(Output) The query that defines the table view.

type EntryGcsFilesetSpec

type EntryGcsFilesetSpec struct {
	// Patterns to identify a set of files in Google Cloud Storage.
	// See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)
	// for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:
	// * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.
	// * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.
	// * gs://bucket_name/file*: matches files prefixed by file in bucketName
	// * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucketName
	// * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucketName
	// * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucketName
	// * gs://bucket_name/a/*/b: matches all files in bucketName that match a/*/b pattern, such as a/c/b, a/d/b
	// * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt
	FilePatterns []string `pulumi:"filePatterns"`
	// (Output)
	// Sample files contained in this fileset, not all files contained in this fileset are represented here.
	// Structure is documented below.
	//
	// <a name="nestedSampleGcsFileSpecs"></a>The `sampleGcsFileSpecs` block contains:
	SampleGcsFileSpecs []EntryGcsFilesetSpecSampleGcsFileSpec `pulumi:"sampleGcsFileSpecs"`
}

type EntryGcsFilesetSpecArgs

type EntryGcsFilesetSpecArgs struct {
	// Patterns to identify a set of files in Google Cloud Storage.
	// See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)
	// for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:
	// * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.
	// * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.
	// * gs://bucket_name/file*: matches files prefixed by file in bucketName
	// * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucketName
	// * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucketName
	// * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucketName
	// * gs://bucket_name/a/*/b: matches all files in bucketName that match a/*/b pattern, such as a/c/b, a/d/b
	// * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt
	FilePatterns pulumi.StringArrayInput `pulumi:"filePatterns"`
	// (Output)
	// Sample files contained in this fileset, not all files contained in this fileset are represented here.
	// Structure is documented below.
	//
	// <a name="nestedSampleGcsFileSpecs"></a>The `sampleGcsFileSpecs` block contains:
	SampleGcsFileSpecs EntryGcsFilesetSpecSampleGcsFileSpecArrayInput `pulumi:"sampleGcsFileSpecs"`
}

func (EntryGcsFilesetSpecArgs) ElementType

func (EntryGcsFilesetSpecArgs) ElementType() reflect.Type

func (EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecOutput

func (i EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecOutput() EntryGcsFilesetSpecOutput

func (EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecOutputWithContext

func (i EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecOutputWithContext(ctx context.Context) EntryGcsFilesetSpecOutput

func (EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecPtrOutput

func (i EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecPtrOutput() EntryGcsFilesetSpecPtrOutput

func (EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecPtrOutputWithContext

func (i EntryGcsFilesetSpecArgs) ToEntryGcsFilesetSpecPtrOutputWithContext(ctx context.Context) EntryGcsFilesetSpecPtrOutput

func (EntryGcsFilesetSpecArgs) ToOutput added in v6.65.1

type EntryGcsFilesetSpecInput

type EntryGcsFilesetSpecInput interface {
	pulumi.Input

	ToEntryGcsFilesetSpecOutput() EntryGcsFilesetSpecOutput
	ToEntryGcsFilesetSpecOutputWithContext(context.Context) EntryGcsFilesetSpecOutput
}

EntryGcsFilesetSpecInput is an input type that accepts EntryGcsFilesetSpecArgs and EntryGcsFilesetSpecOutput values. You can construct a concrete instance of `EntryGcsFilesetSpecInput` via:

EntryGcsFilesetSpecArgs{...}

type EntryGcsFilesetSpecOutput

type EntryGcsFilesetSpecOutput struct{ *pulumi.OutputState }

func (EntryGcsFilesetSpecOutput) ElementType

func (EntryGcsFilesetSpecOutput) ElementType() reflect.Type

func (EntryGcsFilesetSpecOutput) FilePatterns

Patterns to identify a set of files in Google Cloud Storage. See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames) for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns: * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory. * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories. * gs://bucket_name/file*: matches files prefixed by file in bucketName * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucketName * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucketName * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucketName * gs://bucket_name/a/*/b: matches all files in bucketName that match a/*/b pattern, such as a/c/b, a/d/b * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt

func (EntryGcsFilesetSpecOutput) SampleGcsFileSpecs

(Output) Sample files contained in this fileset, not all files contained in this fileset are represented here. Structure is documented below.

<a name="nestedSampleGcsFileSpecs"></a>The `sampleGcsFileSpecs` block contains:

func (EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecOutput

func (o EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecOutput() EntryGcsFilesetSpecOutput

func (EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecOutputWithContext

func (o EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecOutputWithContext(ctx context.Context) EntryGcsFilesetSpecOutput

func (EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecPtrOutput

func (o EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecPtrOutput() EntryGcsFilesetSpecPtrOutput

func (EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecPtrOutputWithContext

func (o EntryGcsFilesetSpecOutput) ToEntryGcsFilesetSpecPtrOutputWithContext(ctx context.Context) EntryGcsFilesetSpecPtrOutput

func (EntryGcsFilesetSpecOutput) ToOutput added in v6.65.1

type EntryGcsFilesetSpecPtrInput

type EntryGcsFilesetSpecPtrInput interface {
	pulumi.Input

	ToEntryGcsFilesetSpecPtrOutput() EntryGcsFilesetSpecPtrOutput
	ToEntryGcsFilesetSpecPtrOutputWithContext(context.Context) EntryGcsFilesetSpecPtrOutput
}

EntryGcsFilesetSpecPtrInput is an input type that accepts EntryGcsFilesetSpecArgs, EntryGcsFilesetSpecPtr and EntryGcsFilesetSpecPtrOutput values. You can construct a concrete instance of `EntryGcsFilesetSpecPtrInput` via:

        EntryGcsFilesetSpecArgs{...}

or:

        nil

type EntryGcsFilesetSpecPtrOutput

type EntryGcsFilesetSpecPtrOutput struct{ *pulumi.OutputState }

func (EntryGcsFilesetSpecPtrOutput) Elem

func (EntryGcsFilesetSpecPtrOutput) ElementType

func (EntryGcsFilesetSpecPtrOutput) FilePatterns

Patterns to identify a set of files in Google Cloud Storage. See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames) for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns: * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory. * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories. * gs://bucket_name/file*: matches files prefixed by file in bucketName * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucketName * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucketName * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucketName * gs://bucket_name/a/*/b: matches all files in bucketName that match a/*/b pattern, such as a/c/b, a/d/b * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt

func (EntryGcsFilesetSpecPtrOutput) SampleGcsFileSpecs

(Output) Sample files contained in this fileset, not all files contained in this fileset are represented here. Structure is documented below.

<a name="nestedSampleGcsFileSpecs"></a>The `sampleGcsFileSpecs` block contains:

func (EntryGcsFilesetSpecPtrOutput) ToEntryGcsFilesetSpecPtrOutput

func (o EntryGcsFilesetSpecPtrOutput) ToEntryGcsFilesetSpecPtrOutput() EntryGcsFilesetSpecPtrOutput

func (EntryGcsFilesetSpecPtrOutput) ToEntryGcsFilesetSpecPtrOutputWithContext

func (o EntryGcsFilesetSpecPtrOutput) ToEntryGcsFilesetSpecPtrOutputWithContext(ctx context.Context) EntryGcsFilesetSpecPtrOutput

func (EntryGcsFilesetSpecPtrOutput) ToOutput added in v6.65.1

type EntryGcsFilesetSpecSampleGcsFileSpec

type EntryGcsFilesetSpecSampleGcsFileSpec struct {
	// (Output)
	// The full file path
	FilePath *string `pulumi:"filePath"`
	// (Output)
	// The size of the file, in bytes.
	SizeBytes *int `pulumi:"sizeBytes"`
}

type EntryGcsFilesetSpecSampleGcsFileSpecArgs

type EntryGcsFilesetSpecSampleGcsFileSpecArgs struct {
	// (Output)
	// The full file path
	FilePath pulumi.StringPtrInput `pulumi:"filePath"`
	// (Output)
	// The size of the file, in bytes.
	SizeBytes pulumi.IntPtrInput `pulumi:"sizeBytes"`
}

func (EntryGcsFilesetSpecSampleGcsFileSpecArgs) ElementType

func (EntryGcsFilesetSpecSampleGcsFileSpecArgs) ToEntryGcsFilesetSpecSampleGcsFileSpecOutput

func (i EntryGcsFilesetSpecSampleGcsFileSpecArgs) ToEntryGcsFilesetSpecSampleGcsFileSpecOutput() EntryGcsFilesetSpecSampleGcsFileSpecOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecArgs) ToEntryGcsFilesetSpecSampleGcsFileSpecOutputWithContext

func (i EntryGcsFilesetSpecSampleGcsFileSpecArgs) ToEntryGcsFilesetSpecSampleGcsFileSpecOutputWithContext(ctx context.Context) EntryGcsFilesetSpecSampleGcsFileSpecOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecArgs) ToOutput added in v6.65.1

type EntryGcsFilesetSpecSampleGcsFileSpecArray

type EntryGcsFilesetSpecSampleGcsFileSpecArray []EntryGcsFilesetSpecSampleGcsFileSpecInput

func (EntryGcsFilesetSpecSampleGcsFileSpecArray) ElementType

func (EntryGcsFilesetSpecSampleGcsFileSpecArray) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutput

func (i EntryGcsFilesetSpecSampleGcsFileSpecArray) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutput() EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecArray) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutputWithContext

func (i EntryGcsFilesetSpecSampleGcsFileSpecArray) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutputWithContext(ctx context.Context) EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecArray) ToOutput added in v6.65.1

type EntryGcsFilesetSpecSampleGcsFileSpecArrayInput

type EntryGcsFilesetSpecSampleGcsFileSpecArrayInput interface {
	pulumi.Input

	ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutput() EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput
	ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutputWithContext(context.Context) EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput
}

EntryGcsFilesetSpecSampleGcsFileSpecArrayInput is an input type that accepts EntryGcsFilesetSpecSampleGcsFileSpecArray and EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput values. You can construct a concrete instance of `EntryGcsFilesetSpecSampleGcsFileSpecArrayInput` via:

EntryGcsFilesetSpecSampleGcsFileSpecArray{ EntryGcsFilesetSpecSampleGcsFileSpecArgs{...} }

type EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput

type EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput struct{ *pulumi.OutputState }

func (EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput) ElementType

func (EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput) Index

func (EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutput

func (o EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutput() EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutputWithContext

func (o EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecArrayOutputWithContext(ctx context.Context) EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecArrayOutput) ToOutput added in v6.65.1

type EntryGcsFilesetSpecSampleGcsFileSpecInput

type EntryGcsFilesetSpecSampleGcsFileSpecInput interface {
	pulumi.Input

	ToEntryGcsFilesetSpecSampleGcsFileSpecOutput() EntryGcsFilesetSpecSampleGcsFileSpecOutput
	ToEntryGcsFilesetSpecSampleGcsFileSpecOutputWithContext(context.Context) EntryGcsFilesetSpecSampleGcsFileSpecOutput
}

EntryGcsFilesetSpecSampleGcsFileSpecInput is an input type that accepts EntryGcsFilesetSpecSampleGcsFileSpecArgs and EntryGcsFilesetSpecSampleGcsFileSpecOutput values. You can construct a concrete instance of `EntryGcsFilesetSpecSampleGcsFileSpecInput` via:

EntryGcsFilesetSpecSampleGcsFileSpecArgs{...}

type EntryGcsFilesetSpecSampleGcsFileSpecOutput

type EntryGcsFilesetSpecSampleGcsFileSpecOutput struct{ *pulumi.OutputState }

func (EntryGcsFilesetSpecSampleGcsFileSpecOutput) ElementType

func (EntryGcsFilesetSpecSampleGcsFileSpecOutput) FilePath

(Output) The full file path

func (EntryGcsFilesetSpecSampleGcsFileSpecOutput) SizeBytes

(Output) The size of the file, in bytes.

func (EntryGcsFilesetSpecSampleGcsFileSpecOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecOutput

func (o EntryGcsFilesetSpecSampleGcsFileSpecOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecOutput() EntryGcsFilesetSpecSampleGcsFileSpecOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecOutputWithContext

func (o EntryGcsFilesetSpecSampleGcsFileSpecOutput) ToEntryGcsFilesetSpecSampleGcsFileSpecOutputWithContext(ctx context.Context) EntryGcsFilesetSpecSampleGcsFileSpecOutput

func (EntryGcsFilesetSpecSampleGcsFileSpecOutput) ToOutput added in v6.65.1

type EntryGroup

type EntryGroup struct {
	pulumi.CustomResourceState

	// Entry group description, which can consist of several sentences or paragraphs that describe entry group contents.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// A short name to identify the entry group, for example, "analytics data - jan 2011".
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// The id of the entry group to create. The id must begin with a letter or underscore,
	// contain only English letters, numbers and underscores, and be at most 64 characters.
	//
	// ***
	EntryGroupId pulumi.StringOutput `pulumi:"entryGroupId"`
	// The resource name of the entry group in URL format. Example: projects/{project}/locations/{location}/entryGroups/{entryGroupId}
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// EntryGroup location region.
	Region pulumi.StringOutput `pulumi:"region"`
}

An EntryGroup resource represents a logical grouping of zero or more Data Catalog Entry resources.

To get more information about EntryGroup, see:

* [API documentation](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups) * How-to Guides

## Example Usage ### Data Catalog Entry Group Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroup(ctx, "basicEntryGroup", &datacatalog.EntryGroupArgs{
			EntryGroupId: pulumi.String("my_group"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Data Catalog Entry Group Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroup(ctx, "basicEntryGroup", &datacatalog.EntryGroupArgs{
			Description:  pulumi.String("example entry group"),
			DisplayName:  pulumi.String("entry group"),
			EntryGroupId: pulumi.String("my_group"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

EntryGroup can be imported using any of these accepted formats:

```sh

$ pulumi import gcp:datacatalog/entryGroup:EntryGroup default {{name}}

```

func GetEntryGroup

func GetEntryGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *EntryGroupState, opts ...pulumi.ResourceOption) (*EntryGroup, error)

GetEntryGroup gets an existing EntryGroup 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 NewEntryGroup

func NewEntryGroup(ctx *pulumi.Context,
	name string, args *EntryGroupArgs, opts ...pulumi.ResourceOption) (*EntryGroup, error)

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

func (*EntryGroup) ElementType

func (*EntryGroup) ElementType() reflect.Type

func (*EntryGroup) ToEntryGroupOutput

func (i *EntryGroup) ToEntryGroupOutput() EntryGroupOutput

func (*EntryGroup) ToEntryGroupOutputWithContext

func (i *EntryGroup) ToEntryGroupOutputWithContext(ctx context.Context) EntryGroupOutput

func (*EntryGroup) ToOutput added in v6.65.1

func (i *EntryGroup) ToOutput(ctx context.Context) pulumix.Output[*EntryGroup]

type EntryGroupArgs

type EntryGroupArgs struct {
	// Entry group description, which can consist of several sentences or paragraphs that describe entry group contents.
	Description pulumi.StringPtrInput
	// A short name to identify the entry group, for example, "analytics data - jan 2011".
	DisplayName pulumi.StringPtrInput
	// The id of the entry group to create. The id must begin with a letter or underscore,
	// contain only English letters, numbers and underscores, and be at most 64 characters.
	//
	// ***
	EntryGroupId pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// EntryGroup location region.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a EntryGroup resource.

func (EntryGroupArgs) ElementType

func (EntryGroupArgs) ElementType() reflect.Type

type EntryGroupArray

type EntryGroupArray []EntryGroupInput

func (EntryGroupArray) ElementType

func (EntryGroupArray) ElementType() reflect.Type

func (EntryGroupArray) ToEntryGroupArrayOutput

func (i EntryGroupArray) ToEntryGroupArrayOutput() EntryGroupArrayOutput

func (EntryGroupArray) ToEntryGroupArrayOutputWithContext

func (i EntryGroupArray) ToEntryGroupArrayOutputWithContext(ctx context.Context) EntryGroupArrayOutput

func (EntryGroupArray) ToOutput added in v6.65.1

type EntryGroupArrayInput

type EntryGroupArrayInput interface {
	pulumi.Input

	ToEntryGroupArrayOutput() EntryGroupArrayOutput
	ToEntryGroupArrayOutputWithContext(context.Context) EntryGroupArrayOutput
}

EntryGroupArrayInput is an input type that accepts EntryGroupArray and EntryGroupArrayOutput values. You can construct a concrete instance of `EntryGroupArrayInput` via:

EntryGroupArray{ EntryGroupArgs{...} }

type EntryGroupArrayOutput

type EntryGroupArrayOutput struct{ *pulumi.OutputState }

func (EntryGroupArrayOutput) ElementType

func (EntryGroupArrayOutput) ElementType() reflect.Type

func (EntryGroupArrayOutput) Index

func (EntryGroupArrayOutput) ToEntryGroupArrayOutput

func (o EntryGroupArrayOutput) ToEntryGroupArrayOutput() EntryGroupArrayOutput

func (EntryGroupArrayOutput) ToEntryGroupArrayOutputWithContext

func (o EntryGroupArrayOutput) ToEntryGroupArrayOutputWithContext(ctx context.Context) EntryGroupArrayOutput

func (EntryGroupArrayOutput) ToOutput added in v6.65.1

type EntryGroupIamBinding

type EntryGroupIamBinding struct {
	pulumi.CustomResourceState

	Condition EntryGroupIamBindingConditionPtrOutput `pulumi:"condition"`
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringOutput `pulumi:"entryGroup"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `datacatalog.EntryGroupIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Data catalog EntryGroup. Each of these resources serves a different use case:

* `datacatalog.EntryGroupIamPolicy`: Authoritative. Sets the IAM policy for the entrygroup and replaces any existing policy already attached. * `datacatalog.EntryGroupIamBinding`: 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 entrygroup are preserved. * `datacatalog.EntryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the entrygroup are preserved.

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

* `datacatalog.EntryGroupIamPolicy`: Retrieves the IAM policy for the entrygroup

> **Note:** `datacatalog.EntryGroupIamPolicy` **cannot** be used in conjunction with `datacatalog.EntryGroupIamBinding` and `datacatalog.EntryGroupIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_entry\_group\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewEntryGroupIamPolicy(ctx, "policy", &datacatalog.EntryGroupIamPolicyArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_entry\_group\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroupIamBinding(ctx, "binding", &datacatalog.EntryGroupIamBindingArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.Name),
			Role:       pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_entry\_group\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroupIamMember(ctx, "member", &datacatalog.EntryGroupIamMemberArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.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* projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} * {{project}}/{{region}}/{{entry_group}} * {{region}}/{{entry_group}} * {{entry_group}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog entrygroup IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/entryGroupIamBinding:EntryGroupIamBinding editor "projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/entryGroupIamBinding:EntryGroupIamBinding editor "projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/entryGroupIamBinding:EntryGroupIamBinding editor projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}}

```

-> **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 GetEntryGroupIamBinding

func GetEntryGroupIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *EntryGroupIamBindingState, opts ...pulumi.ResourceOption) (*EntryGroupIamBinding, error)

GetEntryGroupIamBinding gets an existing EntryGroupIamBinding 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 NewEntryGroupIamBinding

func NewEntryGroupIamBinding(ctx *pulumi.Context,
	name string, args *EntryGroupIamBindingArgs, opts ...pulumi.ResourceOption) (*EntryGroupIamBinding, error)

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

func (*EntryGroupIamBinding) ElementType

func (*EntryGroupIamBinding) ElementType() reflect.Type

func (*EntryGroupIamBinding) ToEntryGroupIamBindingOutput

func (i *EntryGroupIamBinding) ToEntryGroupIamBindingOutput() EntryGroupIamBindingOutput

func (*EntryGroupIamBinding) ToEntryGroupIamBindingOutputWithContext

func (i *EntryGroupIamBinding) ToEntryGroupIamBindingOutputWithContext(ctx context.Context) EntryGroupIamBindingOutput

func (*EntryGroupIamBinding) ToOutput added in v6.65.1

type EntryGroupIamBindingArgs

type EntryGroupIamBindingArgs struct {
	Condition EntryGroupIamBindingConditionPtrInput
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringInput
	Members    pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.EntryGroupIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a EntryGroupIamBinding resource.

func (EntryGroupIamBindingArgs) ElementType

func (EntryGroupIamBindingArgs) ElementType() reflect.Type

type EntryGroupIamBindingArray

type EntryGroupIamBindingArray []EntryGroupIamBindingInput

func (EntryGroupIamBindingArray) ElementType

func (EntryGroupIamBindingArray) ElementType() reflect.Type

func (EntryGroupIamBindingArray) ToEntryGroupIamBindingArrayOutput

func (i EntryGroupIamBindingArray) ToEntryGroupIamBindingArrayOutput() EntryGroupIamBindingArrayOutput

func (EntryGroupIamBindingArray) ToEntryGroupIamBindingArrayOutputWithContext

func (i EntryGroupIamBindingArray) ToEntryGroupIamBindingArrayOutputWithContext(ctx context.Context) EntryGroupIamBindingArrayOutput

func (EntryGroupIamBindingArray) ToOutput added in v6.65.1

type EntryGroupIamBindingArrayInput

type EntryGroupIamBindingArrayInput interface {
	pulumi.Input

	ToEntryGroupIamBindingArrayOutput() EntryGroupIamBindingArrayOutput
	ToEntryGroupIamBindingArrayOutputWithContext(context.Context) EntryGroupIamBindingArrayOutput
}

EntryGroupIamBindingArrayInput is an input type that accepts EntryGroupIamBindingArray and EntryGroupIamBindingArrayOutput values. You can construct a concrete instance of `EntryGroupIamBindingArrayInput` via:

EntryGroupIamBindingArray{ EntryGroupIamBindingArgs{...} }

type EntryGroupIamBindingArrayOutput

type EntryGroupIamBindingArrayOutput struct{ *pulumi.OutputState }

func (EntryGroupIamBindingArrayOutput) ElementType

func (EntryGroupIamBindingArrayOutput) Index

func (EntryGroupIamBindingArrayOutput) ToEntryGroupIamBindingArrayOutput

func (o EntryGroupIamBindingArrayOutput) ToEntryGroupIamBindingArrayOutput() EntryGroupIamBindingArrayOutput

func (EntryGroupIamBindingArrayOutput) ToEntryGroupIamBindingArrayOutputWithContext

func (o EntryGroupIamBindingArrayOutput) ToEntryGroupIamBindingArrayOutputWithContext(ctx context.Context) EntryGroupIamBindingArrayOutput

func (EntryGroupIamBindingArrayOutput) ToOutput added in v6.65.1

type EntryGroupIamBindingCondition

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

type EntryGroupIamBindingConditionArgs

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

func (EntryGroupIamBindingConditionArgs) ElementType

func (EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionOutput

func (i EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionOutput() EntryGroupIamBindingConditionOutput

func (EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionOutputWithContext

func (i EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionOutputWithContext(ctx context.Context) EntryGroupIamBindingConditionOutput

func (EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionPtrOutput

func (i EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionPtrOutput() EntryGroupIamBindingConditionPtrOutput

func (EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionPtrOutputWithContext

func (i EntryGroupIamBindingConditionArgs) ToEntryGroupIamBindingConditionPtrOutputWithContext(ctx context.Context) EntryGroupIamBindingConditionPtrOutput

func (EntryGroupIamBindingConditionArgs) ToOutput added in v6.65.1

type EntryGroupIamBindingConditionInput

type EntryGroupIamBindingConditionInput interface {
	pulumi.Input

	ToEntryGroupIamBindingConditionOutput() EntryGroupIamBindingConditionOutput
	ToEntryGroupIamBindingConditionOutputWithContext(context.Context) EntryGroupIamBindingConditionOutput
}

EntryGroupIamBindingConditionInput is an input type that accepts EntryGroupIamBindingConditionArgs and EntryGroupIamBindingConditionOutput values. You can construct a concrete instance of `EntryGroupIamBindingConditionInput` via:

EntryGroupIamBindingConditionArgs{...}

type EntryGroupIamBindingConditionOutput

type EntryGroupIamBindingConditionOutput struct{ *pulumi.OutputState }

func (EntryGroupIamBindingConditionOutput) Description

func (EntryGroupIamBindingConditionOutput) ElementType

func (EntryGroupIamBindingConditionOutput) Expression

func (EntryGroupIamBindingConditionOutput) Title

func (EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionOutput

func (o EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionOutput() EntryGroupIamBindingConditionOutput

func (EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionOutputWithContext

func (o EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionOutputWithContext(ctx context.Context) EntryGroupIamBindingConditionOutput

func (EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionPtrOutput

func (o EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionPtrOutput() EntryGroupIamBindingConditionPtrOutput

func (EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionPtrOutputWithContext

func (o EntryGroupIamBindingConditionOutput) ToEntryGroupIamBindingConditionPtrOutputWithContext(ctx context.Context) EntryGroupIamBindingConditionPtrOutput

func (EntryGroupIamBindingConditionOutput) ToOutput added in v6.65.1

type EntryGroupIamBindingConditionPtrInput

type EntryGroupIamBindingConditionPtrInput interface {
	pulumi.Input

	ToEntryGroupIamBindingConditionPtrOutput() EntryGroupIamBindingConditionPtrOutput
	ToEntryGroupIamBindingConditionPtrOutputWithContext(context.Context) EntryGroupIamBindingConditionPtrOutput
}

EntryGroupIamBindingConditionPtrInput is an input type that accepts EntryGroupIamBindingConditionArgs, EntryGroupIamBindingConditionPtr and EntryGroupIamBindingConditionPtrOutput values. You can construct a concrete instance of `EntryGroupIamBindingConditionPtrInput` via:

        EntryGroupIamBindingConditionArgs{...}

or:

        nil

type EntryGroupIamBindingConditionPtrOutput

type EntryGroupIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (EntryGroupIamBindingConditionPtrOutput) Description

func (EntryGroupIamBindingConditionPtrOutput) Elem

func (EntryGroupIamBindingConditionPtrOutput) ElementType

func (EntryGroupIamBindingConditionPtrOutput) Expression

func (EntryGroupIamBindingConditionPtrOutput) Title

func (EntryGroupIamBindingConditionPtrOutput) ToEntryGroupIamBindingConditionPtrOutput

func (o EntryGroupIamBindingConditionPtrOutput) ToEntryGroupIamBindingConditionPtrOutput() EntryGroupIamBindingConditionPtrOutput

func (EntryGroupIamBindingConditionPtrOutput) ToEntryGroupIamBindingConditionPtrOutputWithContext

func (o EntryGroupIamBindingConditionPtrOutput) ToEntryGroupIamBindingConditionPtrOutputWithContext(ctx context.Context) EntryGroupIamBindingConditionPtrOutput

func (EntryGroupIamBindingConditionPtrOutput) ToOutput added in v6.65.1

type EntryGroupIamBindingInput

type EntryGroupIamBindingInput interface {
	pulumi.Input

	ToEntryGroupIamBindingOutput() EntryGroupIamBindingOutput
	ToEntryGroupIamBindingOutputWithContext(ctx context.Context) EntryGroupIamBindingOutput
}

type EntryGroupIamBindingMap

type EntryGroupIamBindingMap map[string]EntryGroupIamBindingInput

func (EntryGroupIamBindingMap) ElementType

func (EntryGroupIamBindingMap) ElementType() reflect.Type

func (EntryGroupIamBindingMap) ToEntryGroupIamBindingMapOutput

func (i EntryGroupIamBindingMap) ToEntryGroupIamBindingMapOutput() EntryGroupIamBindingMapOutput

func (EntryGroupIamBindingMap) ToEntryGroupIamBindingMapOutputWithContext

func (i EntryGroupIamBindingMap) ToEntryGroupIamBindingMapOutputWithContext(ctx context.Context) EntryGroupIamBindingMapOutput

func (EntryGroupIamBindingMap) ToOutput added in v6.65.1

type EntryGroupIamBindingMapInput

type EntryGroupIamBindingMapInput interface {
	pulumi.Input

	ToEntryGroupIamBindingMapOutput() EntryGroupIamBindingMapOutput
	ToEntryGroupIamBindingMapOutputWithContext(context.Context) EntryGroupIamBindingMapOutput
}

EntryGroupIamBindingMapInput is an input type that accepts EntryGroupIamBindingMap and EntryGroupIamBindingMapOutput values. You can construct a concrete instance of `EntryGroupIamBindingMapInput` via:

EntryGroupIamBindingMap{ "key": EntryGroupIamBindingArgs{...} }

type EntryGroupIamBindingMapOutput

type EntryGroupIamBindingMapOutput struct{ *pulumi.OutputState }

func (EntryGroupIamBindingMapOutput) ElementType

func (EntryGroupIamBindingMapOutput) MapIndex

func (EntryGroupIamBindingMapOutput) ToEntryGroupIamBindingMapOutput

func (o EntryGroupIamBindingMapOutput) ToEntryGroupIamBindingMapOutput() EntryGroupIamBindingMapOutput

func (EntryGroupIamBindingMapOutput) ToEntryGroupIamBindingMapOutputWithContext

func (o EntryGroupIamBindingMapOutput) ToEntryGroupIamBindingMapOutputWithContext(ctx context.Context) EntryGroupIamBindingMapOutput

func (EntryGroupIamBindingMapOutput) ToOutput added in v6.65.1

type EntryGroupIamBindingOutput

type EntryGroupIamBindingOutput struct{ *pulumi.OutputState }

func (EntryGroupIamBindingOutput) Condition added in v6.23.0

func (EntryGroupIamBindingOutput) ElementType

func (EntryGroupIamBindingOutput) ElementType() reflect.Type

func (EntryGroupIamBindingOutput) EntryGroup added in v6.23.0

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

func (EntryGroupIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (EntryGroupIamBindingOutput) Members added in v6.23.0

func (EntryGroupIamBindingOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (EntryGroupIamBindingOutput) Region added in v6.23.0

func (EntryGroupIamBindingOutput) Role added in v6.23.0

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

func (EntryGroupIamBindingOutput) ToEntryGroupIamBindingOutput

func (o EntryGroupIamBindingOutput) ToEntryGroupIamBindingOutput() EntryGroupIamBindingOutput

func (EntryGroupIamBindingOutput) ToEntryGroupIamBindingOutputWithContext

func (o EntryGroupIamBindingOutput) ToEntryGroupIamBindingOutputWithContext(ctx context.Context) EntryGroupIamBindingOutput

func (EntryGroupIamBindingOutput) ToOutput added in v6.65.1

type EntryGroupIamBindingState

type EntryGroupIamBindingState struct {
	Condition EntryGroupIamBindingConditionPtrInput
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.EntryGroupIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (EntryGroupIamBindingState) ElementType

func (EntryGroupIamBindingState) ElementType() reflect.Type

type EntryGroupIamMember

type EntryGroupIamMember struct {
	pulumi.CustomResourceState

	Condition EntryGroupIamMemberConditionPtrOutput `pulumi:"condition"`
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringOutput `pulumi:"entryGroup"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `datacatalog.EntryGroupIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Data catalog EntryGroup. Each of these resources serves a different use case:

* `datacatalog.EntryGroupIamPolicy`: Authoritative. Sets the IAM policy for the entrygroup and replaces any existing policy already attached. * `datacatalog.EntryGroupIamBinding`: 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 entrygroup are preserved. * `datacatalog.EntryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the entrygroup are preserved.

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

* `datacatalog.EntryGroupIamPolicy`: Retrieves the IAM policy for the entrygroup

> **Note:** `datacatalog.EntryGroupIamPolicy` **cannot** be used in conjunction with `datacatalog.EntryGroupIamBinding` and `datacatalog.EntryGroupIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_entry\_group\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewEntryGroupIamPolicy(ctx, "policy", &datacatalog.EntryGroupIamPolicyArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_entry\_group\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroupIamBinding(ctx, "binding", &datacatalog.EntryGroupIamBindingArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.Name),
			Role:       pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_entry\_group\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroupIamMember(ctx, "member", &datacatalog.EntryGroupIamMemberArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.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* projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} * {{project}}/{{region}}/{{entry_group}} * {{region}}/{{entry_group}} * {{entry_group}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog entrygroup IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/entryGroupIamMember:EntryGroupIamMember editor "projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/entryGroupIamMember:EntryGroupIamMember editor "projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/entryGroupIamMember:EntryGroupIamMember editor projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}}

```

-> **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 GetEntryGroupIamMember

func GetEntryGroupIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *EntryGroupIamMemberState, opts ...pulumi.ResourceOption) (*EntryGroupIamMember, error)

GetEntryGroupIamMember gets an existing EntryGroupIamMember 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 NewEntryGroupIamMember

func NewEntryGroupIamMember(ctx *pulumi.Context,
	name string, args *EntryGroupIamMemberArgs, opts ...pulumi.ResourceOption) (*EntryGroupIamMember, error)

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

func (*EntryGroupIamMember) ElementType

func (*EntryGroupIamMember) ElementType() reflect.Type

func (*EntryGroupIamMember) ToEntryGroupIamMemberOutput

func (i *EntryGroupIamMember) ToEntryGroupIamMemberOutput() EntryGroupIamMemberOutput

func (*EntryGroupIamMember) ToEntryGroupIamMemberOutputWithContext

func (i *EntryGroupIamMember) ToEntryGroupIamMemberOutputWithContext(ctx context.Context) EntryGroupIamMemberOutput

func (*EntryGroupIamMember) ToOutput added in v6.65.1

type EntryGroupIamMemberArgs

type EntryGroupIamMemberArgs struct {
	Condition EntryGroupIamMemberConditionPtrInput
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringInput
	Member     pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.EntryGroupIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a EntryGroupIamMember resource.

func (EntryGroupIamMemberArgs) ElementType

func (EntryGroupIamMemberArgs) ElementType() reflect.Type

type EntryGroupIamMemberArray

type EntryGroupIamMemberArray []EntryGroupIamMemberInput

func (EntryGroupIamMemberArray) ElementType

func (EntryGroupIamMemberArray) ElementType() reflect.Type

func (EntryGroupIamMemberArray) ToEntryGroupIamMemberArrayOutput

func (i EntryGroupIamMemberArray) ToEntryGroupIamMemberArrayOutput() EntryGroupIamMemberArrayOutput

func (EntryGroupIamMemberArray) ToEntryGroupIamMemberArrayOutputWithContext

func (i EntryGroupIamMemberArray) ToEntryGroupIamMemberArrayOutputWithContext(ctx context.Context) EntryGroupIamMemberArrayOutput

func (EntryGroupIamMemberArray) ToOutput added in v6.65.1

type EntryGroupIamMemberArrayInput

type EntryGroupIamMemberArrayInput interface {
	pulumi.Input

	ToEntryGroupIamMemberArrayOutput() EntryGroupIamMemberArrayOutput
	ToEntryGroupIamMemberArrayOutputWithContext(context.Context) EntryGroupIamMemberArrayOutput
}

EntryGroupIamMemberArrayInput is an input type that accepts EntryGroupIamMemberArray and EntryGroupIamMemberArrayOutput values. You can construct a concrete instance of `EntryGroupIamMemberArrayInput` via:

EntryGroupIamMemberArray{ EntryGroupIamMemberArgs{...} }

type EntryGroupIamMemberArrayOutput

type EntryGroupIamMemberArrayOutput struct{ *pulumi.OutputState }

func (EntryGroupIamMemberArrayOutput) ElementType

func (EntryGroupIamMemberArrayOutput) Index

func (EntryGroupIamMemberArrayOutput) ToEntryGroupIamMemberArrayOutput

func (o EntryGroupIamMemberArrayOutput) ToEntryGroupIamMemberArrayOutput() EntryGroupIamMemberArrayOutput

func (EntryGroupIamMemberArrayOutput) ToEntryGroupIamMemberArrayOutputWithContext

func (o EntryGroupIamMemberArrayOutput) ToEntryGroupIamMemberArrayOutputWithContext(ctx context.Context) EntryGroupIamMemberArrayOutput

func (EntryGroupIamMemberArrayOutput) ToOutput added in v6.65.1

type EntryGroupIamMemberCondition

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

type EntryGroupIamMemberConditionArgs

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

func (EntryGroupIamMemberConditionArgs) ElementType

func (EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionOutput

func (i EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionOutput() EntryGroupIamMemberConditionOutput

func (EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionOutputWithContext

func (i EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionOutputWithContext(ctx context.Context) EntryGroupIamMemberConditionOutput

func (EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionPtrOutput

func (i EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionPtrOutput() EntryGroupIamMemberConditionPtrOutput

func (EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionPtrOutputWithContext

func (i EntryGroupIamMemberConditionArgs) ToEntryGroupIamMemberConditionPtrOutputWithContext(ctx context.Context) EntryGroupIamMemberConditionPtrOutput

func (EntryGroupIamMemberConditionArgs) ToOutput added in v6.65.1

type EntryGroupIamMemberConditionInput

type EntryGroupIamMemberConditionInput interface {
	pulumi.Input

	ToEntryGroupIamMemberConditionOutput() EntryGroupIamMemberConditionOutput
	ToEntryGroupIamMemberConditionOutputWithContext(context.Context) EntryGroupIamMemberConditionOutput
}

EntryGroupIamMemberConditionInput is an input type that accepts EntryGroupIamMemberConditionArgs and EntryGroupIamMemberConditionOutput values. You can construct a concrete instance of `EntryGroupIamMemberConditionInput` via:

EntryGroupIamMemberConditionArgs{...}

type EntryGroupIamMemberConditionOutput

type EntryGroupIamMemberConditionOutput struct{ *pulumi.OutputState }

func (EntryGroupIamMemberConditionOutput) Description

func (EntryGroupIamMemberConditionOutput) ElementType

func (EntryGroupIamMemberConditionOutput) Expression

func (EntryGroupIamMemberConditionOutput) Title

func (EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionOutput

func (o EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionOutput() EntryGroupIamMemberConditionOutput

func (EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionOutputWithContext

func (o EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionOutputWithContext(ctx context.Context) EntryGroupIamMemberConditionOutput

func (EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionPtrOutput

func (o EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionPtrOutput() EntryGroupIamMemberConditionPtrOutput

func (EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionPtrOutputWithContext

func (o EntryGroupIamMemberConditionOutput) ToEntryGroupIamMemberConditionPtrOutputWithContext(ctx context.Context) EntryGroupIamMemberConditionPtrOutput

func (EntryGroupIamMemberConditionOutput) ToOutput added in v6.65.1

type EntryGroupIamMemberConditionPtrInput

type EntryGroupIamMemberConditionPtrInput interface {
	pulumi.Input

	ToEntryGroupIamMemberConditionPtrOutput() EntryGroupIamMemberConditionPtrOutput
	ToEntryGroupIamMemberConditionPtrOutputWithContext(context.Context) EntryGroupIamMemberConditionPtrOutput
}

EntryGroupIamMemberConditionPtrInput is an input type that accepts EntryGroupIamMemberConditionArgs, EntryGroupIamMemberConditionPtr and EntryGroupIamMemberConditionPtrOutput values. You can construct a concrete instance of `EntryGroupIamMemberConditionPtrInput` via:

        EntryGroupIamMemberConditionArgs{...}

or:

        nil

type EntryGroupIamMemberConditionPtrOutput

type EntryGroupIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (EntryGroupIamMemberConditionPtrOutput) Description

func (EntryGroupIamMemberConditionPtrOutput) Elem

func (EntryGroupIamMemberConditionPtrOutput) ElementType

func (EntryGroupIamMemberConditionPtrOutput) Expression

func (EntryGroupIamMemberConditionPtrOutput) Title

func (EntryGroupIamMemberConditionPtrOutput) ToEntryGroupIamMemberConditionPtrOutput

func (o EntryGroupIamMemberConditionPtrOutput) ToEntryGroupIamMemberConditionPtrOutput() EntryGroupIamMemberConditionPtrOutput

func (EntryGroupIamMemberConditionPtrOutput) ToEntryGroupIamMemberConditionPtrOutputWithContext

func (o EntryGroupIamMemberConditionPtrOutput) ToEntryGroupIamMemberConditionPtrOutputWithContext(ctx context.Context) EntryGroupIamMemberConditionPtrOutput

func (EntryGroupIamMemberConditionPtrOutput) ToOutput added in v6.65.1

type EntryGroupIamMemberInput

type EntryGroupIamMemberInput interface {
	pulumi.Input

	ToEntryGroupIamMemberOutput() EntryGroupIamMemberOutput
	ToEntryGroupIamMemberOutputWithContext(ctx context.Context) EntryGroupIamMemberOutput
}

type EntryGroupIamMemberMap

type EntryGroupIamMemberMap map[string]EntryGroupIamMemberInput

func (EntryGroupIamMemberMap) ElementType

func (EntryGroupIamMemberMap) ElementType() reflect.Type

func (EntryGroupIamMemberMap) ToEntryGroupIamMemberMapOutput

func (i EntryGroupIamMemberMap) ToEntryGroupIamMemberMapOutput() EntryGroupIamMemberMapOutput

func (EntryGroupIamMemberMap) ToEntryGroupIamMemberMapOutputWithContext

func (i EntryGroupIamMemberMap) ToEntryGroupIamMemberMapOutputWithContext(ctx context.Context) EntryGroupIamMemberMapOutput

func (EntryGroupIamMemberMap) ToOutput added in v6.65.1

type EntryGroupIamMemberMapInput

type EntryGroupIamMemberMapInput interface {
	pulumi.Input

	ToEntryGroupIamMemberMapOutput() EntryGroupIamMemberMapOutput
	ToEntryGroupIamMemberMapOutputWithContext(context.Context) EntryGroupIamMemberMapOutput
}

EntryGroupIamMemberMapInput is an input type that accepts EntryGroupIamMemberMap and EntryGroupIamMemberMapOutput values. You can construct a concrete instance of `EntryGroupIamMemberMapInput` via:

EntryGroupIamMemberMap{ "key": EntryGroupIamMemberArgs{...} }

type EntryGroupIamMemberMapOutput

type EntryGroupIamMemberMapOutput struct{ *pulumi.OutputState }

func (EntryGroupIamMemberMapOutput) ElementType

func (EntryGroupIamMemberMapOutput) MapIndex

func (EntryGroupIamMemberMapOutput) ToEntryGroupIamMemberMapOutput

func (o EntryGroupIamMemberMapOutput) ToEntryGroupIamMemberMapOutput() EntryGroupIamMemberMapOutput

func (EntryGroupIamMemberMapOutput) ToEntryGroupIamMemberMapOutputWithContext

func (o EntryGroupIamMemberMapOutput) ToEntryGroupIamMemberMapOutputWithContext(ctx context.Context) EntryGroupIamMemberMapOutput

func (EntryGroupIamMemberMapOutput) ToOutput added in v6.65.1

type EntryGroupIamMemberOutput

type EntryGroupIamMemberOutput struct{ *pulumi.OutputState }

func (EntryGroupIamMemberOutput) Condition added in v6.23.0

func (EntryGroupIamMemberOutput) ElementType

func (EntryGroupIamMemberOutput) ElementType() reflect.Type

func (EntryGroupIamMemberOutput) EntryGroup added in v6.23.0

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

func (EntryGroupIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (EntryGroupIamMemberOutput) Member added in v6.23.0

func (EntryGroupIamMemberOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (EntryGroupIamMemberOutput) Region added in v6.23.0

func (EntryGroupIamMemberOutput) Role added in v6.23.0

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

func (EntryGroupIamMemberOutput) ToEntryGroupIamMemberOutput

func (o EntryGroupIamMemberOutput) ToEntryGroupIamMemberOutput() EntryGroupIamMemberOutput

func (EntryGroupIamMemberOutput) ToEntryGroupIamMemberOutputWithContext

func (o EntryGroupIamMemberOutput) ToEntryGroupIamMemberOutputWithContext(ctx context.Context) EntryGroupIamMemberOutput

func (EntryGroupIamMemberOutput) ToOutput added in v6.65.1

type EntryGroupIamMemberState

type EntryGroupIamMemberState struct {
	Condition EntryGroupIamMemberConditionPtrInput
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.EntryGroupIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (EntryGroupIamMemberState) ElementType

func (EntryGroupIamMemberState) ElementType() reflect.Type

type EntryGroupIamPolicy

type EntryGroupIamPolicy struct {
	pulumi.CustomResourceState

	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringOutput `pulumi:"entryGroup"`
	// (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"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
}

Three different resources help you manage your IAM policy for Data catalog EntryGroup. Each of these resources serves a different use case:

* `datacatalog.EntryGroupIamPolicy`: Authoritative. Sets the IAM policy for the entrygroup and replaces any existing policy already attached. * `datacatalog.EntryGroupIamBinding`: 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 entrygroup are preserved. * `datacatalog.EntryGroupIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the entrygroup are preserved.

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

* `datacatalog.EntryGroupIamPolicy`: Retrieves the IAM policy for the entrygroup

> **Note:** `datacatalog.EntryGroupIamPolicy` **cannot** be used in conjunction with `datacatalog.EntryGroupIamBinding` and `datacatalog.EntryGroupIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_entry\_group\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewEntryGroupIamPolicy(ctx, "policy", &datacatalog.EntryGroupIamPolicyArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_entry\_group\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroupIamBinding(ctx, "binding", &datacatalog.EntryGroupIamBindingArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.Name),
			Role:       pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_entry\_group\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewEntryGroupIamMember(ctx, "member", &datacatalog.EntryGroupIamMemberArgs{
			EntryGroup: pulumi.Any(google_data_catalog_entry_group.Basic_entry_group.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* projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} * {{project}}/{{region}}/{{entry_group}} * {{region}}/{{entry_group}} * {{entry_group}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog entrygroup IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/entryGroupIamPolicy:EntryGroupIamPolicy editor "projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/entryGroupIamPolicy:EntryGroupIamPolicy editor "projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/entryGroupIamPolicy:EntryGroupIamPolicy editor projects/{{project}}/locations/{{region}}/entryGroups/{{entry_group}}

```

-> **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 GetEntryGroupIamPolicy

func GetEntryGroupIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *EntryGroupIamPolicyState, opts ...pulumi.ResourceOption) (*EntryGroupIamPolicy, error)

GetEntryGroupIamPolicy gets an existing EntryGroupIamPolicy 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 NewEntryGroupIamPolicy

func NewEntryGroupIamPolicy(ctx *pulumi.Context,
	name string, args *EntryGroupIamPolicyArgs, opts ...pulumi.ResourceOption) (*EntryGroupIamPolicy, error)

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

func (*EntryGroupIamPolicy) ElementType

func (*EntryGroupIamPolicy) ElementType() reflect.Type

func (*EntryGroupIamPolicy) ToEntryGroupIamPolicyOutput

func (i *EntryGroupIamPolicy) ToEntryGroupIamPolicyOutput() EntryGroupIamPolicyOutput

func (*EntryGroupIamPolicy) ToEntryGroupIamPolicyOutputWithContext

func (i *EntryGroupIamPolicy) ToEntryGroupIamPolicyOutputWithContext(ctx context.Context) EntryGroupIamPolicyOutput

func (*EntryGroupIamPolicy) ToOutput added in v6.65.1

type EntryGroupIamPolicyArgs

type EntryGroupIamPolicyArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
}

The set of arguments for constructing a EntryGroupIamPolicy resource.

func (EntryGroupIamPolicyArgs) ElementType

func (EntryGroupIamPolicyArgs) ElementType() reflect.Type

type EntryGroupIamPolicyArray

type EntryGroupIamPolicyArray []EntryGroupIamPolicyInput

func (EntryGroupIamPolicyArray) ElementType

func (EntryGroupIamPolicyArray) ElementType() reflect.Type

func (EntryGroupIamPolicyArray) ToEntryGroupIamPolicyArrayOutput

func (i EntryGroupIamPolicyArray) ToEntryGroupIamPolicyArrayOutput() EntryGroupIamPolicyArrayOutput

func (EntryGroupIamPolicyArray) ToEntryGroupIamPolicyArrayOutputWithContext

func (i EntryGroupIamPolicyArray) ToEntryGroupIamPolicyArrayOutputWithContext(ctx context.Context) EntryGroupIamPolicyArrayOutput

func (EntryGroupIamPolicyArray) ToOutput added in v6.65.1

type EntryGroupIamPolicyArrayInput

type EntryGroupIamPolicyArrayInput interface {
	pulumi.Input

	ToEntryGroupIamPolicyArrayOutput() EntryGroupIamPolicyArrayOutput
	ToEntryGroupIamPolicyArrayOutputWithContext(context.Context) EntryGroupIamPolicyArrayOutput
}

EntryGroupIamPolicyArrayInput is an input type that accepts EntryGroupIamPolicyArray and EntryGroupIamPolicyArrayOutput values. You can construct a concrete instance of `EntryGroupIamPolicyArrayInput` via:

EntryGroupIamPolicyArray{ EntryGroupIamPolicyArgs{...} }

type EntryGroupIamPolicyArrayOutput

type EntryGroupIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (EntryGroupIamPolicyArrayOutput) ElementType

func (EntryGroupIamPolicyArrayOutput) Index

func (EntryGroupIamPolicyArrayOutput) ToEntryGroupIamPolicyArrayOutput

func (o EntryGroupIamPolicyArrayOutput) ToEntryGroupIamPolicyArrayOutput() EntryGroupIamPolicyArrayOutput

func (EntryGroupIamPolicyArrayOutput) ToEntryGroupIamPolicyArrayOutputWithContext

func (o EntryGroupIamPolicyArrayOutput) ToEntryGroupIamPolicyArrayOutputWithContext(ctx context.Context) EntryGroupIamPolicyArrayOutput

func (EntryGroupIamPolicyArrayOutput) ToOutput added in v6.65.1

type EntryGroupIamPolicyInput

type EntryGroupIamPolicyInput interface {
	pulumi.Input

	ToEntryGroupIamPolicyOutput() EntryGroupIamPolicyOutput
	ToEntryGroupIamPolicyOutputWithContext(ctx context.Context) EntryGroupIamPolicyOutput
}

type EntryGroupIamPolicyMap

type EntryGroupIamPolicyMap map[string]EntryGroupIamPolicyInput

func (EntryGroupIamPolicyMap) ElementType

func (EntryGroupIamPolicyMap) ElementType() reflect.Type

func (EntryGroupIamPolicyMap) ToEntryGroupIamPolicyMapOutput

func (i EntryGroupIamPolicyMap) ToEntryGroupIamPolicyMapOutput() EntryGroupIamPolicyMapOutput

func (EntryGroupIamPolicyMap) ToEntryGroupIamPolicyMapOutputWithContext

func (i EntryGroupIamPolicyMap) ToEntryGroupIamPolicyMapOutputWithContext(ctx context.Context) EntryGroupIamPolicyMapOutput

func (EntryGroupIamPolicyMap) ToOutput added in v6.65.1

type EntryGroupIamPolicyMapInput

type EntryGroupIamPolicyMapInput interface {
	pulumi.Input

	ToEntryGroupIamPolicyMapOutput() EntryGroupIamPolicyMapOutput
	ToEntryGroupIamPolicyMapOutputWithContext(context.Context) EntryGroupIamPolicyMapOutput
}

EntryGroupIamPolicyMapInput is an input type that accepts EntryGroupIamPolicyMap and EntryGroupIamPolicyMapOutput values. You can construct a concrete instance of `EntryGroupIamPolicyMapInput` via:

EntryGroupIamPolicyMap{ "key": EntryGroupIamPolicyArgs{...} }

type EntryGroupIamPolicyMapOutput

type EntryGroupIamPolicyMapOutput struct{ *pulumi.OutputState }

func (EntryGroupIamPolicyMapOutput) ElementType

func (EntryGroupIamPolicyMapOutput) MapIndex

func (EntryGroupIamPolicyMapOutput) ToEntryGroupIamPolicyMapOutput

func (o EntryGroupIamPolicyMapOutput) ToEntryGroupIamPolicyMapOutput() EntryGroupIamPolicyMapOutput

func (EntryGroupIamPolicyMapOutput) ToEntryGroupIamPolicyMapOutputWithContext

func (o EntryGroupIamPolicyMapOutput) ToEntryGroupIamPolicyMapOutputWithContext(ctx context.Context) EntryGroupIamPolicyMapOutput

func (EntryGroupIamPolicyMapOutput) ToOutput added in v6.65.1

type EntryGroupIamPolicyOutput

type EntryGroupIamPolicyOutput struct{ *pulumi.OutputState }

func (EntryGroupIamPolicyOutput) ElementType

func (EntryGroupIamPolicyOutput) ElementType() reflect.Type

func (EntryGroupIamPolicyOutput) EntryGroup added in v6.23.0

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

func (EntryGroupIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (EntryGroupIamPolicyOutput) PolicyData added in v6.23.0

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

func (EntryGroupIamPolicyOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (EntryGroupIamPolicyOutput) Region added in v6.23.0

func (EntryGroupIamPolicyOutput) ToEntryGroupIamPolicyOutput

func (o EntryGroupIamPolicyOutput) ToEntryGroupIamPolicyOutput() EntryGroupIamPolicyOutput

func (EntryGroupIamPolicyOutput) ToEntryGroupIamPolicyOutputWithContext

func (o EntryGroupIamPolicyOutput) ToEntryGroupIamPolicyOutputWithContext(ctx context.Context) EntryGroupIamPolicyOutput

func (EntryGroupIamPolicyOutput) ToOutput added in v6.65.1

type EntryGroupIamPolicyState

type EntryGroupIamPolicyState struct {
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
}

func (EntryGroupIamPolicyState) ElementType

func (EntryGroupIamPolicyState) ElementType() reflect.Type

type EntryGroupInput

type EntryGroupInput interface {
	pulumi.Input

	ToEntryGroupOutput() EntryGroupOutput
	ToEntryGroupOutputWithContext(ctx context.Context) EntryGroupOutput
}

type EntryGroupMap

type EntryGroupMap map[string]EntryGroupInput

func (EntryGroupMap) ElementType

func (EntryGroupMap) ElementType() reflect.Type

func (EntryGroupMap) ToEntryGroupMapOutput

func (i EntryGroupMap) ToEntryGroupMapOutput() EntryGroupMapOutput

func (EntryGroupMap) ToEntryGroupMapOutputWithContext

func (i EntryGroupMap) ToEntryGroupMapOutputWithContext(ctx context.Context) EntryGroupMapOutput

func (EntryGroupMap) ToOutput added in v6.65.1

type EntryGroupMapInput

type EntryGroupMapInput interface {
	pulumi.Input

	ToEntryGroupMapOutput() EntryGroupMapOutput
	ToEntryGroupMapOutputWithContext(context.Context) EntryGroupMapOutput
}

EntryGroupMapInput is an input type that accepts EntryGroupMap and EntryGroupMapOutput values. You can construct a concrete instance of `EntryGroupMapInput` via:

EntryGroupMap{ "key": EntryGroupArgs{...} }

type EntryGroupMapOutput

type EntryGroupMapOutput struct{ *pulumi.OutputState }

func (EntryGroupMapOutput) ElementType

func (EntryGroupMapOutput) ElementType() reflect.Type

func (EntryGroupMapOutput) MapIndex

func (EntryGroupMapOutput) ToEntryGroupMapOutput

func (o EntryGroupMapOutput) ToEntryGroupMapOutput() EntryGroupMapOutput

func (EntryGroupMapOutput) ToEntryGroupMapOutputWithContext

func (o EntryGroupMapOutput) ToEntryGroupMapOutputWithContext(ctx context.Context) EntryGroupMapOutput

func (EntryGroupMapOutput) ToOutput added in v6.65.1

type EntryGroupOutput

type EntryGroupOutput struct{ *pulumi.OutputState }

func (EntryGroupOutput) Description added in v6.23.0

func (o EntryGroupOutput) Description() pulumi.StringPtrOutput

Entry group description, which can consist of several sentences or paragraphs that describe entry group contents.

func (EntryGroupOutput) DisplayName added in v6.23.0

func (o EntryGroupOutput) DisplayName() pulumi.StringPtrOutput

A short name to identify the entry group, for example, "analytics data - jan 2011".

func (EntryGroupOutput) ElementType

func (EntryGroupOutput) ElementType() reflect.Type

func (EntryGroupOutput) EntryGroupId added in v6.23.0

func (o EntryGroupOutput) EntryGroupId() pulumi.StringOutput

The id of the entry group to create. The id must begin with a letter or underscore, contain only English letters, numbers and underscores, and be at most 64 characters.

***

func (EntryGroupOutput) Name added in v6.23.0

The resource name of the entry group in URL format. Example: projects/{project}/locations/{location}/entryGroups/{entryGroupId}

func (EntryGroupOutput) Project added in v6.23.0

func (o EntryGroupOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (EntryGroupOutput) Region added in v6.23.0

EntryGroup location region.

func (EntryGroupOutput) ToEntryGroupOutput

func (o EntryGroupOutput) ToEntryGroupOutput() EntryGroupOutput

func (EntryGroupOutput) ToEntryGroupOutputWithContext

func (o EntryGroupOutput) ToEntryGroupOutputWithContext(ctx context.Context) EntryGroupOutput

func (EntryGroupOutput) ToOutput added in v6.65.1

type EntryGroupState

type EntryGroupState struct {
	// Entry group description, which can consist of several sentences or paragraphs that describe entry group contents.
	Description pulumi.StringPtrInput
	// A short name to identify the entry group, for example, "analytics data - jan 2011".
	DisplayName pulumi.StringPtrInput
	// The id of the entry group to create. The id must begin with a letter or underscore,
	// contain only English letters, numbers and underscores, and be at most 64 characters.
	//
	// ***
	EntryGroupId pulumi.StringPtrInput
	// The resource name of the entry group in URL format. Example: projects/{project}/locations/{location}/entryGroups/{entryGroupId}
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// EntryGroup location region.
	Region pulumi.StringPtrInput
}

func (EntryGroupState) ElementType

func (EntryGroupState) ElementType() reflect.Type

type EntryInput

type EntryInput interface {
	pulumi.Input

	ToEntryOutput() EntryOutput
	ToEntryOutputWithContext(ctx context.Context) EntryOutput
}

type EntryMap

type EntryMap map[string]EntryInput

func (EntryMap) ElementType

func (EntryMap) ElementType() reflect.Type

func (EntryMap) ToEntryMapOutput

func (i EntryMap) ToEntryMapOutput() EntryMapOutput

func (EntryMap) ToEntryMapOutputWithContext

func (i EntryMap) ToEntryMapOutputWithContext(ctx context.Context) EntryMapOutput

func (EntryMap) ToOutput added in v6.65.1

func (i EntryMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Entry]

type EntryMapInput

type EntryMapInput interface {
	pulumi.Input

	ToEntryMapOutput() EntryMapOutput
	ToEntryMapOutputWithContext(context.Context) EntryMapOutput
}

EntryMapInput is an input type that accepts EntryMap and EntryMapOutput values. You can construct a concrete instance of `EntryMapInput` via:

EntryMap{ "key": EntryArgs{...} }

type EntryMapOutput

type EntryMapOutput struct{ *pulumi.OutputState }

func (EntryMapOutput) ElementType

func (EntryMapOutput) ElementType() reflect.Type

func (EntryMapOutput) MapIndex

func (EntryMapOutput) ToEntryMapOutput

func (o EntryMapOutput) ToEntryMapOutput() EntryMapOutput

func (EntryMapOutput) ToEntryMapOutputWithContext

func (o EntryMapOutput) ToEntryMapOutputWithContext(ctx context.Context) EntryMapOutput

func (EntryMapOutput) ToOutput added in v6.65.1

func (o EntryMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Entry]

type EntryOutput

type EntryOutput struct{ *pulumi.OutputState }

func (EntryOutput) BigqueryDateShardedSpecs added in v6.23.0

func (o EntryOutput) BigqueryDateShardedSpecs() EntryBigqueryDateShardedSpecArrayOutput

Specification for a group of BigQuery tables with name pattern [prefix]YYYYMMDD. Context: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding. Structure is documented below.

func (EntryOutput) BigqueryTableSpecs added in v6.23.0

func (o EntryOutput) BigqueryTableSpecs() EntryBigqueryTableSpecArrayOutput

Specification that applies to a BigQuery table. This is only valid on entries of type TABLE. Structure is documented below.

func (EntryOutput) Description added in v6.23.0

func (o EntryOutput) Description() pulumi.StringPtrOutput

Entry description, which can consist of several sentences or paragraphs that describe entry contents.

func (EntryOutput) DisplayName added in v6.23.0

func (o EntryOutput) DisplayName() pulumi.StringPtrOutput

Display information such as title and description. A short name to identify the entry, for example, "Analytics Data - Jan 2011".

func (EntryOutput) ElementType

func (EntryOutput) ElementType() reflect.Type

func (EntryOutput) EntryGroup added in v6.23.0

func (o EntryOutput) EntryGroup() pulumi.StringOutput

The name of the entry group this entry is in.

func (EntryOutput) EntryId added in v6.23.0

func (o EntryOutput) EntryId() pulumi.StringOutput

The id of the entry to create.

***

func (EntryOutput) GcsFilesetSpec added in v6.23.0

func (o EntryOutput) GcsFilesetSpec() EntryGcsFilesetSpecPtrOutput

Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET. Structure is documented below.

func (EntryOutput) IntegratedSystem added in v6.23.0

func (o EntryOutput) IntegratedSystem() pulumi.StringOutput

This field indicates the entry's source system that Data Catalog integrates with, such as BigQuery or Pub/Sub.

func (EntryOutput) LinkedResource added in v6.23.0

func (o EntryOutput) LinkedResource() pulumi.StringOutput

The resource this metadata entry refers to. For Google Cloud Platform resources, linkedResource is the full name of the resource. For example, the linkedResource for a table resource from BigQuery is: //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId Output only when Entry is of type in the EntryType enum. For entries with userSpecifiedType, this field is optional and defaults to an empty string.

func (EntryOutput) Name added in v6.23.0

func (o EntryOutput) Name() pulumi.StringOutput

The Data Catalog resource name of the entry in URL format. Example: projects/{project_id}/locations/{location}/entryGroups/{entryGroupId}/entries/{entryId}. Note that this Entry and its child resources may not actually be stored in the location in this name.

func (EntryOutput) Schema added in v6.23.0

func (o EntryOutput) Schema() pulumi.StringPtrOutput

Schema of the entry (e.g. BigQuery, GoogleSQL, Avro schema), as a json string. An entry might not have any schema attached to it. See https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries#schema for what fields this schema can contain.

func (EntryOutput) ToEntryOutput

func (o EntryOutput) ToEntryOutput() EntryOutput

func (EntryOutput) ToEntryOutputWithContext

func (o EntryOutput) ToEntryOutputWithContext(ctx context.Context) EntryOutput

func (EntryOutput) ToOutput added in v6.65.1

func (o EntryOutput) ToOutput(ctx context.Context) pulumix.Output[*Entry]

func (EntryOutput) Type added in v6.23.0

The type of the entry. Only used for Entries with types in the EntryType enum. Currently, only FILESET enum value is allowed. All other entries created through Data Catalog must use userSpecifiedType. Possible values are: `FILESET`.

func (EntryOutput) UserSpecifiedSystem added in v6.23.0

func (o EntryOutput) UserSpecifiedSystem() pulumi.StringPtrOutput

This field indicates the entry's source system that Data Catalog does not integrate with. userSpecifiedSystem strings must begin with a letter or underscore and can only contain letters, numbers, and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.

func (EntryOutput) UserSpecifiedType added in v6.23.0

func (o EntryOutput) UserSpecifiedType() pulumi.StringPtrOutput

Entry type if it does not fit any of the input-allowed values listed in EntryType enum above. When creating an entry, users should check the enum values first, if nothing matches the entry to be created, then provide a custom value, for example "mySpecialType". userSpecifiedType strings must begin with a letter or underscore and can only contain letters, numbers, and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.

type EntryState

type EntryState struct {
	// Specification for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.
	// Context: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
	// Structure is documented below.
	BigqueryDateShardedSpecs EntryBigqueryDateShardedSpecArrayInput
	// Specification that applies to a BigQuery table. This is only valid on entries of type TABLE.
	// Structure is documented below.
	BigqueryTableSpecs EntryBigqueryTableSpecArrayInput
	// Entry description, which can consist of several sentences or paragraphs that describe entry contents.
	Description pulumi.StringPtrInput
	// Display information such as title and description. A short name to identify the entry,
	// for example, "Analytics Data - Jan 2011".
	DisplayName pulumi.StringPtrInput
	// The name of the entry group this entry is in.
	EntryGroup pulumi.StringPtrInput
	// The id of the entry to create.
	//
	// ***
	EntryId pulumi.StringPtrInput
	// Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET.
	// Structure is documented below.
	GcsFilesetSpec EntryGcsFilesetSpecPtrInput
	// This field indicates the entry's source system that Data Catalog integrates with, such as BigQuery or Pub/Sub.
	IntegratedSystem pulumi.StringPtrInput
	// The resource this metadata entry refers to.
	// For Google Cloud Platform resources, linkedResource is the full name of the resource.
	// For example, the linkedResource for a table resource from BigQuery is:
	// //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
	// Output only when Entry is of type in the EntryType enum. For entries with userSpecifiedType,
	// this field is optional and defaults to an empty string.
	LinkedResource pulumi.StringPtrInput
	// The Data Catalog resource name of the entry in URL format.
	// Example: projects/{project_id}/locations/{location}/entryGroups/{entryGroupId}/entries/{entryId}.
	// Note that this Entry and its child resources may not actually be stored in the location in this name.
	Name pulumi.StringPtrInput
	// Schema of the entry (e.g. BigQuery, GoogleSQL, Avro schema), as a json string. An entry might not have any schema
	// attached to it. See
	// https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries#schema
	// for what fields this schema can contain.
	Schema pulumi.StringPtrInput
	// The type of the entry. Only used for Entries with types in the EntryType enum.
	// Currently, only FILESET enum value is allowed. All other entries created through Data Catalog must use userSpecifiedType.
	// Possible values are: `FILESET`.
	Type pulumi.StringPtrInput
	// This field indicates the entry's source system that Data Catalog does not integrate with.
	// userSpecifiedSystem strings must begin with a letter or underscore and can only contain letters, numbers,
	// and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.
	UserSpecifiedSystem pulumi.StringPtrInput
	// Entry type if it does not fit any of the input-allowed values listed in EntryType enum above.
	// When creating an entry, users should check the enum values first, if nothing matches the entry
	// to be created, then provide a custom value, for example "mySpecialType".
	// userSpecifiedType strings must begin with a letter or underscore and can only contain letters,
	// numbers, and underscores; are case insensitive; must be at least 1 character and at most 64 characters long.
	UserSpecifiedType pulumi.StringPtrInput
}

func (EntryState) ElementType

func (EntryState) ElementType() reflect.Type

type LookupEntryGroupIamPolicyArgs added in v6.59.0

type LookupEntryGroupIamPolicyArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup string `pulumi:"entryGroup"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project *string `pulumi:"project"`
	Region  *string `pulumi:"region"`
}

A collection of arguments for invoking getEntryGroupIamPolicy.

type LookupEntryGroupIamPolicyOutputArgs added in v6.59.0

type LookupEntryGroupIamPolicyOutputArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	EntryGroup pulumi.StringInput `pulumi:"entryGroup"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	Region  pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getEntryGroupIamPolicy.

func (LookupEntryGroupIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupEntryGroupIamPolicyResult added in v6.59.0

type LookupEntryGroupIamPolicyResult struct {
	EntryGroup string `pulumi:"entryGroup"`
	// (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 `datacatalog.EntryGroupIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
	Region     string `pulumi:"region"`
}

A collection of values returned by getEntryGroupIamPolicy.

func LookupEntryGroupIamPolicy added in v6.59.0

func LookupEntryGroupIamPolicy(ctx *pulumi.Context, args *LookupEntryGroupIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupEntryGroupIamPolicyResult, error)

Retrieves the current IAM policy data for entrygroup

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.LookupEntryGroupIamPolicy(ctx, &datacatalog.LookupEntryGroupIamPolicyArgs{
			EntryGroup: google_data_catalog_entry_group.Basic_entry_group.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupEntryGroupIamPolicyResultOutput added in v6.59.0

type LookupEntryGroupIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getEntryGroupIamPolicy.

func (LookupEntryGroupIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupEntryGroupIamPolicyResultOutput) EntryGroup added in v6.59.0

func (LookupEntryGroupIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupEntryGroupIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupEntryGroupIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `datacatalog.EntryGroupIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupEntryGroupIamPolicyResultOutput) Project added in v6.59.0

func (LookupEntryGroupIamPolicyResultOutput) Region added in v6.59.0

func (LookupEntryGroupIamPolicyResultOutput) ToLookupEntryGroupIamPolicyResultOutput added in v6.59.0

func (o LookupEntryGroupIamPolicyResultOutput) ToLookupEntryGroupIamPolicyResultOutput() LookupEntryGroupIamPolicyResultOutput

func (LookupEntryGroupIamPolicyResultOutput) ToLookupEntryGroupIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupEntryGroupIamPolicyResultOutput) ToLookupEntryGroupIamPolicyResultOutputWithContext(ctx context.Context) LookupEntryGroupIamPolicyResultOutput

func (LookupEntryGroupIamPolicyResultOutput) ToOutput added in v6.65.1

type LookupPolicyTagIamPolicyArgs added in v6.59.0

type LookupPolicyTagIamPolicyArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	PolicyTag string `pulumi:"policyTag"`
}

A collection of arguments for invoking getPolicyTagIamPolicy.

type LookupPolicyTagIamPolicyOutputArgs added in v6.59.0

type LookupPolicyTagIamPolicyOutputArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	PolicyTag pulumi.StringInput `pulumi:"policyTag"`
}

A collection of arguments for invoking getPolicyTagIamPolicy.

func (LookupPolicyTagIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupPolicyTagIamPolicyResult added in v6.59.0

type LookupPolicyTagIamPolicyResult 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 `datacatalog.PolicyTagIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	PolicyTag  string `pulumi:"policyTag"`
}

A collection of values returned by getPolicyTagIamPolicy.

func LookupPolicyTagIamPolicy added in v6.59.0

func LookupPolicyTagIamPolicy(ctx *pulumi.Context, args *LookupPolicyTagIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupPolicyTagIamPolicyResult, error)

Retrieves the current IAM policy data for policytag

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.LookupPolicyTagIamPolicy(ctx, &datacatalog.LookupPolicyTagIamPolicyArgs{
			PolicyTag: google_data_catalog_policy_tag.Basic_policy_tag.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupPolicyTagIamPolicyResultOutput added in v6.59.0

type LookupPolicyTagIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getPolicyTagIamPolicy.

func (LookupPolicyTagIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupPolicyTagIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupPolicyTagIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupPolicyTagIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `datacatalog.PolicyTagIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupPolicyTagIamPolicyResultOutput) PolicyTag added in v6.59.0

func (LookupPolicyTagIamPolicyResultOutput) ToLookupPolicyTagIamPolicyResultOutput added in v6.59.0

func (o LookupPolicyTagIamPolicyResultOutput) ToLookupPolicyTagIamPolicyResultOutput() LookupPolicyTagIamPolicyResultOutput

func (LookupPolicyTagIamPolicyResultOutput) ToLookupPolicyTagIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupPolicyTagIamPolicyResultOutput) ToLookupPolicyTagIamPolicyResultOutputWithContext(ctx context.Context) LookupPolicyTagIamPolicyResultOutput

func (LookupPolicyTagIamPolicyResultOutput) ToOutput added in v6.65.1

type LookupTagTemplateIamPolicyArgs added in v6.59.0

type LookupTagTemplateIamPolicyArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project *string `pulumi:"project"`
	Region  *string `pulumi:"region"`
	// Used to find the parent resource to bind the IAM policy to
	TagTemplate string `pulumi:"tagTemplate"`
}

A collection of arguments for invoking getTagTemplateIamPolicy.

type LookupTagTemplateIamPolicyOutputArgs added in v6.59.0

type LookupTagTemplateIamPolicyOutputArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	Region  pulumi.StringPtrInput `pulumi:"region"`
	// Used to find the parent resource to bind the IAM policy to
	TagTemplate pulumi.StringInput `pulumi:"tagTemplate"`
}

A collection of arguments for invoking getTagTemplateIamPolicy.

func (LookupTagTemplateIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupTagTemplateIamPolicyResult added in v6.59.0

type LookupTagTemplateIamPolicyResult 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 `datacatalog.TagTemplateIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData  string `pulumi:"policyData"`
	Project     string `pulumi:"project"`
	Region      string `pulumi:"region"`
	TagTemplate string `pulumi:"tagTemplate"`
}

A collection of values returned by getTagTemplateIamPolicy.

func LookupTagTemplateIamPolicy added in v6.59.0

func LookupTagTemplateIamPolicy(ctx *pulumi.Context, args *LookupTagTemplateIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupTagTemplateIamPolicyResult, error)

Retrieves the current IAM policy data for tagtemplate

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.LookupTagTemplateIamPolicy(ctx, &datacatalog.LookupTagTemplateIamPolicyArgs{
			TagTemplate: google_data_catalog_tag_template.Basic_tag_template.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupTagTemplateIamPolicyResultOutput added in v6.59.0

type LookupTagTemplateIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTagTemplateIamPolicy.

func (LookupTagTemplateIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupTagTemplateIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupTagTemplateIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupTagTemplateIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `datacatalog.TagTemplateIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupTagTemplateIamPolicyResultOutput) Project added in v6.59.0

func (LookupTagTemplateIamPolicyResultOutput) Region added in v6.59.0

func (LookupTagTemplateIamPolicyResultOutput) TagTemplate added in v6.59.0

func (LookupTagTemplateIamPolicyResultOutput) ToLookupTagTemplateIamPolicyResultOutput added in v6.59.0

func (o LookupTagTemplateIamPolicyResultOutput) ToLookupTagTemplateIamPolicyResultOutput() LookupTagTemplateIamPolicyResultOutput

func (LookupTagTemplateIamPolicyResultOutput) ToLookupTagTemplateIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupTagTemplateIamPolicyResultOutput) ToLookupTagTemplateIamPolicyResultOutputWithContext(ctx context.Context) LookupTagTemplateIamPolicyResultOutput

func (LookupTagTemplateIamPolicyResultOutput) ToOutput added in v6.65.1

type LookupTaxonomyIamPolicyArgs added in v6.59.0

type LookupTaxonomyIamPolicyArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project *string `pulumi:"project"`
	Region  *string `pulumi:"region"`
	// Used to find the parent resource to bind the IAM policy to
	Taxonomy string `pulumi:"taxonomy"`
}

A collection of arguments for invoking getTaxonomyIamPolicy.

type LookupTaxonomyIamPolicyOutputArgs added in v6.59.0

type LookupTaxonomyIamPolicyOutputArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	Region  pulumi.StringPtrInput `pulumi:"region"`
	// Used to find the parent resource to bind the IAM policy to
	Taxonomy pulumi.StringInput `pulumi:"taxonomy"`
}

A collection of arguments for invoking getTaxonomyIamPolicy.

func (LookupTaxonomyIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupTaxonomyIamPolicyResult added in v6.59.0

type LookupTaxonomyIamPolicyResult 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 `datacatalog.TaxonomyIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
	Region     string `pulumi:"region"`
	Taxonomy   string `pulumi:"taxonomy"`
}

A collection of values returned by getTaxonomyIamPolicy.

func LookupTaxonomyIamPolicy added in v6.59.0

func LookupTaxonomyIamPolicy(ctx *pulumi.Context, args *LookupTaxonomyIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupTaxonomyIamPolicyResult, error)

Retrieves the current IAM policy data for taxonomy

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.LookupTaxonomyIamPolicy(ctx, &datacatalog.LookupTaxonomyIamPolicyArgs{
			Taxonomy: google_data_catalog_taxonomy.Basic_taxonomy.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupTaxonomyIamPolicyResultOutput added in v6.59.0

type LookupTaxonomyIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTaxonomyIamPolicy.

func LookupTaxonomyIamPolicyOutput added in v6.59.0

func (LookupTaxonomyIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupTaxonomyIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupTaxonomyIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupTaxonomyIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `datacatalog.TaxonomyIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupTaxonomyIamPolicyResultOutput) Project added in v6.59.0

func (LookupTaxonomyIamPolicyResultOutput) Region added in v6.59.0

func (LookupTaxonomyIamPolicyResultOutput) Taxonomy added in v6.59.0

func (LookupTaxonomyIamPolicyResultOutput) ToLookupTaxonomyIamPolicyResultOutput added in v6.59.0

func (o LookupTaxonomyIamPolicyResultOutput) ToLookupTaxonomyIamPolicyResultOutput() LookupTaxonomyIamPolicyResultOutput

func (LookupTaxonomyIamPolicyResultOutput) ToLookupTaxonomyIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupTaxonomyIamPolicyResultOutput) ToLookupTaxonomyIamPolicyResultOutputWithContext(ctx context.Context) LookupTaxonomyIamPolicyResultOutput

func (LookupTaxonomyIamPolicyResultOutput) ToOutput added in v6.65.1

type PolicyTag

type PolicyTag struct {
	pulumi.CustomResourceState

	// Resource names of child policy tags of this policy tag.
	ChildPolicyTags pulumi.StringArrayOutput `pulumi:"childPolicyTags"`
	// Description of this policy tag. It must: contain only unicode characters, tabs,
	// newlines, carriage returns and page breaks; and be at most 2000 bytes long when
	// encoded in UTF-8. If not set, defaults to an empty description.
	// If not set, defaults to an empty description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// User defined name of this policy tag. It must: be unique within the parent
	// taxonomy; contain only unicode letters, numbers, underscores, dashes and spaces;
	// not start or end with spaces; and be at most 200 bytes long when encoded in UTF-8.
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// Resource name of this policy tag, whose format is:
	// "projects/{project}/locations/{region}/taxonomies/{taxonomy}/policyTags/{policytag}"
	Name pulumi.StringOutput `pulumi:"name"`
	// Resource name of this policy tag's parent policy tag.
	// If empty, it means this policy tag is a top level policy tag.
	// If not set, defaults to an empty string.
	ParentPolicyTag pulumi.StringPtrOutput `pulumi:"parentPolicyTag"`
	// Taxonomy the policy tag is associated with
	//
	// ***
	Taxonomy pulumi.StringOutput `pulumi:"taxonomy"`
}

Denotes one policy tag in a taxonomy.

To get more information about PolicyTag, see:

* [API documentation](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.taxonomies.policyTags) * How-to Guides

## Example Usage ### Data Catalog Taxonomies Policy Tag Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myTaxonomy, err := datacatalog.NewTaxonomy(ctx, "myTaxonomy", &datacatalog.TaxonomyArgs{
			DisplayName: pulumi.String("taxonomy_display_name"),
			Description: pulumi.String("A collection of policy tags"),
			ActivatedPolicyTypes: pulumi.StringArray{
				pulumi.String("FINE_GRAINED_ACCESS_CONTROL"),
			},
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewPolicyTag(ctx, "basicPolicyTag", &datacatalog.PolicyTagArgs{
			Taxonomy:    myTaxonomy.ID(),
			DisplayName: pulumi.String("Low security"),
			Description: pulumi.String("A policy tag normally associated with low security items"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Data Catalog Taxonomies Policy Tag Child Policies

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myTaxonomy, err := datacatalog.NewTaxonomy(ctx, "myTaxonomy", &datacatalog.TaxonomyArgs{
			DisplayName: pulumi.String("taxonomy_display_name"),
			Description: pulumi.String("A collection of policy tags"),
			ActivatedPolicyTypes: pulumi.StringArray{
				pulumi.String("FINE_GRAINED_ACCESS_CONTROL"),
			},
		})
		if err != nil {
			return err
		}
		parentPolicy, err := datacatalog.NewPolicyTag(ctx, "parentPolicy", &datacatalog.PolicyTagArgs{
			Taxonomy:    myTaxonomy.ID(),
			DisplayName: pulumi.String("High"),
			Description: pulumi.String("A policy tag category used for high security access"),
		})
		if err != nil {
			return err
		}
		childPolicy, err := datacatalog.NewPolicyTag(ctx, "childPolicy", &datacatalog.PolicyTagArgs{
			Taxonomy:        myTaxonomy.ID(),
			DisplayName:     pulumi.String("ssn"),
			Description:     pulumi.String("A hash of the users ssn"),
			ParentPolicyTag: parentPolicy.ID(),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewPolicyTag(ctx, "childPolicy2", &datacatalog.PolicyTagArgs{
			Taxonomy:        myTaxonomy.ID(),
			DisplayName:     pulumi.String("dob"),
			Description:     pulumi.String("The users date of birth"),
			ParentPolicyTag: parentPolicy.ID(),
		}, pulumi.DependsOn([]pulumi.Resource{
			childPolicy,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

PolicyTag can be imported using any of these accepted formats:

```sh

$ pulumi import gcp:datacatalog/policyTag:PolicyTag default {{name}}

```

func GetPolicyTag

func GetPolicyTag(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PolicyTagState, opts ...pulumi.ResourceOption) (*PolicyTag, error)

GetPolicyTag gets an existing PolicyTag 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 NewPolicyTag

func NewPolicyTag(ctx *pulumi.Context,
	name string, args *PolicyTagArgs, opts ...pulumi.ResourceOption) (*PolicyTag, error)

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

func (*PolicyTag) ElementType

func (*PolicyTag) ElementType() reflect.Type

func (*PolicyTag) ToOutput added in v6.65.1

func (i *PolicyTag) ToOutput(ctx context.Context) pulumix.Output[*PolicyTag]

func (*PolicyTag) ToPolicyTagOutput

func (i *PolicyTag) ToPolicyTagOutput() PolicyTagOutput

func (*PolicyTag) ToPolicyTagOutputWithContext

func (i *PolicyTag) ToPolicyTagOutputWithContext(ctx context.Context) PolicyTagOutput

type PolicyTagArgs

type PolicyTagArgs struct {
	// Description of this policy tag. It must: contain only unicode characters, tabs,
	// newlines, carriage returns and page breaks; and be at most 2000 bytes long when
	// encoded in UTF-8. If not set, defaults to an empty description.
	// If not set, defaults to an empty description.
	Description pulumi.StringPtrInput
	// User defined name of this policy tag. It must: be unique within the parent
	// taxonomy; contain only unicode letters, numbers, underscores, dashes and spaces;
	// not start or end with spaces; and be at most 200 bytes long when encoded in UTF-8.
	DisplayName pulumi.StringInput
	// Resource name of this policy tag's parent policy tag.
	// If empty, it means this policy tag is a top level policy tag.
	// If not set, defaults to an empty string.
	ParentPolicyTag pulumi.StringPtrInput
	// Taxonomy the policy tag is associated with
	//
	// ***
	Taxonomy pulumi.StringInput
}

The set of arguments for constructing a PolicyTag resource.

func (PolicyTagArgs) ElementType

func (PolicyTagArgs) ElementType() reflect.Type

type PolicyTagArray

type PolicyTagArray []PolicyTagInput

func (PolicyTagArray) ElementType

func (PolicyTagArray) ElementType() reflect.Type

func (PolicyTagArray) ToOutput added in v6.65.1

func (i PolicyTagArray) ToOutput(ctx context.Context) pulumix.Output[[]*PolicyTag]

func (PolicyTagArray) ToPolicyTagArrayOutput

func (i PolicyTagArray) ToPolicyTagArrayOutput() PolicyTagArrayOutput

func (PolicyTagArray) ToPolicyTagArrayOutputWithContext

func (i PolicyTagArray) ToPolicyTagArrayOutputWithContext(ctx context.Context) PolicyTagArrayOutput

type PolicyTagArrayInput

type PolicyTagArrayInput interface {
	pulumi.Input

	ToPolicyTagArrayOutput() PolicyTagArrayOutput
	ToPolicyTagArrayOutputWithContext(context.Context) PolicyTagArrayOutput
}

PolicyTagArrayInput is an input type that accepts PolicyTagArray and PolicyTagArrayOutput values. You can construct a concrete instance of `PolicyTagArrayInput` via:

PolicyTagArray{ PolicyTagArgs{...} }

type PolicyTagArrayOutput

type PolicyTagArrayOutput struct{ *pulumi.OutputState }

func (PolicyTagArrayOutput) ElementType

func (PolicyTagArrayOutput) ElementType() reflect.Type

func (PolicyTagArrayOutput) Index

func (PolicyTagArrayOutput) ToOutput added in v6.65.1

func (PolicyTagArrayOutput) ToPolicyTagArrayOutput

func (o PolicyTagArrayOutput) ToPolicyTagArrayOutput() PolicyTagArrayOutput

func (PolicyTagArrayOutput) ToPolicyTagArrayOutputWithContext

func (o PolicyTagArrayOutput) ToPolicyTagArrayOutputWithContext(ctx context.Context) PolicyTagArrayOutput

type PolicyTagIamBinding

type PolicyTagIamBinding struct {
	pulumi.CustomResourceState

	Condition PolicyTagIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// Used to find the parent resource to bind the IAM policy to
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringOutput `pulumi:"policyTag"`
	// The role that should be applied. Only one
	// `datacatalog.PolicyTagIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Data catalog PolicyTag. Each of these resources serves a different use case:

* `datacatalog.PolicyTagIamPolicy`: Authoritative. Sets the IAM policy for the policytag and replaces any existing policy already attached. * `datacatalog.PolicyTagIamBinding`: 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 policytag are preserved. * `datacatalog.PolicyTagIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the policytag are preserved.

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

* `datacatalog.PolicyTagIamPolicy`: Retrieves the IAM policy for the policytag

> **Note:** `datacatalog.PolicyTagIamPolicy` **cannot** be used in conjunction with `datacatalog.PolicyTagIamBinding` and `datacatalog.PolicyTagIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_policy\_tag\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewPolicyTagIamPolicy(ctx, "policy", &datacatalog.PolicyTagIamPolicyArgs{
			PolicyTag:  pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_policy\_tag\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewPolicyTagIamBinding(ctx, "binding", &datacatalog.PolicyTagIamBindingArgs{
			PolicyTag: pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.Name),
			Role:      pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_policy\_tag\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewPolicyTagIamMember(ctx, "member", &datacatalog.PolicyTagIamMemberArgs{
			PolicyTag: pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.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* {{policy_tag}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog policytag IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/policyTagIamBinding:PolicyTagIamBinding editor "{{policy_tag}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/policyTagIamBinding:PolicyTagIamBinding editor "{{policy_tag}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/policyTagIamBinding:PolicyTagIamBinding editor {{policy_tag}}

```

-> **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 GetPolicyTagIamBinding

func GetPolicyTagIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PolicyTagIamBindingState, opts ...pulumi.ResourceOption) (*PolicyTagIamBinding, error)

GetPolicyTagIamBinding gets an existing PolicyTagIamBinding 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 NewPolicyTagIamBinding

func NewPolicyTagIamBinding(ctx *pulumi.Context,
	name string, args *PolicyTagIamBindingArgs, opts ...pulumi.ResourceOption) (*PolicyTagIamBinding, error)

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

func (*PolicyTagIamBinding) ElementType

func (*PolicyTagIamBinding) ElementType() reflect.Type

func (*PolicyTagIamBinding) ToOutput added in v6.65.1

func (*PolicyTagIamBinding) ToPolicyTagIamBindingOutput

func (i *PolicyTagIamBinding) ToPolicyTagIamBindingOutput() PolicyTagIamBindingOutput

func (*PolicyTagIamBinding) ToPolicyTagIamBindingOutputWithContext

func (i *PolicyTagIamBinding) ToPolicyTagIamBindingOutputWithContext(ctx context.Context) PolicyTagIamBindingOutput

type PolicyTagIamBindingArgs

type PolicyTagIamBindingArgs struct {
	Condition PolicyTagIamBindingConditionPtrInput
	Members   pulumi.StringArrayInput
	// Used to find the parent resource to bind the IAM policy to
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringInput
	// The role that should be applied. Only one
	// `datacatalog.PolicyTagIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a PolicyTagIamBinding resource.

func (PolicyTagIamBindingArgs) ElementType

func (PolicyTagIamBindingArgs) ElementType() reflect.Type

type PolicyTagIamBindingArray

type PolicyTagIamBindingArray []PolicyTagIamBindingInput

func (PolicyTagIamBindingArray) ElementType

func (PolicyTagIamBindingArray) ElementType() reflect.Type

func (PolicyTagIamBindingArray) ToOutput added in v6.65.1

func (PolicyTagIamBindingArray) ToPolicyTagIamBindingArrayOutput

func (i PolicyTagIamBindingArray) ToPolicyTagIamBindingArrayOutput() PolicyTagIamBindingArrayOutput

func (PolicyTagIamBindingArray) ToPolicyTagIamBindingArrayOutputWithContext

func (i PolicyTagIamBindingArray) ToPolicyTagIamBindingArrayOutputWithContext(ctx context.Context) PolicyTagIamBindingArrayOutput

type PolicyTagIamBindingArrayInput

type PolicyTagIamBindingArrayInput interface {
	pulumi.Input

	ToPolicyTagIamBindingArrayOutput() PolicyTagIamBindingArrayOutput
	ToPolicyTagIamBindingArrayOutputWithContext(context.Context) PolicyTagIamBindingArrayOutput
}

PolicyTagIamBindingArrayInput is an input type that accepts PolicyTagIamBindingArray and PolicyTagIamBindingArrayOutput values. You can construct a concrete instance of `PolicyTagIamBindingArrayInput` via:

PolicyTagIamBindingArray{ PolicyTagIamBindingArgs{...} }

type PolicyTagIamBindingArrayOutput

type PolicyTagIamBindingArrayOutput struct{ *pulumi.OutputState }

func (PolicyTagIamBindingArrayOutput) ElementType

func (PolicyTagIamBindingArrayOutput) Index

func (PolicyTagIamBindingArrayOutput) ToOutput added in v6.65.1

func (PolicyTagIamBindingArrayOutput) ToPolicyTagIamBindingArrayOutput

func (o PolicyTagIamBindingArrayOutput) ToPolicyTagIamBindingArrayOutput() PolicyTagIamBindingArrayOutput

func (PolicyTagIamBindingArrayOutput) ToPolicyTagIamBindingArrayOutputWithContext

func (o PolicyTagIamBindingArrayOutput) ToPolicyTagIamBindingArrayOutputWithContext(ctx context.Context) PolicyTagIamBindingArrayOutput

type PolicyTagIamBindingCondition

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

type PolicyTagIamBindingConditionArgs

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

func (PolicyTagIamBindingConditionArgs) ElementType

func (PolicyTagIamBindingConditionArgs) ToOutput added in v6.65.1

func (PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionOutput

func (i PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionOutput() PolicyTagIamBindingConditionOutput

func (PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionOutputWithContext

func (i PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionOutputWithContext(ctx context.Context) PolicyTagIamBindingConditionOutput

func (PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionPtrOutput

func (i PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionPtrOutput() PolicyTagIamBindingConditionPtrOutput

func (PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionPtrOutputWithContext

func (i PolicyTagIamBindingConditionArgs) ToPolicyTagIamBindingConditionPtrOutputWithContext(ctx context.Context) PolicyTagIamBindingConditionPtrOutput

type PolicyTagIamBindingConditionInput

type PolicyTagIamBindingConditionInput interface {
	pulumi.Input

	ToPolicyTagIamBindingConditionOutput() PolicyTagIamBindingConditionOutput
	ToPolicyTagIamBindingConditionOutputWithContext(context.Context) PolicyTagIamBindingConditionOutput
}

PolicyTagIamBindingConditionInput is an input type that accepts PolicyTagIamBindingConditionArgs and PolicyTagIamBindingConditionOutput values. You can construct a concrete instance of `PolicyTagIamBindingConditionInput` via:

PolicyTagIamBindingConditionArgs{...}

type PolicyTagIamBindingConditionOutput

type PolicyTagIamBindingConditionOutput struct{ *pulumi.OutputState }

func (PolicyTagIamBindingConditionOutput) Description

func (PolicyTagIamBindingConditionOutput) ElementType

func (PolicyTagIamBindingConditionOutput) Expression

func (PolicyTagIamBindingConditionOutput) Title

func (PolicyTagIamBindingConditionOutput) ToOutput added in v6.65.1

func (PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionOutput

func (o PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionOutput() PolicyTagIamBindingConditionOutput

func (PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionOutputWithContext

func (o PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionOutputWithContext(ctx context.Context) PolicyTagIamBindingConditionOutput

func (PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionPtrOutput

func (o PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionPtrOutput() PolicyTagIamBindingConditionPtrOutput

func (PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionPtrOutputWithContext

func (o PolicyTagIamBindingConditionOutput) ToPolicyTagIamBindingConditionPtrOutputWithContext(ctx context.Context) PolicyTagIamBindingConditionPtrOutput

type PolicyTagIamBindingConditionPtrInput

type PolicyTagIamBindingConditionPtrInput interface {
	pulumi.Input

	ToPolicyTagIamBindingConditionPtrOutput() PolicyTagIamBindingConditionPtrOutput
	ToPolicyTagIamBindingConditionPtrOutputWithContext(context.Context) PolicyTagIamBindingConditionPtrOutput
}

PolicyTagIamBindingConditionPtrInput is an input type that accepts PolicyTagIamBindingConditionArgs, PolicyTagIamBindingConditionPtr and PolicyTagIamBindingConditionPtrOutput values. You can construct a concrete instance of `PolicyTagIamBindingConditionPtrInput` via:

        PolicyTagIamBindingConditionArgs{...}

or:

        nil

type PolicyTagIamBindingConditionPtrOutput

type PolicyTagIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (PolicyTagIamBindingConditionPtrOutput) Description

func (PolicyTagIamBindingConditionPtrOutput) Elem

func (PolicyTagIamBindingConditionPtrOutput) ElementType

func (PolicyTagIamBindingConditionPtrOutput) Expression

func (PolicyTagIamBindingConditionPtrOutput) Title

func (PolicyTagIamBindingConditionPtrOutput) ToOutput added in v6.65.1

func (PolicyTagIamBindingConditionPtrOutput) ToPolicyTagIamBindingConditionPtrOutput

func (o PolicyTagIamBindingConditionPtrOutput) ToPolicyTagIamBindingConditionPtrOutput() PolicyTagIamBindingConditionPtrOutput

func (PolicyTagIamBindingConditionPtrOutput) ToPolicyTagIamBindingConditionPtrOutputWithContext

func (o PolicyTagIamBindingConditionPtrOutput) ToPolicyTagIamBindingConditionPtrOutputWithContext(ctx context.Context) PolicyTagIamBindingConditionPtrOutput

type PolicyTagIamBindingInput

type PolicyTagIamBindingInput interface {
	pulumi.Input

	ToPolicyTagIamBindingOutput() PolicyTagIamBindingOutput
	ToPolicyTagIamBindingOutputWithContext(ctx context.Context) PolicyTagIamBindingOutput
}

type PolicyTagIamBindingMap

type PolicyTagIamBindingMap map[string]PolicyTagIamBindingInput

func (PolicyTagIamBindingMap) ElementType

func (PolicyTagIamBindingMap) ElementType() reflect.Type

func (PolicyTagIamBindingMap) ToOutput added in v6.65.1

func (PolicyTagIamBindingMap) ToPolicyTagIamBindingMapOutput

func (i PolicyTagIamBindingMap) ToPolicyTagIamBindingMapOutput() PolicyTagIamBindingMapOutput

func (PolicyTagIamBindingMap) ToPolicyTagIamBindingMapOutputWithContext

func (i PolicyTagIamBindingMap) ToPolicyTagIamBindingMapOutputWithContext(ctx context.Context) PolicyTagIamBindingMapOutput

type PolicyTagIamBindingMapInput

type PolicyTagIamBindingMapInput interface {
	pulumi.Input

	ToPolicyTagIamBindingMapOutput() PolicyTagIamBindingMapOutput
	ToPolicyTagIamBindingMapOutputWithContext(context.Context) PolicyTagIamBindingMapOutput
}

PolicyTagIamBindingMapInput is an input type that accepts PolicyTagIamBindingMap and PolicyTagIamBindingMapOutput values. You can construct a concrete instance of `PolicyTagIamBindingMapInput` via:

PolicyTagIamBindingMap{ "key": PolicyTagIamBindingArgs{...} }

type PolicyTagIamBindingMapOutput

type PolicyTagIamBindingMapOutput struct{ *pulumi.OutputState }

func (PolicyTagIamBindingMapOutput) ElementType

func (PolicyTagIamBindingMapOutput) MapIndex

func (PolicyTagIamBindingMapOutput) ToOutput added in v6.65.1

func (PolicyTagIamBindingMapOutput) ToPolicyTagIamBindingMapOutput

func (o PolicyTagIamBindingMapOutput) ToPolicyTagIamBindingMapOutput() PolicyTagIamBindingMapOutput

func (PolicyTagIamBindingMapOutput) ToPolicyTagIamBindingMapOutputWithContext

func (o PolicyTagIamBindingMapOutput) ToPolicyTagIamBindingMapOutputWithContext(ctx context.Context) PolicyTagIamBindingMapOutput

type PolicyTagIamBindingOutput

type PolicyTagIamBindingOutput struct{ *pulumi.OutputState }

func (PolicyTagIamBindingOutput) Condition added in v6.23.0

func (PolicyTagIamBindingOutput) ElementType

func (PolicyTagIamBindingOutput) ElementType() reflect.Type

func (PolicyTagIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (PolicyTagIamBindingOutput) Members added in v6.23.0

func (PolicyTagIamBindingOutput) PolicyTag added in v6.23.0

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

  • `member/members` - (Required) 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 (PolicyTagIamBindingOutput) Role added in v6.23.0

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

func (PolicyTagIamBindingOutput) ToOutput added in v6.65.1

func (PolicyTagIamBindingOutput) ToPolicyTagIamBindingOutput

func (o PolicyTagIamBindingOutput) ToPolicyTagIamBindingOutput() PolicyTagIamBindingOutput

func (PolicyTagIamBindingOutput) ToPolicyTagIamBindingOutputWithContext

func (o PolicyTagIamBindingOutput) ToPolicyTagIamBindingOutputWithContext(ctx context.Context) PolicyTagIamBindingOutput

type PolicyTagIamBindingState

type PolicyTagIamBindingState struct {
	Condition PolicyTagIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// Used to find the parent resource to bind the IAM policy to
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.PolicyTagIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (PolicyTagIamBindingState) ElementType

func (PolicyTagIamBindingState) ElementType() reflect.Type

type PolicyTagIamMember

type PolicyTagIamMember struct {
	pulumi.CustomResourceState

	Condition PolicyTagIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// Used to find the parent resource to bind the IAM policy to
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringOutput `pulumi:"policyTag"`
	// The role that should be applied. Only one
	// `datacatalog.PolicyTagIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Data catalog PolicyTag. Each of these resources serves a different use case:

* `datacatalog.PolicyTagIamPolicy`: Authoritative. Sets the IAM policy for the policytag and replaces any existing policy already attached. * `datacatalog.PolicyTagIamBinding`: 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 policytag are preserved. * `datacatalog.PolicyTagIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the policytag are preserved.

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

* `datacatalog.PolicyTagIamPolicy`: Retrieves the IAM policy for the policytag

> **Note:** `datacatalog.PolicyTagIamPolicy` **cannot** be used in conjunction with `datacatalog.PolicyTagIamBinding` and `datacatalog.PolicyTagIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_policy\_tag\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewPolicyTagIamPolicy(ctx, "policy", &datacatalog.PolicyTagIamPolicyArgs{
			PolicyTag:  pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_policy\_tag\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewPolicyTagIamBinding(ctx, "binding", &datacatalog.PolicyTagIamBindingArgs{
			PolicyTag: pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.Name),
			Role:      pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_policy\_tag\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewPolicyTagIamMember(ctx, "member", &datacatalog.PolicyTagIamMemberArgs{
			PolicyTag: pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.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* {{policy_tag}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog policytag IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/policyTagIamMember:PolicyTagIamMember editor "{{policy_tag}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/policyTagIamMember:PolicyTagIamMember editor "{{policy_tag}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/policyTagIamMember:PolicyTagIamMember editor {{policy_tag}}

```

-> **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 GetPolicyTagIamMember

func GetPolicyTagIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PolicyTagIamMemberState, opts ...pulumi.ResourceOption) (*PolicyTagIamMember, error)

GetPolicyTagIamMember gets an existing PolicyTagIamMember 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 NewPolicyTagIamMember

func NewPolicyTagIamMember(ctx *pulumi.Context,
	name string, args *PolicyTagIamMemberArgs, opts ...pulumi.ResourceOption) (*PolicyTagIamMember, error)

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

func (*PolicyTagIamMember) ElementType

func (*PolicyTagIamMember) ElementType() reflect.Type

func (*PolicyTagIamMember) ToOutput added in v6.65.1

func (*PolicyTagIamMember) ToPolicyTagIamMemberOutput

func (i *PolicyTagIamMember) ToPolicyTagIamMemberOutput() PolicyTagIamMemberOutput

func (*PolicyTagIamMember) ToPolicyTagIamMemberOutputWithContext

func (i *PolicyTagIamMember) ToPolicyTagIamMemberOutputWithContext(ctx context.Context) PolicyTagIamMemberOutput

type PolicyTagIamMemberArgs

type PolicyTagIamMemberArgs struct {
	Condition PolicyTagIamMemberConditionPtrInput
	Member    pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringInput
	// The role that should be applied. Only one
	// `datacatalog.PolicyTagIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a PolicyTagIamMember resource.

func (PolicyTagIamMemberArgs) ElementType

func (PolicyTagIamMemberArgs) ElementType() reflect.Type

type PolicyTagIamMemberArray

type PolicyTagIamMemberArray []PolicyTagIamMemberInput

func (PolicyTagIamMemberArray) ElementType

func (PolicyTagIamMemberArray) ElementType() reflect.Type

func (PolicyTagIamMemberArray) ToOutput added in v6.65.1

func (PolicyTagIamMemberArray) ToPolicyTagIamMemberArrayOutput

func (i PolicyTagIamMemberArray) ToPolicyTagIamMemberArrayOutput() PolicyTagIamMemberArrayOutput

func (PolicyTagIamMemberArray) ToPolicyTagIamMemberArrayOutputWithContext

func (i PolicyTagIamMemberArray) ToPolicyTagIamMemberArrayOutputWithContext(ctx context.Context) PolicyTagIamMemberArrayOutput

type PolicyTagIamMemberArrayInput

type PolicyTagIamMemberArrayInput interface {
	pulumi.Input

	ToPolicyTagIamMemberArrayOutput() PolicyTagIamMemberArrayOutput
	ToPolicyTagIamMemberArrayOutputWithContext(context.Context) PolicyTagIamMemberArrayOutput
}

PolicyTagIamMemberArrayInput is an input type that accepts PolicyTagIamMemberArray and PolicyTagIamMemberArrayOutput values. You can construct a concrete instance of `PolicyTagIamMemberArrayInput` via:

PolicyTagIamMemberArray{ PolicyTagIamMemberArgs{...} }

type PolicyTagIamMemberArrayOutput

type PolicyTagIamMemberArrayOutput struct{ *pulumi.OutputState }

func (PolicyTagIamMemberArrayOutput) ElementType

func (PolicyTagIamMemberArrayOutput) Index

func (PolicyTagIamMemberArrayOutput) ToOutput added in v6.65.1

func (PolicyTagIamMemberArrayOutput) ToPolicyTagIamMemberArrayOutput

func (o PolicyTagIamMemberArrayOutput) ToPolicyTagIamMemberArrayOutput() PolicyTagIamMemberArrayOutput

func (PolicyTagIamMemberArrayOutput) ToPolicyTagIamMemberArrayOutputWithContext

func (o PolicyTagIamMemberArrayOutput) ToPolicyTagIamMemberArrayOutputWithContext(ctx context.Context) PolicyTagIamMemberArrayOutput

type PolicyTagIamMemberCondition

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

type PolicyTagIamMemberConditionArgs

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

func (PolicyTagIamMemberConditionArgs) ElementType

func (PolicyTagIamMemberConditionArgs) ToOutput added in v6.65.1

func (PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionOutput

func (i PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionOutput() PolicyTagIamMemberConditionOutput

func (PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionOutputWithContext

func (i PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionOutputWithContext(ctx context.Context) PolicyTagIamMemberConditionOutput

func (PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionPtrOutput

func (i PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionPtrOutput() PolicyTagIamMemberConditionPtrOutput

func (PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionPtrOutputWithContext

func (i PolicyTagIamMemberConditionArgs) ToPolicyTagIamMemberConditionPtrOutputWithContext(ctx context.Context) PolicyTagIamMemberConditionPtrOutput

type PolicyTagIamMemberConditionInput

type PolicyTagIamMemberConditionInput interface {
	pulumi.Input

	ToPolicyTagIamMemberConditionOutput() PolicyTagIamMemberConditionOutput
	ToPolicyTagIamMemberConditionOutputWithContext(context.Context) PolicyTagIamMemberConditionOutput
}

PolicyTagIamMemberConditionInput is an input type that accepts PolicyTagIamMemberConditionArgs and PolicyTagIamMemberConditionOutput values. You can construct a concrete instance of `PolicyTagIamMemberConditionInput` via:

PolicyTagIamMemberConditionArgs{...}

type PolicyTagIamMemberConditionOutput

type PolicyTagIamMemberConditionOutput struct{ *pulumi.OutputState }

func (PolicyTagIamMemberConditionOutput) Description

func (PolicyTagIamMemberConditionOutput) ElementType

func (PolicyTagIamMemberConditionOutput) Expression

func (PolicyTagIamMemberConditionOutput) Title

func (PolicyTagIamMemberConditionOutput) ToOutput added in v6.65.1

func (PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionOutput

func (o PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionOutput() PolicyTagIamMemberConditionOutput

func (PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionOutputWithContext

func (o PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionOutputWithContext(ctx context.Context) PolicyTagIamMemberConditionOutput

func (PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionPtrOutput

func (o PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionPtrOutput() PolicyTagIamMemberConditionPtrOutput

func (PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionPtrOutputWithContext

func (o PolicyTagIamMemberConditionOutput) ToPolicyTagIamMemberConditionPtrOutputWithContext(ctx context.Context) PolicyTagIamMemberConditionPtrOutput

type PolicyTagIamMemberConditionPtrInput

type PolicyTagIamMemberConditionPtrInput interface {
	pulumi.Input

	ToPolicyTagIamMemberConditionPtrOutput() PolicyTagIamMemberConditionPtrOutput
	ToPolicyTagIamMemberConditionPtrOutputWithContext(context.Context) PolicyTagIamMemberConditionPtrOutput
}

PolicyTagIamMemberConditionPtrInput is an input type that accepts PolicyTagIamMemberConditionArgs, PolicyTagIamMemberConditionPtr and PolicyTagIamMemberConditionPtrOutput values. You can construct a concrete instance of `PolicyTagIamMemberConditionPtrInput` via:

        PolicyTagIamMemberConditionArgs{...}

or:

        nil

type PolicyTagIamMemberConditionPtrOutput

type PolicyTagIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (PolicyTagIamMemberConditionPtrOutput) Description

func (PolicyTagIamMemberConditionPtrOutput) Elem

func (PolicyTagIamMemberConditionPtrOutput) ElementType

func (PolicyTagIamMemberConditionPtrOutput) Expression

func (PolicyTagIamMemberConditionPtrOutput) Title

func (PolicyTagIamMemberConditionPtrOutput) ToOutput added in v6.65.1

func (PolicyTagIamMemberConditionPtrOutput) ToPolicyTagIamMemberConditionPtrOutput

func (o PolicyTagIamMemberConditionPtrOutput) ToPolicyTagIamMemberConditionPtrOutput() PolicyTagIamMemberConditionPtrOutput

func (PolicyTagIamMemberConditionPtrOutput) ToPolicyTagIamMemberConditionPtrOutputWithContext

func (o PolicyTagIamMemberConditionPtrOutput) ToPolicyTagIamMemberConditionPtrOutputWithContext(ctx context.Context) PolicyTagIamMemberConditionPtrOutput

type PolicyTagIamMemberInput

type PolicyTagIamMemberInput interface {
	pulumi.Input

	ToPolicyTagIamMemberOutput() PolicyTagIamMemberOutput
	ToPolicyTagIamMemberOutputWithContext(ctx context.Context) PolicyTagIamMemberOutput
}

type PolicyTagIamMemberMap

type PolicyTagIamMemberMap map[string]PolicyTagIamMemberInput

func (PolicyTagIamMemberMap) ElementType

func (PolicyTagIamMemberMap) ElementType() reflect.Type

func (PolicyTagIamMemberMap) ToOutput added in v6.65.1

func (PolicyTagIamMemberMap) ToPolicyTagIamMemberMapOutput

func (i PolicyTagIamMemberMap) ToPolicyTagIamMemberMapOutput() PolicyTagIamMemberMapOutput

func (PolicyTagIamMemberMap) ToPolicyTagIamMemberMapOutputWithContext

func (i PolicyTagIamMemberMap) ToPolicyTagIamMemberMapOutputWithContext(ctx context.Context) PolicyTagIamMemberMapOutput

type PolicyTagIamMemberMapInput

type PolicyTagIamMemberMapInput interface {
	pulumi.Input

	ToPolicyTagIamMemberMapOutput() PolicyTagIamMemberMapOutput
	ToPolicyTagIamMemberMapOutputWithContext(context.Context) PolicyTagIamMemberMapOutput
}

PolicyTagIamMemberMapInput is an input type that accepts PolicyTagIamMemberMap and PolicyTagIamMemberMapOutput values. You can construct a concrete instance of `PolicyTagIamMemberMapInput` via:

PolicyTagIamMemberMap{ "key": PolicyTagIamMemberArgs{...} }

type PolicyTagIamMemberMapOutput

type PolicyTagIamMemberMapOutput struct{ *pulumi.OutputState }

func (PolicyTagIamMemberMapOutput) ElementType

func (PolicyTagIamMemberMapOutput) MapIndex

func (PolicyTagIamMemberMapOutput) ToOutput added in v6.65.1

func (PolicyTagIamMemberMapOutput) ToPolicyTagIamMemberMapOutput

func (o PolicyTagIamMemberMapOutput) ToPolicyTagIamMemberMapOutput() PolicyTagIamMemberMapOutput

func (PolicyTagIamMemberMapOutput) ToPolicyTagIamMemberMapOutputWithContext

func (o PolicyTagIamMemberMapOutput) ToPolicyTagIamMemberMapOutputWithContext(ctx context.Context) PolicyTagIamMemberMapOutput

type PolicyTagIamMemberOutput

type PolicyTagIamMemberOutput struct{ *pulumi.OutputState }

func (PolicyTagIamMemberOutput) Condition added in v6.23.0

func (PolicyTagIamMemberOutput) ElementType

func (PolicyTagIamMemberOutput) ElementType() reflect.Type

func (PolicyTagIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (PolicyTagIamMemberOutput) Member added in v6.23.0

func (PolicyTagIamMemberOutput) PolicyTag added in v6.23.0

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

  • `member/members` - (Required) 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 (PolicyTagIamMemberOutput) Role added in v6.23.0

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

func (PolicyTagIamMemberOutput) ToOutput added in v6.65.1

func (PolicyTagIamMemberOutput) ToPolicyTagIamMemberOutput

func (o PolicyTagIamMemberOutput) ToPolicyTagIamMemberOutput() PolicyTagIamMemberOutput

func (PolicyTagIamMemberOutput) ToPolicyTagIamMemberOutputWithContext

func (o PolicyTagIamMemberOutput) ToPolicyTagIamMemberOutputWithContext(ctx context.Context) PolicyTagIamMemberOutput

type PolicyTagIamMemberState

type PolicyTagIamMemberState struct {
	Condition PolicyTagIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.PolicyTagIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (PolicyTagIamMemberState) ElementType

func (PolicyTagIamMemberState) ElementType() reflect.Type

type PolicyTagIamPolicy

type PolicyTagIamPolicy 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
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringOutput `pulumi:"policyTag"`
}

Three different resources help you manage your IAM policy for Data catalog PolicyTag. Each of these resources serves a different use case:

* `datacatalog.PolicyTagIamPolicy`: Authoritative. Sets the IAM policy for the policytag and replaces any existing policy already attached. * `datacatalog.PolicyTagIamBinding`: 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 policytag are preserved. * `datacatalog.PolicyTagIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the policytag are preserved.

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

* `datacatalog.PolicyTagIamPolicy`: Retrieves the IAM policy for the policytag

> **Note:** `datacatalog.PolicyTagIamPolicy` **cannot** be used in conjunction with `datacatalog.PolicyTagIamBinding` and `datacatalog.PolicyTagIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_policy\_tag\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewPolicyTagIamPolicy(ctx, "policy", &datacatalog.PolicyTagIamPolicyArgs{
			PolicyTag:  pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_policy\_tag\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewPolicyTagIamBinding(ctx, "binding", &datacatalog.PolicyTagIamBindingArgs{
			PolicyTag: pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.Name),
			Role:      pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_policy\_tag\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewPolicyTagIamMember(ctx, "member", &datacatalog.PolicyTagIamMemberArgs{
			PolicyTag: pulumi.Any(google_data_catalog_policy_tag.Basic_policy_tag.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* {{policy_tag}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog policytag IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/policyTagIamPolicy:PolicyTagIamPolicy editor "{{policy_tag}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/policyTagIamPolicy:PolicyTagIamPolicy editor "{{policy_tag}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/policyTagIamPolicy:PolicyTagIamPolicy editor {{policy_tag}}

```

-> **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 GetPolicyTagIamPolicy

func GetPolicyTagIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PolicyTagIamPolicyState, opts ...pulumi.ResourceOption) (*PolicyTagIamPolicy, error)

GetPolicyTagIamPolicy gets an existing PolicyTagIamPolicy 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 NewPolicyTagIamPolicy

func NewPolicyTagIamPolicy(ctx *pulumi.Context,
	name string, args *PolicyTagIamPolicyArgs, opts ...pulumi.ResourceOption) (*PolicyTagIamPolicy, error)

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

func (*PolicyTagIamPolicy) ElementType

func (*PolicyTagIamPolicy) ElementType() reflect.Type

func (*PolicyTagIamPolicy) ToOutput added in v6.65.1

func (*PolicyTagIamPolicy) ToPolicyTagIamPolicyOutput

func (i *PolicyTagIamPolicy) ToPolicyTagIamPolicyOutput() PolicyTagIamPolicyOutput

func (*PolicyTagIamPolicy) ToPolicyTagIamPolicyOutputWithContext

func (i *PolicyTagIamPolicy) ToPolicyTagIamPolicyOutputWithContext(ctx context.Context) PolicyTagIamPolicyOutput

type PolicyTagIamPolicyArgs

type PolicyTagIamPolicyArgs 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
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringInput
}

The set of arguments for constructing a PolicyTagIamPolicy resource.

func (PolicyTagIamPolicyArgs) ElementType

func (PolicyTagIamPolicyArgs) ElementType() reflect.Type

type PolicyTagIamPolicyArray

type PolicyTagIamPolicyArray []PolicyTagIamPolicyInput

func (PolicyTagIamPolicyArray) ElementType

func (PolicyTagIamPolicyArray) ElementType() reflect.Type

func (PolicyTagIamPolicyArray) ToOutput added in v6.65.1

func (PolicyTagIamPolicyArray) ToPolicyTagIamPolicyArrayOutput

func (i PolicyTagIamPolicyArray) ToPolicyTagIamPolicyArrayOutput() PolicyTagIamPolicyArrayOutput

func (PolicyTagIamPolicyArray) ToPolicyTagIamPolicyArrayOutputWithContext

func (i PolicyTagIamPolicyArray) ToPolicyTagIamPolicyArrayOutputWithContext(ctx context.Context) PolicyTagIamPolicyArrayOutput

type PolicyTagIamPolicyArrayInput

type PolicyTagIamPolicyArrayInput interface {
	pulumi.Input

	ToPolicyTagIamPolicyArrayOutput() PolicyTagIamPolicyArrayOutput
	ToPolicyTagIamPolicyArrayOutputWithContext(context.Context) PolicyTagIamPolicyArrayOutput
}

PolicyTagIamPolicyArrayInput is an input type that accepts PolicyTagIamPolicyArray and PolicyTagIamPolicyArrayOutput values. You can construct a concrete instance of `PolicyTagIamPolicyArrayInput` via:

PolicyTagIamPolicyArray{ PolicyTagIamPolicyArgs{...} }

type PolicyTagIamPolicyArrayOutput

type PolicyTagIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (PolicyTagIamPolicyArrayOutput) ElementType

func (PolicyTagIamPolicyArrayOutput) Index

func (PolicyTagIamPolicyArrayOutput) ToOutput added in v6.65.1

func (PolicyTagIamPolicyArrayOutput) ToPolicyTagIamPolicyArrayOutput

func (o PolicyTagIamPolicyArrayOutput) ToPolicyTagIamPolicyArrayOutput() PolicyTagIamPolicyArrayOutput

func (PolicyTagIamPolicyArrayOutput) ToPolicyTagIamPolicyArrayOutputWithContext

func (o PolicyTagIamPolicyArrayOutput) ToPolicyTagIamPolicyArrayOutputWithContext(ctx context.Context) PolicyTagIamPolicyArrayOutput

type PolicyTagIamPolicyInput

type PolicyTagIamPolicyInput interface {
	pulumi.Input

	ToPolicyTagIamPolicyOutput() PolicyTagIamPolicyOutput
	ToPolicyTagIamPolicyOutputWithContext(ctx context.Context) PolicyTagIamPolicyOutput
}

type PolicyTagIamPolicyMap

type PolicyTagIamPolicyMap map[string]PolicyTagIamPolicyInput

func (PolicyTagIamPolicyMap) ElementType

func (PolicyTagIamPolicyMap) ElementType() reflect.Type

func (PolicyTagIamPolicyMap) ToOutput added in v6.65.1

func (PolicyTagIamPolicyMap) ToPolicyTagIamPolicyMapOutput

func (i PolicyTagIamPolicyMap) ToPolicyTagIamPolicyMapOutput() PolicyTagIamPolicyMapOutput

func (PolicyTagIamPolicyMap) ToPolicyTagIamPolicyMapOutputWithContext

func (i PolicyTagIamPolicyMap) ToPolicyTagIamPolicyMapOutputWithContext(ctx context.Context) PolicyTagIamPolicyMapOutput

type PolicyTagIamPolicyMapInput

type PolicyTagIamPolicyMapInput interface {
	pulumi.Input

	ToPolicyTagIamPolicyMapOutput() PolicyTagIamPolicyMapOutput
	ToPolicyTagIamPolicyMapOutputWithContext(context.Context) PolicyTagIamPolicyMapOutput
}

PolicyTagIamPolicyMapInput is an input type that accepts PolicyTagIamPolicyMap and PolicyTagIamPolicyMapOutput values. You can construct a concrete instance of `PolicyTagIamPolicyMapInput` via:

PolicyTagIamPolicyMap{ "key": PolicyTagIamPolicyArgs{...} }

type PolicyTagIamPolicyMapOutput

type PolicyTagIamPolicyMapOutput struct{ *pulumi.OutputState }

func (PolicyTagIamPolicyMapOutput) ElementType

func (PolicyTagIamPolicyMapOutput) MapIndex

func (PolicyTagIamPolicyMapOutput) ToOutput added in v6.65.1

func (PolicyTagIamPolicyMapOutput) ToPolicyTagIamPolicyMapOutput

func (o PolicyTagIamPolicyMapOutput) ToPolicyTagIamPolicyMapOutput() PolicyTagIamPolicyMapOutput

func (PolicyTagIamPolicyMapOutput) ToPolicyTagIamPolicyMapOutputWithContext

func (o PolicyTagIamPolicyMapOutput) ToPolicyTagIamPolicyMapOutputWithContext(ctx context.Context) PolicyTagIamPolicyMapOutput

type PolicyTagIamPolicyOutput

type PolicyTagIamPolicyOutput struct{ *pulumi.OutputState }

func (PolicyTagIamPolicyOutput) ElementType

func (PolicyTagIamPolicyOutput) ElementType() reflect.Type

func (PolicyTagIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (PolicyTagIamPolicyOutput) PolicyData added in v6.23.0

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

func (PolicyTagIamPolicyOutput) PolicyTag added in v6.23.0

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

  • `member/members` - (Required) 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 (PolicyTagIamPolicyOutput) ToOutput added in v6.65.1

func (PolicyTagIamPolicyOutput) ToPolicyTagIamPolicyOutput

func (o PolicyTagIamPolicyOutput) ToPolicyTagIamPolicyOutput() PolicyTagIamPolicyOutput

func (PolicyTagIamPolicyOutput) ToPolicyTagIamPolicyOutputWithContext

func (o PolicyTagIamPolicyOutput) ToPolicyTagIamPolicyOutputWithContext(ctx context.Context) PolicyTagIamPolicyOutput

type PolicyTagIamPolicyState

type PolicyTagIamPolicyState 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
	//
	// * `member/members` - (Required) 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"
	PolicyTag pulumi.StringPtrInput
}

func (PolicyTagIamPolicyState) ElementType

func (PolicyTagIamPolicyState) ElementType() reflect.Type

type PolicyTagInput

type PolicyTagInput interface {
	pulumi.Input

	ToPolicyTagOutput() PolicyTagOutput
	ToPolicyTagOutputWithContext(ctx context.Context) PolicyTagOutput
}

type PolicyTagMap

type PolicyTagMap map[string]PolicyTagInput

func (PolicyTagMap) ElementType

func (PolicyTagMap) ElementType() reflect.Type

func (PolicyTagMap) ToOutput added in v6.65.1

func (i PolicyTagMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*PolicyTag]

func (PolicyTagMap) ToPolicyTagMapOutput

func (i PolicyTagMap) ToPolicyTagMapOutput() PolicyTagMapOutput

func (PolicyTagMap) ToPolicyTagMapOutputWithContext

func (i PolicyTagMap) ToPolicyTagMapOutputWithContext(ctx context.Context) PolicyTagMapOutput

type PolicyTagMapInput

type PolicyTagMapInput interface {
	pulumi.Input

	ToPolicyTagMapOutput() PolicyTagMapOutput
	ToPolicyTagMapOutputWithContext(context.Context) PolicyTagMapOutput
}

PolicyTagMapInput is an input type that accepts PolicyTagMap and PolicyTagMapOutput values. You can construct a concrete instance of `PolicyTagMapInput` via:

PolicyTagMap{ "key": PolicyTagArgs{...} }

type PolicyTagMapOutput

type PolicyTagMapOutput struct{ *pulumi.OutputState }

func (PolicyTagMapOutput) ElementType

func (PolicyTagMapOutput) ElementType() reflect.Type

func (PolicyTagMapOutput) MapIndex

func (PolicyTagMapOutput) ToOutput added in v6.65.1

func (PolicyTagMapOutput) ToPolicyTagMapOutput

func (o PolicyTagMapOutput) ToPolicyTagMapOutput() PolicyTagMapOutput

func (PolicyTagMapOutput) ToPolicyTagMapOutputWithContext

func (o PolicyTagMapOutput) ToPolicyTagMapOutputWithContext(ctx context.Context) PolicyTagMapOutput

type PolicyTagOutput

type PolicyTagOutput struct{ *pulumi.OutputState }

func (PolicyTagOutput) ChildPolicyTags added in v6.23.0

func (o PolicyTagOutput) ChildPolicyTags() pulumi.StringArrayOutput

Resource names of child policy tags of this policy tag.

func (PolicyTagOutput) Description added in v6.23.0

func (o PolicyTagOutput) Description() pulumi.StringPtrOutput

Description of this policy tag. It must: contain only unicode characters, tabs, newlines, carriage returns and page breaks; and be at most 2000 bytes long when encoded in UTF-8. If not set, defaults to an empty description. If not set, defaults to an empty description.

func (PolicyTagOutput) DisplayName added in v6.23.0

func (o PolicyTagOutput) DisplayName() pulumi.StringOutput

User defined name of this policy tag. It must: be unique within the parent taxonomy; contain only unicode letters, numbers, underscores, dashes and spaces; not start or end with spaces; and be at most 200 bytes long when encoded in UTF-8.

func (PolicyTagOutput) ElementType

func (PolicyTagOutput) ElementType() reflect.Type

func (PolicyTagOutput) Name added in v6.23.0

Resource name of this policy tag, whose format is: "projects/{project}/locations/{region}/taxonomies/{taxonomy}/policyTags/{policytag}"

func (PolicyTagOutput) ParentPolicyTag added in v6.23.0

func (o PolicyTagOutput) ParentPolicyTag() pulumi.StringPtrOutput

Resource name of this policy tag's parent policy tag. If empty, it means this policy tag is a top level policy tag. If not set, defaults to an empty string.

func (PolicyTagOutput) Taxonomy added in v6.23.0

func (o PolicyTagOutput) Taxonomy() pulumi.StringOutput

Taxonomy the policy tag is associated with

***

func (PolicyTagOutput) ToOutput added in v6.65.1

func (PolicyTagOutput) ToPolicyTagOutput

func (o PolicyTagOutput) ToPolicyTagOutput() PolicyTagOutput

func (PolicyTagOutput) ToPolicyTagOutputWithContext

func (o PolicyTagOutput) ToPolicyTagOutputWithContext(ctx context.Context) PolicyTagOutput

type PolicyTagState

type PolicyTagState struct {
	// Resource names of child policy tags of this policy tag.
	ChildPolicyTags pulumi.StringArrayInput
	// Description of this policy tag. It must: contain only unicode characters, tabs,
	// newlines, carriage returns and page breaks; and be at most 2000 bytes long when
	// encoded in UTF-8. If not set, defaults to an empty description.
	// If not set, defaults to an empty description.
	Description pulumi.StringPtrInput
	// User defined name of this policy tag. It must: be unique within the parent
	// taxonomy; contain only unicode letters, numbers, underscores, dashes and spaces;
	// not start or end with spaces; and be at most 200 bytes long when encoded in UTF-8.
	DisplayName pulumi.StringPtrInput
	// Resource name of this policy tag, whose format is:
	// "projects/{project}/locations/{region}/taxonomies/{taxonomy}/policyTags/{policytag}"
	Name pulumi.StringPtrInput
	// Resource name of this policy tag's parent policy tag.
	// If empty, it means this policy tag is a top level policy tag.
	// If not set, defaults to an empty string.
	ParentPolicyTag pulumi.StringPtrInput
	// Taxonomy the policy tag is associated with
	//
	// ***
	Taxonomy pulumi.StringPtrInput
}

func (PolicyTagState) ElementType

func (PolicyTagState) ElementType() reflect.Type

type Tag

type Tag struct {
	pulumi.CustomResourceState

	// Resources like Entry can have schemas associated with them. This scope allows users to attach tags to an
	// individual column based on that schema.
	// For attaching a tag to a nested column, use `.` to separate the column names. Example:
	// `outer_column.inner_column`
	Column pulumi.StringPtrOutput `pulumi:"column"`
	// This maps the ID of a tag field to the value of and additional information about that field.
	// Valid field IDs are defined by the tag's template. A tag must have at least 1 field and at most 500 fields.
	// Structure is documented below.
	Fields TagFieldArrayOutput `pulumi:"fields"`
	// The resource name of the tag in URL format. Example:
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}/tags/{tag_id} or
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/tags/{tag_id}
	// where tagId is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of the parent this tag is attached to. This can be the name of an entry or an entry group. If an entry group, the tag will be attached to
	// all entries in that group.
	Parent pulumi.StringPtrOutput `pulumi:"parent"`
	// The resource name of the tag template that this tag uses. Example:
	// projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}
	// This field cannot be modified after creation.
	Template pulumi.StringOutput `pulumi:"template"`
	// The display name of the tag template.
	TemplateDisplayname pulumi.StringOutput `pulumi:"templateDisplayname"`
}

Tags are used to attach custom metadata to Data Catalog resources. Tags conform to the specifications within their tag template.

See [Data Catalog IAM](https://cloud.google.com/data-catalog/docs/concepts/iam) for information on the permissions needed to create or view tags.

To get more information about Tag, see:

* [API documentation](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.tags) * How-to Guides

## Example Usage ### Data Catalog Entry Tag Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		entryGroup, err := datacatalog.NewEntryGroup(ctx, "entryGroup", &datacatalog.EntryGroupArgs{
			EntryGroupId: pulumi.String("my_entry_group"),
		})
		if err != nil {
			return err
		}
		entry, err := datacatalog.NewEntry(ctx, "entry", &datacatalog.EntryArgs{
			EntryGroup:          entryGroup.ID(),
			EntryId:             pulumi.String("my_entry"),
			UserSpecifiedType:   pulumi.String("my_custom_type"),
			UserSpecifiedSystem: pulumi.String("SomethingExternal"),
		})
		if err != nil {
			return err
		}
		tagTemplate, err := datacatalog.NewTagTemplate(ctx, "tagTemplate", &datacatalog.TagTemplateArgs{
			TagTemplateId: pulumi.String("my_template"),
			Region:        pulumi.String("us-central1"),
			DisplayName:   pulumi.String("Demo Tag Template"),
			Fields: datacatalog.TagTemplateFieldArray{
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("source"),
					DisplayName: pulumi.String("Source of data asset"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("STRING"),
					},
					IsRequired: pulumi.Bool(true),
				},
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("num_rows"),
					DisplayName: pulumi.String("Number of rows in the data asset"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("DOUBLE"),
					},
				},
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("pii_type"),
					DisplayName: pulumi.String("PII type"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						EnumType: &datacatalog.TagTemplateFieldTypeEnumTypeArgs{
							AllowedValues: datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArray{
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("EMAIL"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("SOCIAL SECURITY NUMBER"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("NONE"),
								},
							},
						},
					},
				},
			},
			ForceDelete: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewTag(ctx, "basicTag", &datacatalog.TagArgs{
			Parent:   entry.ID(),
			Template: tagTemplate.ID(),
			Fields: datacatalog.TagFieldArray{
				&datacatalog.TagFieldArgs{
					FieldName:   pulumi.String("source"),
					StringValue: pulumi.String("my-string"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Data Catalog Entry Group Tag

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		entryGroup, err := datacatalog.NewEntryGroup(ctx, "entryGroup", &datacatalog.EntryGroupArgs{
			EntryGroupId: pulumi.String("my_entry_group"),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewEntry(ctx, "firstEntry", &datacatalog.EntryArgs{
			EntryGroup:          entryGroup.ID(),
			EntryId:             pulumi.String("first_entry"),
			UserSpecifiedType:   pulumi.String("my_custom_type"),
			UserSpecifiedSystem: pulumi.String("SomethingExternal"),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewEntry(ctx, "secondEntry", &datacatalog.EntryArgs{
			EntryGroup:          entryGroup.ID(),
			EntryId:             pulumi.String("second_entry"),
			UserSpecifiedType:   pulumi.String("another_custom_type"),
			UserSpecifiedSystem: pulumi.String("SomethingElseExternal"),
		})
		if err != nil {
			return err
		}
		tagTemplate, err := datacatalog.NewTagTemplate(ctx, "tagTemplate", &datacatalog.TagTemplateArgs{
			TagTemplateId: pulumi.String("my_template"),
			Region:        pulumi.String("us-central1"),
			DisplayName:   pulumi.String("Demo Tag Template"),
			Fields: datacatalog.TagTemplateFieldArray{
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("source"),
					DisplayName: pulumi.String("Source of data asset"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("STRING"),
					},
					IsRequired: pulumi.Bool(true),
				},
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("num_rows"),
					DisplayName: pulumi.String("Number of rows in the data asset"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("DOUBLE"),
					},
				},
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("pii_type"),
					DisplayName: pulumi.String("PII type"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						EnumType: &datacatalog.TagTemplateFieldTypeEnumTypeArgs{
							AllowedValues: datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArray{
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("EMAIL"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("SOCIAL SECURITY NUMBER"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("NONE"),
								},
							},
						},
					},
				},
			},
			ForceDelete: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewTag(ctx, "entryGroupTag", &datacatalog.TagArgs{
			Parent:   entryGroup.ID(),
			Template: tagTemplate.ID(),
			Fields: datacatalog.TagFieldArray{
				&datacatalog.TagFieldArgs{
					FieldName:   pulumi.String("source"),
					StringValue: pulumi.String("my-string"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Data Catalog Entry Tag Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		entryGroup, err := datacatalog.NewEntryGroup(ctx, "entryGroup", &datacatalog.EntryGroupArgs{
			EntryGroupId: pulumi.String("my_entry_group"),
		})
		if err != nil {
			return err
		}
		entry, err := datacatalog.NewEntry(ctx, "entry", &datacatalog.EntryArgs{
			EntryGroup:          entryGroup.ID(),
			EntryId:             pulumi.String("my_entry"),
			UserSpecifiedType:   pulumi.String("my_custom_type"),
			UserSpecifiedSystem: pulumi.String("SomethingExternal"),
			Schema: pulumi.String(`{
  "columns": [
    {
      "column": "first_name",
      "description": "First name",
      "mode": "REQUIRED",
      "type": "STRING"
    },
    {
      "column": "last_name",
      "description": "Last name",
      "mode": "REQUIRED",
      "type": "STRING"
    },
    {
      "column": "address",
      "description": "Address",
      "mode": "REPEATED",
      "subcolumns": [
        {
          "column": "city",
          "description": "City",
          "mode": "NULLABLE",
          "type": "STRING"
        },
        {
          "column": "state",
          "description": "State",
          "mode": "NULLABLE",
          "type": "STRING"
        }
      ],
      "type": "RECORD"
    }
  ]
}

`),

		})
		if err != nil {
			return err
		}
		tagTemplate, err := datacatalog.NewTagTemplate(ctx, "tagTemplate", &datacatalog.TagTemplateArgs{
			TagTemplateId: pulumi.String("my_template"),
			Region:        pulumi.String("us-central1"),
			DisplayName:   pulumi.String("Demo Tag Template"),
			Fields: datacatalog.TagTemplateFieldArray{
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("source"),
					DisplayName: pulumi.String("Source of data asset"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("STRING"),
					},
					IsRequired: pulumi.Bool(true),
				},
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("num_rows"),
					DisplayName: pulumi.String("Number of rows in the data asset"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("DOUBLE"),
					},
				},
				&datacatalog.TagTemplateFieldArgs{
					FieldId:     pulumi.String("pii_type"),
					DisplayName: pulumi.String("PII type"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						EnumType: &datacatalog.TagTemplateFieldTypeEnumTypeArgs{
							AllowedValues: datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArray{
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("EMAIL"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("SOCIAL SECURITY NUMBER"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("NONE"),
								},
							},
						},
					},
				},
			},
			ForceDelete: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewTag(ctx, "basicTag", &datacatalog.TagArgs{
			Parent:   entry.ID(),
			Template: tagTemplate.ID(),
			Fields: datacatalog.TagFieldArray{
				&datacatalog.TagFieldArgs{
					FieldName:   pulumi.String("source"),
					StringValue: pulumi.String("my-string"),
				},
				&datacatalog.TagFieldArgs{
					FieldName:   pulumi.String("num_rows"),
					DoubleValue: pulumi.Float64(5),
				},
				&datacatalog.TagFieldArgs{
					FieldName: pulumi.String("pii_type"),
					EnumValue: pulumi.String("EMAIL"),
				},
			},
			Column: pulumi.String("address"),
		})
		if err != nil {
			return err
		}
		_, err = datacatalog.NewTag(ctx, "second-tag", &datacatalog.TagArgs{
			Parent:   entry.ID(),
			Template: tagTemplate.ID(),
			Fields: datacatalog.TagFieldArray{
				&datacatalog.TagFieldArgs{
					FieldName:   pulumi.String("source"),
					StringValue: pulumi.String("my-string"),
				},
				&datacatalog.TagFieldArgs{
					FieldName: pulumi.String("pii_type"),
					EnumValue: pulumi.String("NONE"),
				},
			},
			Column: pulumi.String("first_name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Tag can be imported using any of these accepted formats:

```sh

$ pulumi import gcp:datacatalog/tag:Tag default {{name}}

```

func GetTag

func GetTag(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagState, opts ...pulumi.ResourceOption) (*Tag, error)

GetTag gets an existing Tag 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 NewTag

func NewTag(ctx *pulumi.Context,
	name string, args *TagArgs, opts ...pulumi.ResourceOption) (*Tag, error)

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

func (*Tag) ElementType

func (*Tag) ElementType() reflect.Type

func (*Tag) ToOutput added in v6.65.1

func (i *Tag) ToOutput(ctx context.Context) pulumix.Output[*Tag]

func (*Tag) ToTagOutput

func (i *Tag) ToTagOutput() TagOutput

func (*Tag) ToTagOutputWithContext

func (i *Tag) ToTagOutputWithContext(ctx context.Context) TagOutput

type TagArgs

type TagArgs struct {
	// Resources like Entry can have schemas associated with them. This scope allows users to attach tags to an
	// individual column based on that schema.
	// For attaching a tag to a nested column, use `.` to separate the column names. Example:
	// `outer_column.inner_column`
	Column pulumi.StringPtrInput
	// This maps the ID of a tag field to the value of and additional information about that field.
	// Valid field IDs are defined by the tag's template. A tag must have at least 1 field and at most 500 fields.
	// Structure is documented below.
	Fields TagFieldArrayInput
	// The name of the parent this tag is attached to. This can be the name of an entry or an entry group. If an entry group, the tag will be attached to
	// all entries in that group.
	Parent pulumi.StringPtrInput
	// The resource name of the tag template that this tag uses. Example:
	// projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}
	// This field cannot be modified after creation.
	Template pulumi.StringInput
}

The set of arguments for constructing a Tag resource.

func (TagArgs) ElementType

func (TagArgs) ElementType() reflect.Type

type TagArray

type TagArray []TagInput

func (TagArray) ElementType

func (TagArray) ElementType() reflect.Type

func (TagArray) ToOutput added in v6.65.1

func (i TagArray) ToOutput(ctx context.Context) pulumix.Output[[]*Tag]

func (TagArray) ToTagArrayOutput

func (i TagArray) ToTagArrayOutput() TagArrayOutput

func (TagArray) ToTagArrayOutputWithContext

func (i TagArray) ToTagArrayOutputWithContext(ctx context.Context) TagArrayOutput

type TagArrayInput

type TagArrayInput interface {
	pulumi.Input

	ToTagArrayOutput() TagArrayOutput
	ToTagArrayOutputWithContext(context.Context) TagArrayOutput
}

TagArrayInput is an input type that accepts TagArray and TagArrayOutput values. You can construct a concrete instance of `TagArrayInput` via:

TagArray{ TagArgs{...} }

type TagArrayOutput

type TagArrayOutput struct{ *pulumi.OutputState }

func (TagArrayOutput) ElementType

func (TagArrayOutput) ElementType() reflect.Type

func (TagArrayOutput) Index

func (TagArrayOutput) ToOutput added in v6.65.1

func (o TagArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Tag]

func (TagArrayOutput) ToTagArrayOutput

func (o TagArrayOutput) ToTagArrayOutput() TagArrayOutput

func (TagArrayOutput) ToTagArrayOutputWithContext

func (o TagArrayOutput) ToTagArrayOutputWithContext(ctx context.Context) TagArrayOutput

type TagField

type TagField struct {
	// Holds the value for a tag field with boolean type.
	BoolValue *bool `pulumi:"boolValue"`
	// (Output)
	// The display name of this field
	DisplayName *string `pulumi:"displayName"`
	// Holds the value for a tag field with double type.
	DoubleValue *float64 `pulumi:"doubleValue"`
	// Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.
	//
	// ***
	EnumValue *string `pulumi:"enumValue"`
	// The identifier for this object. Format specified above.
	FieldName string `pulumi:"fieldName"`
	// (Output)
	// The order of this field with respect to other fields in this tag. For example, a higher value can indicate
	// a more important field. The value can be negative. Multiple fields can have the same order, and field orders
	// within a tag do not have to be sequential.
	Order *int `pulumi:"order"`
	// Holds the value for a tag field with string type.
	StringValue *string `pulumi:"stringValue"`
	// Holds the value for a tag field with timestamp type.
	TimestampValue *string `pulumi:"timestampValue"`
}

type TagFieldArgs

type TagFieldArgs struct {
	// Holds the value for a tag field with boolean type.
	BoolValue pulumi.BoolPtrInput `pulumi:"boolValue"`
	// (Output)
	// The display name of this field
	DisplayName pulumi.StringPtrInput `pulumi:"displayName"`
	// Holds the value for a tag field with double type.
	DoubleValue pulumi.Float64PtrInput `pulumi:"doubleValue"`
	// Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.
	//
	// ***
	EnumValue pulumi.StringPtrInput `pulumi:"enumValue"`
	// The identifier for this object. Format specified above.
	FieldName pulumi.StringInput `pulumi:"fieldName"`
	// (Output)
	// The order of this field with respect to other fields in this tag. For example, a higher value can indicate
	// a more important field. The value can be negative. Multiple fields can have the same order, and field orders
	// within a tag do not have to be sequential.
	Order pulumi.IntPtrInput `pulumi:"order"`
	// Holds the value for a tag field with string type.
	StringValue pulumi.StringPtrInput `pulumi:"stringValue"`
	// Holds the value for a tag field with timestamp type.
	TimestampValue pulumi.StringPtrInput `pulumi:"timestampValue"`
}

func (TagFieldArgs) ElementType

func (TagFieldArgs) ElementType() reflect.Type

func (TagFieldArgs) ToOutput added in v6.65.1

func (TagFieldArgs) ToTagFieldOutput

func (i TagFieldArgs) ToTagFieldOutput() TagFieldOutput

func (TagFieldArgs) ToTagFieldOutputWithContext

func (i TagFieldArgs) ToTagFieldOutputWithContext(ctx context.Context) TagFieldOutput

type TagFieldArray

type TagFieldArray []TagFieldInput

func (TagFieldArray) ElementType

func (TagFieldArray) ElementType() reflect.Type

func (TagFieldArray) ToOutput added in v6.65.1

func (i TagFieldArray) ToOutput(ctx context.Context) pulumix.Output[[]TagField]

func (TagFieldArray) ToTagFieldArrayOutput

func (i TagFieldArray) ToTagFieldArrayOutput() TagFieldArrayOutput

func (TagFieldArray) ToTagFieldArrayOutputWithContext

func (i TagFieldArray) ToTagFieldArrayOutputWithContext(ctx context.Context) TagFieldArrayOutput

type TagFieldArrayInput

type TagFieldArrayInput interface {
	pulumi.Input

	ToTagFieldArrayOutput() TagFieldArrayOutput
	ToTagFieldArrayOutputWithContext(context.Context) TagFieldArrayOutput
}

TagFieldArrayInput is an input type that accepts TagFieldArray and TagFieldArrayOutput values. You can construct a concrete instance of `TagFieldArrayInput` via:

TagFieldArray{ TagFieldArgs{...} }

type TagFieldArrayOutput

type TagFieldArrayOutput struct{ *pulumi.OutputState }

func (TagFieldArrayOutput) ElementType

func (TagFieldArrayOutput) ElementType() reflect.Type

func (TagFieldArrayOutput) Index

func (TagFieldArrayOutput) ToOutput added in v6.65.1

func (TagFieldArrayOutput) ToTagFieldArrayOutput

func (o TagFieldArrayOutput) ToTagFieldArrayOutput() TagFieldArrayOutput

func (TagFieldArrayOutput) ToTagFieldArrayOutputWithContext

func (o TagFieldArrayOutput) ToTagFieldArrayOutputWithContext(ctx context.Context) TagFieldArrayOutput

type TagFieldInput

type TagFieldInput interface {
	pulumi.Input

	ToTagFieldOutput() TagFieldOutput
	ToTagFieldOutputWithContext(context.Context) TagFieldOutput
}

TagFieldInput is an input type that accepts TagFieldArgs and TagFieldOutput values. You can construct a concrete instance of `TagFieldInput` via:

TagFieldArgs{...}

type TagFieldOutput

type TagFieldOutput struct{ *pulumi.OutputState }

func (TagFieldOutput) BoolValue

func (o TagFieldOutput) BoolValue() pulumi.BoolPtrOutput

Holds the value for a tag field with boolean type.

func (TagFieldOutput) DisplayName

func (o TagFieldOutput) DisplayName() pulumi.StringPtrOutput

(Output) The display name of this field

func (TagFieldOutput) DoubleValue

func (o TagFieldOutput) DoubleValue() pulumi.Float64PtrOutput

Holds the value for a tag field with double type.

func (TagFieldOutput) ElementType

func (TagFieldOutput) ElementType() reflect.Type

func (TagFieldOutput) EnumValue

func (o TagFieldOutput) EnumValue() pulumi.StringPtrOutput

Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.

***

func (TagFieldOutput) FieldName

func (o TagFieldOutput) FieldName() pulumi.StringOutput

The identifier for this object. Format specified above.

func (TagFieldOutput) Order

(Output) The order of this field with respect to other fields in this tag. For example, a higher value can indicate a more important field. The value can be negative. Multiple fields can have the same order, and field orders within a tag do not have to be sequential.

func (TagFieldOutput) StringValue

func (o TagFieldOutput) StringValue() pulumi.StringPtrOutput

Holds the value for a tag field with string type.

func (TagFieldOutput) TimestampValue

func (o TagFieldOutput) TimestampValue() pulumi.StringPtrOutput

Holds the value for a tag field with timestamp type.

func (TagFieldOutput) ToOutput added in v6.65.1

func (TagFieldOutput) ToTagFieldOutput

func (o TagFieldOutput) ToTagFieldOutput() TagFieldOutput

func (TagFieldOutput) ToTagFieldOutputWithContext

func (o TagFieldOutput) ToTagFieldOutputWithContext(ctx context.Context) TagFieldOutput

type TagInput

type TagInput interface {
	pulumi.Input

	ToTagOutput() TagOutput
	ToTagOutputWithContext(ctx context.Context) TagOutput
}

type TagMap

type TagMap map[string]TagInput

func (TagMap) ElementType

func (TagMap) ElementType() reflect.Type

func (TagMap) ToOutput added in v6.65.1

func (i TagMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Tag]

func (TagMap) ToTagMapOutput

func (i TagMap) ToTagMapOutput() TagMapOutput

func (TagMap) ToTagMapOutputWithContext

func (i TagMap) ToTagMapOutputWithContext(ctx context.Context) TagMapOutput

type TagMapInput

type TagMapInput interface {
	pulumi.Input

	ToTagMapOutput() TagMapOutput
	ToTagMapOutputWithContext(context.Context) TagMapOutput
}

TagMapInput is an input type that accepts TagMap and TagMapOutput values. You can construct a concrete instance of `TagMapInput` via:

TagMap{ "key": TagArgs{...} }

type TagMapOutput

type TagMapOutput struct{ *pulumi.OutputState }

func (TagMapOutput) ElementType

func (TagMapOutput) ElementType() reflect.Type

func (TagMapOutput) MapIndex

func (o TagMapOutput) MapIndex(k pulumi.StringInput) TagOutput

func (TagMapOutput) ToOutput added in v6.65.1

func (o TagMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Tag]

func (TagMapOutput) ToTagMapOutput

func (o TagMapOutput) ToTagMapOutput() TagMapOutput

func (TagMapOutput) ToTagMapOutputWithContext

func (o TagMapOutput) ToTagMapOutputWithContext(ctx context.Context) TagMapOutput

type TagOutput

type TagOutput struct{ *pulumi.OutputState }

func (TagOutput) Column added in v6.23.0

func (o TagOutput) Column() pulumi.StringPtrOutput

Resources like Entry can have schemas associated with them. This scope allows users to attach tags to an individual column based on that schema. For attaching a tag to a nested column, use `.` to separate the column names. Example: `outer_column.inner_column`

func (TagOutput) ElementType

func (TagOutput) ElementType() reflect.Type

func (TagOutput) Fields added in v6.23.0

func (o TagOutput) Fields() TagFieldArrayOutput

This maps the ID of a tag field to the value of and additional information about that field. Valid field IDs are defined by the tag's template. A tag must have at least 1 field and at most 500 fields. Structure is documented below.

func (TagOutput) Name added in v6.23.0

func (o TagOutput) Name() pulumi.StringOutput

The resource name of the tag in URL format. Example: projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}/tags/{tag_id} or projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/tags/{tag_id} where tagId is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.

func (TagOutput) Parent added in v6.23.0

func (o TagOutput) Parent() pulumi.StringPtrOutput

The name of the parent this tag is attached to. This can be the name of an entry or an entry group. If an entry group, the tag will be attached to all entries in that group.

func (TagOutput) Template added in v6.23.0

func (o TagOutput) Template() pulumi.StringOutput

The resource name of the tag template that this tag uses. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId} This field cannot be modified after creation.

func (TagOutput) TemplateDisplayname added in v6.23.0

func (o TagOutput) TemplateDisplayname() pulumi.StringOutput

The display name of the tag template.

func (TagOutput) ToOutput added in v6.65.1

func (o TagOutput) ToOutput(ctx context.Context) pulumix.Output[*Tag]

func (TagOutput) ToTagOutput

func (o TagOutput) ToTagOutput() TagOutput

func (TagOutput) ToTagOutputWithContext

func (o TagOutput) ToTagOutputWithContext(ctx context.Context) TagOutput

type TagState

type TagState struct {
	// Resources like Entry can have schemas associated with them. This scope allows users to attach tags to an
	// individual column based on that schema.
	// For attaching a tag to a nested column, use `.` to separate the column names. Example:
	// `outer_column.inner_column`
	Column pulumi.StringPtrInput
	// This maps the ID of a tag field to the value of and additional information about that field.
	// Valid field IDs are defined by the tag's template. A tag must have at least 1 field and at most 500 fields.
	// Structure is documented below.
	Fields TagFieldArrayInput
	// The resource name of the tag in URL format. Example:
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}/tags/{tag_id} or
	// projects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/tags/{tag_id}
	// where tagId is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
	Name pulumi.StringPtrInput
	// The name of the parent this tag is attached to. This can be the name of an entry or an entry group. If an entry group, the tag will be attached to
	// all entries in that group.
	Parent pulumi.StringPtrInput
	// The resource name of the tag template that this tag uses. Example:
	// projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}
	// This field cannot be modified after creation.
	Template pulumi.StringPtrInput
	// The display name of the tag template.
	TemplateDisplayname pulumi.StringPtrInput
}

func (TagState) ElementType

func (TagState) ElementType() reflect.Type

type TagTemplate

type TagTemplate struct {
	pulumi.CustomResourceState

	// The display name for this template.
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// Set of tag template field IDs and the settings for the field. This set is an exhaustive list of the allowed fields. This set must contain at least one field and at most 500 fields. The change of fieldId will be resulting in re-creating of field. The change of primitiveType will be resulting in re-creating of field, however if the field is a required, you cannot update it.
	// Structure is documented below.
	Fields TagTemplateFieldArrayOutput `pulumi:"fields"`
	// This confirms the deletion of any possible tags using this template. Must be set to true in order to delete the tag template.
	ForceDelete pulumi.BoolPtrOutput `pulumi:"forceDelete"`
	// (Output)
	// The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Template location region.
	Region pulumi.StringOutput `pulumi:"region"`
	// The id of the tag template to create.
	TagTemplateId pulumi.StringOutput `pulumi:"tagTemplateId"`
}

A tag template defines a tag, which can have one or more typed fields. The template is used to create and attach the tag to GCP resources.

To get more information about TagTemplate, see:

* [API documentation](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.tagTemplates) * How-to Guides

## Example Usage ### Data Catalog Tag Template Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTagTemplate(ctx, "basicTagTemplate", &datacatalog.TagTemplateArgs{
			DisplayName: pulumi.String("Demo Tag Template"),
			Fields: datacatalog.TagTemplateFieldArray{
				&datacatalog.TagTemplateFieldArgs{
					DisplayName: pulumi.String("Source of data asset"),
					FieldId:     pulumi.String("source"),
					IsRequired:  pulumi.Bool(true),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("STRING"),
					},
				},
				&datacatalog.TagTemplateFieldArgs{
					DisplayName: pulumi.String("Number of rows in the data asset"),
					FieldId:     pulumi.String("num_rows"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						PrimitiveType: pulumi.String("DOUBLE"),
					},
				},
				&datacatalog.TagTemplateFieldArgs{
					DisplayName: pulumi.String("PII type"),
					FieldId:     pulumi.String("pii_type"),
					Type: &datacatalog.TagTemplateFieldTypeArgs{
						EnumType: &datacatalog.TagTemplateFieldTypeEnumTypeArgs{
							AllowedValues: datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArray{
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("EMAIL"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("SOCIAL SECURITY NUMBER"),
								},
								&datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs{
									DisplayName: pulumi.String("NONE"),
								},
							},
						},
					},
				},
			},
			ForceDelete:   pulumi.Bool(false),
			Region:        pulumi.String("us-central1"),
			TagTemplateId: pulumi.String("my_template"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

TagTemplate can be imported using any of these accepted formats:

```sh

$ pulumi import gcp:datacatalog/tagTemplate:TagTemplate default {{name}}

```

func GetTagTemplate

func GetTagTemplate(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagTemplateState, opts ...pulumi.ResourceOption) (*TagTemplate, error)

GetTagTemplate gets an existing TagTemplate 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 NewTagTemplate

func NewTagTemplate(ctx *pulumi.Context,
	name string, args *TagTemplateArgs, opts ...pulumi.ResourceOption) (*TagTemplate, error)

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

func (*TagTemplate) ElementType

func (*TagTemplate) ElementType() reflect.Type

func (*TagTemplate) ToOutput added in v6.65.1

func (i *TagTemplate) ToOutput(ctx context.Context) pulumix.Output[*TagTemplate]

func (*TagTemplate) ToTagTemplateOutput

func (i *TagTemplate) ToTagTemplateOutput() TagTemplateOutput

func (*TagTemplate) ToTagTemplateOutputWithContext

func (i *TagTemplate) ToTagTemplateOutputWithContext(ctx context.Context) TagTemplateOutput

type TagTemplateArgs

type TagTemplateArgs struct {
	// The display name for this template.
	DisplayName pulumi.StringPtrInput
	// Set of tag template field IDs and the settings for the field. This set is an exhaustive list of the allowed fields. This set must contain at least one field and at most 500 fields. The change of fieldId will be resulting in re-creating of field. The change of primitiveType will be resulting in re-creating of field, however if the field is a required, you cannot update it.
	// Structure is documented below.
	Fields TagTemplateFieldArrayInput
	// This confirms the deletion of any possible tags using this template. Must be set to true in order to delete the tag template.
	ForceDelete pulumi.BoolPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Template location region.
	Region pulumi.StringPtrInput
	// The id of the tag template to create.
	TagTemplateId pulumi.StringInput
}

The set of arguments for constructing a TagTemplate resource.

func (TagTemplateArgs) ElementType

func (TagTemplateArgs) ElementType() reflect.Type

type TagTemplateArray

type TagTemplateArray []TagTemplateInput

func (TagTemplateArray) ElementType

func (TagTemplateArray) ElementType() reflect.Type

func (TagTemplateArray) ToOutput added in v6.65.1

func (TagTemplateArray) ToTagTemplateArrayOutput

func (i TagTemplateArray) ToTagTemplateArrayOutput() TagTemplateArrayOutput

func (TagTemplateArray) ToTagTemplateArrayOutputWithContext

func (i TagTemplateArray) ToTagTemplateArrayOutputWithContext(ctx context.Context) TagTemplateArrayOutput

type TagTemplateArrayInput

type TagTemplateArrayInput interface {
	pulumi.Input

	ToTagTemplateArrayOutput() TagTemplateArrayOutput
	ToTagTemplateArrayOutputWithContext(context.Context) TagTemplateArrayOutput
}

TagTemplateArrayInput is an input type that accepts TagTemplateArray and TagTemplateArrayOutput values. You can construct a concrete instance of `TagTemplateArrayInput` via:

TagTemplateArray{ TagTemplateArgs{...} }

type TagTemplateArrayOutput

type TagTemplateArrayOutput struct{ *pulumi.OutputState }

func (TagTemplateArrayOutput) ElementType

func (TagTemplateArrayOutput) ElementType() reflect.Type

func (TagTemplateArrayOutput) Index

func (TagTemplateArrayOutput) ToOutput added in v6.65.1

func (TagTemplateArrayOutput) ToTagTemplateArrayOutput

func (o TagTemplateArrayOutput) ToTagTemplateArrayOutput() TagTemplateArrayOutput

func (TagTemplateArrayOutput) ToTagTemplateArrayOutputWithContext

func (o TagTemplateArrayOutput) ToTagTemplateArrayOutputWithContext(ctx context.Context) TagTemplateArrayOutput

type TagTemplateField

type TagTemplateField struct {
	// A description for this field.
	Description *string `pulumi:"description"`
	// The display name for this field.
	DisplayName *string `pulumi:"displayName"`
	// The identifier for this object. Format specified above.
	FieldId string `pulumi:"fieldId"`
	// Whether this is a required field. Defaults to false.
	IsRequired *bool `pulumi:"isRequired"`
	// (Output)
	// The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
	Name *string `pulumi:"name"`
	// The order of this field with respect to other fields in this tag template.
	// A higher value indicates a more important field. The value can be negative.
	// Multiple fields can have the same order, and field orders within a tag do not have to be sequential.
	Order *int `pulumi:"order"`
	// The type of value this tag field can contain.
	// Structure is documented below.
	Type TagTemplateFieldType `pulumi:"type"`
}

type TagTemplateFieldArgs

type TagTemplateFieldArgs struct {
	// A description for this field.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// The display name for this field.
	DisplayName pulumi.StringPtrInput `pulumi:"displayName"`
	// The identifier for this object. Format specified above.
	FieldId pulumi.StringInput `pulumi:"fieldId"`
	// Whether this is a required field. Defaults to false.
	IsRequired pulumi.BoolPtrInput `pulumi:"isRequired"`
	// (Output)
	// The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The order of this field with respect to other fields in this tag template.
	// A higher value indicates a more important field. The value can be negative.
	// Multiple fields can have the same order, and field orders within a tag do not have to be sequential.
	Order pulumi.IntPtrInput `pulumi:"order"`
	// The type of value this tag field can contain.
	// Structure is documented below.
	Type TagTemplateFieldTypeInput `pulumi:"type"`
}

func (TagTemplateFieldArgs) ElementType

func (TagTemplateFieldArgs) ElementType() reflect.Type

func (TagTemplateFieldArgs) ToOutput added in v6.65.1

func (TagTemplateFieldArgs) ToTagTemplateFieldOutput

func (i TagTemplateFieldArgs) ToTagTemplateFieldOutput() TagTemplateFieldOutput

func (TagTemplateFieldArgs) ToTagTemplateFieldOutputWithContext

func (i TagTemplateFieldArgs) ToTagTemplateFieldOutputWithContext(ctx context.Context) TagTemplateFieldOutput

type TagTemplateFieldArray

type TagTemplateFieldArray []TagTemplateFieldInput

func (TagTemplateFieldArray) ElementType

func (TagTemplateFieldArray) ElementType() reflect.Type

func (TagTemplateFieldArray) ToOutput added in v6.65.1

func (TagTemplateFieldArray) ToTagTemplateFieldArrayOutput

func (i TagTemplateFieldArray) ToTagTemplateFieldArrayOutput() TagTemplateFieldArrayOutput

func (TagTemplateFieldArray) ToTagTemplateFieldArrayOutputWithContext

func (i TagTemplateFieldArray) ToTagTemplateFieldArrayOutputWithContext(ctx context.Context) TagTemplateFieldArrayOutput

type TagTemplateFieldArrayInput

type TagTemplateFieldArrayInput interface {
	pulumi.Input

	ToTagTemplateFieldArrayOutput() TagTemplateFieldArrayOutput
	ToTagTemplateFieldArrayOutputWithContext(context.Context) TagTemplateFieldArrayOutput
}

TagTemplateFieldArrayInput is an input type that accepts TagTemplateFieldArray and TagTemplateFieldArrayOutput values. You can construct a concrete instance of `TagTemplateFieldArrayInput` via:

TagTemplateFieldArray{ TagTemplateFieldArgs{...} }

type TagTemplateFieldArrayOutput

type TagTemplateFieldArrayOutput struct{ *pulumi.OutputState }

func (TagTemplateFieldArrayOutput) ElementType

func (TagTemplateFieldArrayOutput) Index

func (TagTemplateFieldArrayOutput) ToOutput added in v6.65.1

func (TagTemplateFieldArrayOutput) ToTagTemplateFieldArrayOutput

func (o TagTemplateFieldArrayOutput) ToTagTemplateFieldArrayOutput() TagTemplateFieldArrayOutput

func (TagTemplateFieldArrayOutput) ToTagTemplateFieldArrayOutputWithContext

func (o TagTemplateFieldArrayOutput) ToTagTemplateFieldArrayOutputWithContext(ctx context.Context) TagTemplateFieldArrayOutput

type TagTemplateFieldInput

type TagTemplateFieldInput interface {
	pulumi.Input

	ToTagTemplateFieldOutput() TagTemplateFieldOutput
	ToTagTemplateFieldOutputWithContext(context.Context) TagTemplateFieldOutput
}

TagTemplateFieldInput is an input type that accepts TagTemplateFieldArgs and TagTemplateFieldOutput values. You can construct a concrete instance of `TagTemplateFieldInput` via:

TagTemplateFieldArgs{...}

type TagTemplateFieldOutput

type TagTemplateFieldOutput struct{ *pulumi.OutputState }

func (TagTemplateFieldOutput) Description

A description for this field.

func (TagTemplateFieldOutput) DisplayName

The display name for this field.

func (TagTemplateFieldOutput) ElementType

func (TagTemplateFieldOutput) ElementType() reflect.Type

func (TagTemplateFieldOutput) FieldId

The identifier for this object. Format specified above.

func (TagTemplateFieldOutput) IsRequired

Whether this is a required field. Defaults to false.

func (TagTemplateFieldOutput) Name

(Output) The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}

func (TagTemplateFieldOutput) Order

The order of this field with respect to other fields in this tag template. A higher value indicates a more important field. The value can be negative. Multiple fields can have the same order, and field orders within a tag do not have to be sequential.

func (TagTemplateFieldOutput) ToOutput added in v6.65.1

func (TagTemplateFieldOutput) ToTagTemplateFieldOutput

func (o TagTemplateFieldOutput) ToTagTemplateFieldOutput() TagTemplateFieldOutput

func (TagTemplateFieldOutput) ToTagTemplateFieldOutputWithContext

func (o TagTemplateFieldOutput) ToTagTemplateFieldOutputWithContext(ctx context.Context) TagTemplateFieldOutput

func (TagTemplateFieldOutput) Type

The type of value this tag field can contain. Structure is documented below.

type TagTemplateFieldType

type TagTemplateFieldType struct {
	// Represents an enum type.
	// Exactly one of `primitiveType` or `enumType` must be set
	// Structure is documented below.
	EnumType *TagTemplateFieldTypeEnumType `pulumi:"enumType"`
	// Represents primitive types - string, bool etc.
	// Exactly one of `primitiveType` or `enumType` must be set
	// Possible values are: `DOUBLE`, `STRING`, `BOOL`, `TIMESTAMP`.
	PrimitiveType *string `pulumi:"primitiveType"`
}

type TagTemplateFieldTypeArgs

type TagTemplateFieldTypeArgs struct {
	// Represents an enum type.
	// Exactly one of `primitiveType` or `enumType` must be set
	// Structure is documented below.
	EnumType TagTemplateFieldTypeEnumTypePtrInput `pulumi:"enumType"`
	// Represents primitive types - string, bool etc.
	// Exactly one of `primitiveType` or `enumType` must be set
	// Possible values are: `DOUBLE`, `STRING`, `BOOL`, `TIMESTAMP`.
	PrimitiveType pulumi.StringPtrInput `pulumi:"primitiveType"`
}

func (TagTemplateFieldTypeArgs) ElementType

func (TagTemplateFieldTypeArgs) ElementType() reflect.Type

func (TagTemplateFieldTypeArgs) ToOutput added in v6.65.1

func (TagTemplateFieldTypeArgs) ToTagTemplateFieldTypeOutput

func (i TagTemplateFieldTypeArgs) ToTagTemplateFieldTypeOutput() TagTemplateFieldTypeOutput

func (TagTemplateFieldTypeArgs) ToTagTemplateFieldTypeOutputWithContext

func (i TagTemplateFieldTypeArgs) ToTagTemplateFieldTypeOutputWithContext(ctx context.Context) TagTemplateFieldTypeOutput

type TagTemplateFieldTypeEnumType

type TagTemplateFieldTypeEnumType struct {
	// The set of allowed values for this enum. The display names of the
	// values must be case-insensitively unique within this set. Currently,
	// enum values can only be added to the list of allowed values. Deletion
	// and renaming of enum values are not supported.
	// Can have up to 500 allowed values.
	// Structure is documented below.
	AllowedValues []TagTemplateFieldTypeEnumTypeAllowedValue `pulumi:"allowedValues"`
}

type TagTemplateFieldTypeEnumTypeAllowedValue

type TagTemplateFieldTypeEnumTypeAllowedValue struct {
	// The display name for this template.
	DisplayName string `pulumi:"displayName"`
}

type TagTemplateFieldTypeEnumTypeAllowedValueArgs

type TagTemplateFieldTypeEnumTypeAllowedValueArgs struct {
	// The display name for this template.
	DisplayName pulumi.StringInput `pulumi:"displayName"`
}

func (TagTemplateFieldTypeEnumTypeAllowedValueArgs) ElementType

func (TagTemplateFieldTypeEnumTypeAllowedValueArgs) ToOutput added in v6.65.1

func (TagTemplateFieldTypeEnumTypeAllowedValueArgs) ToTagTemplateFieldTypeEnumTypeAllowedValueOutput

func (i TagTemplateFieldTypeEnumTypeAllowedValueArgs) ToTagTemplateFieldTypeEnumTypeAllowedValueOutput() TagTemplateFieldTypeEnumTypeAllowedValueOutput

func (TagTemplateFieldTypeEnumTypeAllowedValueArgs) ToTagTemplateFieldTypeEnumTypeAllowedValueOutputWithContext

func (i TagTemplateFieldTypeEnumTypeAllowedValueArgs) ToTagTemplateFieldTypeEnumTypeAllowedValueOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypeAllowedValueOutput

type TagTemplateFieldTypeEnumTypeAllowedValueArray

type TagTemplateFieldTypeEnumTypeAllowedValueArray []TagTemplateFieldTypeEnumTypeAllowedValueInput

func (TagTemplateFieldTypeEnumTypeAllowedValueArray) ElementType

func (TagTemplateFieldTypeEnumTypeAllowedValueArray) ToOutput added in v6.65.1

func (TagTemplateFieldTypeEnumTypeAllowedValueArray) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutput

func (i TagTemplateFieldTypeEnumTypeAllowedValueArray) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutput() TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput

func (TagTemplateFieldTypeEnumTypeAllowedValueArray) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutputWithContext

func (i TagTemplateFieldTypeEnumTypeAllowedValueArray) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput

type TagTemplateFieldTypeEnumTypeAllowedValueArrayInput

type TagTemplateFieldTypeEnumTypeAllowedValueArrayInput interface {
	pulumi.Input

	ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutput() TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput
	ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutputWithContext(context.Context) TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput
}

TagTemplateFieldTypeEnumTypeAllowedValueArrayInput is an input type that accepts TagTemplateFieldTypeEnumTypeAllowedValueArray and TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput values. You can construct a concrete instance of `TagTemplateFieldTypeEnumTypeAllowedValueArrayInput` via:

TagTemplateFieldTypeEnumTypeAllowedValueArray{ TagTemplateFieldTypeEnumTypeAllowedValueArgs{...} }

type TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput

type TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput struct{ *pulumi.OutputState }

func (TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput) ElementType

func (TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput) Index

func (TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput) ToOutput added in v6.65.1

func (TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutput

func (o TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutput() TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput

func (TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutputWithContext

func (o TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueArrayOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypeAllowedValueArrayOutput

type TagTemplateFieldTypeEnumTypeAllowedValueInput

type TagTemplateFieldTypeEnumTypeAllowedValueInput interface {
	pulumi.Input

	ToTagTemplateFieldTypeEnumTypeAllowedValueOutput() TagTemplateFieldTypeEnumTypeAllowedValueOutput
	ToTagTemplateFieldTypeEnumTypeAllowedValueOutputWithContext(context.Context) TagTemplateFieldTypeEnumTypeAllowedValueOutput
}

TagTemplateFieldTypeEnumTypeAllowedValueInput is an input type that accepts TagTemplateFieldTypeEnumTypeAllowedValueArgs and TagTemplateFieldTypeEnumTypeAllowedValueOutput values. You can construct a concrete instance of `TagTemplateFieldTypeEnumTypeAllowedValueInput` via:

TagTemplateFieldTypeEnumTypeAllowedValueArgs{...}

type TagTemplateFieldTypeEnumTypeAllowedValueOutput

type TagTemplateFieldTypeEnumTypeAllowedValueOutput struct{ *pulumi.OutputState }

func (TagTemplateFieldTypeEnumTypeAllowedValueOutput) DisplayName

The display name for this template.

func (TagTemplateFieldTypeEnumTypeAllowedValueOutput) ElementType

func (TagTemplateFieldTypeEnumTypeAllowedValueOutput) ToOutput added in v6.65.1

func (TagTemplateFieldTypeEnumTypeAllowedValueOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueOutput

func (o TagTemplateFieldTypeEnumTypeAllowedValueOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueOutput() TagTemplateFieldTypeEnumTypeAllowedValueOutput

func (TagTemplateFieldTypeEnumTypeAllowedValueOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueOutputWithContext

func (o TagTemplateFieldTypeEnumTypeAllowedValueOutput) ToTagTemplateFieldTypeEnumTypeAllowedValueOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypeAllowedValueOutput

type TagTemplateFieldTypeEnumTypeArgs

type TagTemplateFieldTypeEnumTypeArgs struct {
	// The set of allowed values for this enum. The display names of the
	// values must be case-insensitively unique within this set. Currently,
	// enum values can only be added to the list of allowed values. Deletion
	// and renaming of enum values are not supported.
	// Can have up to 500 allowed values.
	// Structure is documented below.
	AllowedValues TagTemplateFieldTypeEnumTypeAllowedValueArrayInput `pulumi:"allowedValues"`
}

func (TagTemplateFieldTypeEnumTypeArgs) ElementType

func (TagTemplateFieldTypeEnumTypeArgs) ToOutput added in v6.65.1

func (TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypeOutput

func (i TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypeOutput() TagTemplateFieldTypeEnumTypeOutput

func (TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypeOutputWithContext

func (i TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypeOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypeOutput

func (TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypePtrOutput

func (i TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypePtrOutput() TagTemplateFieldTypeEnumTypePtrOutput

func (TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypePtrOutputWithContext

func (i TagTemplateFieldTypeEnumTypeArgs) ToTagTemplateFieldTypeEnumTypePtrOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypePtrOutput

type TagTemplateFieldTypeEnumTypeInput

type TagTemplateFieldTypeEnumTypeInput interface {
	pulumi.Input

	ToTagTemplateFieldTypeEnumTypeOutput() TagTemplateFieldTypeEnumTypeOutput
	ToTagTemplateFieldTypeEnumTypeOutputWithContext(context.Context) TagTemplateFieldTypeEnumTypeOutput
}

TagTemplateFieldTypeEnumTypeInput is an input type that accepts TagTemplateFieldTypeEnumTypeArgs and TagTemplateFieldTypeEnumTypeOutput values. You can construct a concrete instance of `TagTemplateFieldTypeEnumTypeInput` via:

TagTemplateFieldTypeEnumTypeArgs{...}

type TagTemplateFieldTypeEnumTypeOutput

type TagTemplateFieldTypeEnumTypeOutput struct{ *pulumi.OutputState }

func (TagTemplateFieldTypeEnumTypeOutput) AllowedValues

The set of allowed values for this enum. The display names of the values must be case-insensitively unique within this set. Currently, enum values can only be added to the list of allowed values. Deletion and renaming of enum values are not supported. Can have up to 500 allowed values. Structure is documented below.

func (TagTemplateFieldTypeEnumTypeOutput) ElementType

func (TagTemplateFieldTypeEnumTypeOutput) ToOutput added in v6.65.1

func (TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypeOutput

func (o TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypeOutput() TagTemplateFieldTypeEnumTypeOutput

func (TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypeOutputWithContext

func (o TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypeOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypeOutput

func (TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypePtrOutput

func (o TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypePtrOutput() TagTemplateFieldTypeEnumTypePtrOutput

func (TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypePtrOutputWithContext

func (o TagTemplateFieldTypeEnumTypeOutput) ToTagTemplateFieldTypeEnumTypePtrOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypePtrOutput

type TagTemplateFieldTypeEnumTypePtrInput

type TagTemplateFieldTypeEnumTypePtrInput interface {
	pulumi.Input

	ToTagTemplateFieldTypeEnumTypePtrOutput() TagTemplateFieldTypeEnumTypePtrOutput
	ToTagTemplateFieldTypeEnumTypePtrOutputWithContext(context.Context) TagTemplateFieldTypeEnumTypePtrOutput
}

TagTemplateFieldTypeEnumTypePtrInput is an input type that accepts TagTemplateFieldTypeEnumTypeArgs, TagTemplateFieldTypeEnumTypePtr and TagTemplateFieldTypeEnumTypePtrOutput values. You can construct a concrete instance of `TagTemplateFieldTypeEnumTypePtrInput` via:

        TagTemplateFieldTypeEnumTypeArgs{...}

or:

        nil

type TagTemplateFieldTypeEnumTypePtrOutput

type TagTemplateFieldTypeEnumTypePtrOutput struct{ *pulumi.OutputState }

func (TagTemplateFieldTypeEnumTypePtrOutput) AllowedValues

The set of allowed values for this enum. The display names of the values must be case-insensitively unique within this set. Currently, enum values can only be added to the list of allowed values. Deletion and renaming of enum values are not supported. Can have up to 500 allowed values. Structure is documented below.

func (TagTemplateFieldTypeEnumTypePtrOutput) Elem

func (TagTemplateFieldTypeEnumTypePtrOutput) ElementType

func (TagTemplateFieldTypeEnumTypePtrOutput) ToOutput added in v6.65.1

func (TagTemplateFieldTypeEnumTypePtrOutput) ToTagTemplateFieldTypeEnumTypePtrOutput

func (o TagTemplateFieldTypeEnumTypePtrOutput) ToTagTemplateFieldTypeEnumTypePtrOutput() TagTemplateFieldTypeEnumTypePtrOutput

func (TagTemplateFieldTypeEnumTypePtrOutput) ToTagTemplateFieldTypeEnumTypePtrOutputWithContext

func (o TagTemplateFieldTypeEnumTypePtrOutput) ToTagTemplateFieldTypeEnumTypePtrOutputWithContext(ctx context.Context) TagTemplateFieldTypeEnumTypePtrOutput

type TagTemplateFieldTypeInput

type TagTemplateFieldTypeInput interface {
	pulumi.Input

	ToTagTemplateFieldTypeOutput() TagTemplateFieldTypeOutput
	ToTagTemplateFieldTypeOutputWithContext(context.Context) TagTemplateFieldTypeOutput
}

TagTemplateFieldTypeInput is an input type that accepts TagTemplateFieldTypeArgs and TagTemplateFieldTypeOutput values. You can construct a concrete instance of `TagTemplateFieldTypeInput` via:

TagTemplateFieldTypeArgs{...}

type TagTemplateFieldTypeOutput

type TagTemplateFieldTypeOutput struct{ *pulumi.OutputState }

func (TagTemplateFieldTypeOutput) ElementType

func (TagTemplateFieldTypeOutput) ElementType() reflect.Type

func (TagTemplateFieldTypeOutput) EnumType

Represents an enum type. Exactly one of `primitiveType` or `enumType` must be set Structure is documented below.

func (TagTemplateFieldTypeOutput) PrimitiveType

Represents primitive types - string, bool etc. Exactly one of `primitiveType` or `enumType` must be set Possible values are: `DOUBLE`, `STRING`, `BOOL`, `TIMESTAMP`.

func (TagTemplateFieldTypeOutput) ToOutput added in v6.65.1

func (TagTemplateFieldTypeOutput) ToTagTemplateFieldTypeOutput

func (o TagTemplateFieldTypeOutput) ToTagTemplateFieldTypeOutput() TagTemplateFieldTypeOutput

func (TagTemplateFieldTypeOutput) ToTagTemplateFieldTypeOutputWithContext

func (o TagTemplateFieldTypeOutput) ToTagTemplateFieldTypeOutputWithContext(ctx context.Context) TagTemplateFieldTypeOutput

type TagTemplateIamBinding

type TagTemplateIamBinding struct {
	pulumi.CustomResourceState

	Condition TagTemplateIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `datacatalog.TagTemplateIamBinding` 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
	TagTemplate pulumi.StringOutput `pulumi:"tagTemplate"`
}

Three different resources help you manage your IAM policy for Data catalog TagTemplate. Each of these resources serves a different use case:

* `datacatalog.TagTemplateIamPolicy`: Authoritative. Sets the IAM policy for the tagtemplate and replaces any existing policy already attached. * `datacatalog.TagTemplateIamBinding`: 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 tagtemplate are preserved. * `datacatalog.TagTemplateIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagtemplate are preserved.

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

* `datacatalog.TagTemplateIamPolicy`: Retrieves the IAM policy for the tagtemplate

> **Note:** `datacatalog.TagTemplateIamPolicy` **cannot** be used in conjunction with `datacatalog.TagTemplateIamBinding` and `datacatalog.TagTemplateIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_tag\_template\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewTagTemplateIamPolicy(ctx, "policy", &datacatalog.TagTemplateIamPolicyArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.Name),
			PolicyData:  *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_tag\_template\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTagTemplateIamBinding(ctx, "binding", &datacatalog.TagTemplateIamBindingArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.Name),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_tag\_template\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTagTemplateIamMember(ctx, "member", &datacatalog.TagTemplateIamMemberArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.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* projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} * {{project}}/{{region}}/{{tag_template}} * {{region}}/{{tag_template}} * {{tag_template}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog tagtemplate IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamBinding:TagTemplateIamBinding editor "projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamBinding:TagTemplateIamBinding editor "projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamBinding:TagTemplateIamBinding editor projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}}

```

-> **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 GetTagTemplateIamBinding

func GetTagTemplateIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagTemplateIamBindingState, opts ...pulumi.ResourceOption) (*TagTemplateIamBinding, error)

GetTagTemplateIamBinding gets an existing TagTemplateIamBinding 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 NewTagTemplateIamBinding

func NewTagTemplateIamBinding(ctx *pulumi.Context,
	name string, args *TagTemplateIamBindingArgs, opts ...pulumi.ResourceOption) (*TagTemplateIamBinding, error)

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

func (*TagTemplateIamBinding) ElementType

func (*TagTemplateIamBinding) ElementType() reflect.Type

func (*TagTemplateIamBinding) ToOutput added in v6.65.1

func (*TagTemplateIamBinding) ToTagTemplateIamBindingOutput

func (i *TagTemplateIamBinding) ToTagTemplateIamBindingOutput() TagTemplateIamBindingOutput

func (*TagTemplateIamBinding) ToTagTemplateIamBindingOutputWithContext

func (i *TagTemplateIamBinding) ToTagTemplateIamBindingOutputWithContext(ctx context.Context) TagTemplateIamBindingOutput

type TagTemplateIamBindingArgs

type TagTemplateIamBindingArgs struct {
	Condition TagTemplateIamBindingConditionPtrInput
	Members   pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TagTemplateIamBinding` 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
	TagTemplate pulumi.StringInput
}

The set of arguments for constructing a TagTemplateIamBinding resource.

func (TagTemplateIamBindingArgs) ElementType

func (TagTemplateIamBindingArgs) ElementType() reflect.Type

type TagTemplateIamBindingArray

type TagTemplateIamBindingArray []TagTemplateIamBindingInput

func (TagTemplateIamBindingArray) ElementType

func (TagTemplateIamBindingArray) ElementType() reflect.Type

func (TagTemplateIamBindingArray) ToOutput added in v6.65.1

func (TagTemplateIamBindingArray) ToTagTemplateIamBindingArrayOutput

func (i TagTemplateIamBindingArray) ToTagTemplateIamBindingArrayOutput() TagTemplateIamBindingArrayOutput

func (TagTemplateIamBindingArray) ToTagTemplateIamBindingArrayOutputWithContext

func (i TagTemplateIamBindingArray) ToTagTemplateIamBindingArrayOutputWithContext(ctx context.Context) TagTemplateIamBindingArrayOutput

type TagTemplateIamBindingArrayInput

type TagTemplateIamBindingArrayInput interface {
	pulumi.Input

	ToTagTemplateIamBindingArrayOutput() TagTemplateIamBindingArrayOutput
	ToTagTemplateIamBindingArrayOutputWithContext(context.Context) TagTemplateIamBindingArrayOutput
}

TagTemplateIamBindingArrayInput is an input type that accepts TagTemplateIamBindingArray and TagTemplateIamBindingArrayOutput values. You can construct a concrete instance of `TagTemplateIamBindingArrayInput` via:

TagTemplateIamBindingArray{ TagTemplateIamBindingArgs{...} }

type TagTemplateIamBindingArrayOutput

type TagTemplateIamBindingArrayOutput struct{ *pulumi.OutputState }

func (TagTemplateIamBindingArrayOutput) ElementType

func (TagTemplateIamBindingArrayOutput) Index

func (TagTemplateIamBindingArrayOutput) ToOutput added in v6.65.1

func (TagTemplateIamBindingArrayOutput) ToTagTemplateIamBindingArrayOutput

func (o TagTemplateIamBindingArrayOutput) ToTagTemplateIamBindingArrayOutput() TagTemplateIamBindingArrayOutput

func (TagTemplateIamBindingArrayOutput) ToTagTemplateIamBindingArrayOutputWithContext

func (o TagTemplateIamBindingArrayOutput) ToTagTemplateIamBindingArrayOutputWithContext(ctx context.Context) TagTemplateIamBindingArrayOutput

type TagTemplateIamBindingCondition

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

type TagTemplateIamBindingConditionArgs

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

func (TagTemplateIamBindingConditionArgs) ElementType

func (TagTemplateIamBindingConditionArgs) ToOutput added in v6.65.1

func (TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionOutput

func (i TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionOutput() TagTemplateIamBindingConditionOutput

func (TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionOutputWithContext

func (i TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionOutputWithContext(ctx context.Context) TagTemplateIamBindingConditionOutput

func (TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionPtrOutput

func (i TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionPtrOutput() TagTemplateIamBindingConditionPtrOutput

func (TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionPtrOutputWithContext

func (i TagTemplateIamBindingConditionArgs) ToTagTemplateIamBindingConditionPtrOutputWithContext(ctx context.Context) TagTemplateIamBindingConditionPtrOutput

type TagTemplateIamBindingConditionInput

type TagTemplateIamBindingConditionInput interface {
	pulumi.Input

	ToTagTemplateIamBindingConditionOutput() TagTemplateIamBindingConditionOutput
	ToTagTemplateIamBindingConditionOutputWithContext(context.Context) TagTemplateIamBindingConditionOutput
}

TagTemplateIamBindingConditionInput is an input type that accepts TagTemplateIamBindingConditionArgs and TagTemplateIamBindingConditionOutput values. You can construct a concrete instance of `TagTemplateIamBindingConditionInput` via:

TagTemplateIamBindingConditionArgs{...}

type TagTemplateIamBindingConditionOutput

type TagTemplateIamBindingConditionOutput struct{ *pulumi.OutputState }

func (TagTemplateIamBindingConditionOutput) Description

func (TagTemplateIamBindingConditionOutput) ElementType

func (TagTemplateIamBindingConditionOutput) Expression

func (TagTemplateIamBindingConditionOutput) Title

func (TagTemplateIamBindingConditionOutput) ToOutput added in v6.65.1

func (TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionOutput

func (o TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionOutput() TagTemplateIamBindingConditionOutput

func (TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionOutputWithContext

func (o TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionOutputWithContext(ctx context.Context) TagTemplateIamBindingConditionOutput

func (TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionPtrOutput

func (o TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionPtrOutput() TagTemplateIamBindingConditionPtrOutput

func (TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionPtrOutputWithContext

func (o TagTemplateIamBindingConditionOutput) ToTagTemplateIamBindingConditionPtrOutputWithContext(ctx context.Context) TagTemplateIamBindingConditionPtrOutput

type TagTemplateIamBindingConditionPtrInput

type TagTemplateIamBindingConditionPtrInput interface {
	pulumi.Input

	ToTagTemplateIamBindingConditionPtrOutput() TagTemplateIamBindingConditionPtrOutput
	ToTagTemplateIamBindingConditionPtrOutputWithContext(context.Context) TagTemplateIamBindingConditionPtrOutput
}

TagTemplateIamBindingConditionPtrInput is an input type that accepts TagTemplateIamBindingConditionArgs, TagTemplateIamBindingConditionPtr and TagTemplateIamBindingConditionPtrOutput values. You can construct a concrete instance of `TagTemplateIamBindingConditionPtrInput` via:

        TagTemplateIamBindingConditionArgs{...}

or:

        nil

type TagTemplateIamBindingConditionPtrOutput

type TagTemplateIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (TagTemplateIamBindingConditionPtrOutput) Description

func (TagTemplateIamBindingConditionPtrOutput) Elem

func (TagTemplateIamBindingConditionPtrOutput) ElementType

func (TagTemplateIamBindingConditionPtrOutput) Expression

func (TagTemplateIamBindingConditionPtrOutput) Title

func (TagTemplateIamBindingConditionPtrOutput) ToOutput added in v6.65.1

func (TagTemplateIamBindingConditionPtrOutput) ToTagTemplateIamBindingConditionPtrOutput

func (o TagTemplateIamBindingConditionPtrOutput) ToTagTemplateIamBindingConditionPtrOutput() TagTemplateIamBindingConditionPtrOutput

func (TagTemplateIamBindingConditionPtrOutput) ToTagTemplateIamBindingConditionPtrOutputWithContext

func (o TagTemplateIamBindingConditionPtrOutput) ToTagTemplateIamBindingConditionPtrOutputWithContext(ctx context.Context) TagTemplateIamBindingConditionPtrOutput

type TagTemplateIamBindingInput

type TagTemplateIamBindingInput interface {
	pulumi.Input

	ToTagTemplateIamBindingOutput() TagTemplateIamBindingOutput
	ToTagTemplateIamBindingOutputWithContext(ctx context.Context) TagTemplateIamBindingOutput
}

type TagTemplateIamBindingMap

type TagTemplateIamBindingMap map[string]TagTemplateIamBindingInput

func (TagTemplateIamBindingMap) ElementType

func (TagTemplateIamBindingMap) ElementType() reflect.Type

func (TagTemplateIamBindingMap) ToOutput added in v6.65.1

func (TagTemplateIamBindingMap) ToTagTemplateIamBindingMapOutput

func (i TagTemplateIamBindingMap) ToTagTemplateIamBindingMapOutput() TagTemplateIamBindingMapOutput

func (TagTemplateIamBindingMap) ToTagTemplateIamBindingMapOutputWithContext

func (i TagTemplateIamBindingMap) ToTagTemplateIamBindingMapOutputWithContext(ctx context.Context) TagTemplateIamBindingMapOutput

type TagTemplateIamBindingMapInput

type TagTemplateIamBindingMapInput interface {
	pulumi.Input

	ToTagTemplateIamBindingMapOutput() TagTemplateIamBindingMapOutput
	ToTagTemplateIamBindingMapOutputWithContext(context.Context) TagTemplateIamBindingMapOutput
}

TagTemplateIamBindingMapInput is an input type that accepts TagTemplateIamBindingMap and TagTemplateIamBindingMapOutput values. You can construct a concrete instance of `TagTemplateIamBindingMapInput` via:

TagTemplateIamBindingMap{ "key": TagTemplateIamBindingArgs{...} }

type TagTemplateIamBindingMapOutput

type TagTemplateIamBindingMapOutput struct{ *pulumi.OutputState }

func (TagTemplateIamBindingMapOutput) ElementType

func (TagTemplateIamBindingMapOutput) MapIndex

func (TagTemplateIamBindingMapOutput) ToOutput added in v6.65.1

func (TagTemplateIamBindingMapOutput) ToTagTemplateIamBindingMapOutput

func (o TagTemplateIamBindingMapOutput) ToTagTemplateIamBindingMapOutput() TagTemplateIamBindingMapOutput

func (TagTemplateIamBindingMapOutput) ToTagTemplateIamBindingMapOutputWithContext

func (o TagTemplateIamBindingMapOutput) ToTagTemplateIamBindingMapOutputWithContext(ctx context.Context) TagTemplateIamBindingMapOutput

type TagTemplateIamBindingOutput

type TagTemplateIamBindingOutput struct{ *pulumi.OutputState }

func (TagTemplateIamBindingOutput) Condition added in v6.23.0

func (TagTemplateIamBindingOutput) ElementType

func (TagTemplateIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TagTemplateIamBindingOutput) Members added in v6.23.0

func (TagTemplateIamBindingOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TagTemplateIamBindingOutput) Region added in v6.23.0

func (TagTemplateIamBindingOutput) Role added in v6.23.0

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

func (TagTemplateIamBindingOutput) TagTemplate added in v6.23.0

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

func (TagTemplateIamBindingOutput) ToOutput added in v6.65.1

func (TagTemplateIamBindingOutput) ToTagTemplateIamBindingOutput

func (o TagTemplateIamBindingOutput) ToTagTemplateIamBindingOutput() TagTemplateIamBindingOutput

func (TagTemplateIamBindingOutput) ToTagTemplateIamBindingOutputWithContext

func (o TagTemplateIamBindingOutput) ToTagTemplateIamBindingOutputWithContext(ctx context.Context) TagTemplateIamBindingOutput

type TagTemplateIamBindingState

type TagTemplateIamBindingState struct {
	Condition TagTemplateIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TagTemplateIamBinding` 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
	TagTemplate pulumi.StringPtrInput
}

func (TagTemplateIamBindingState) ElementType

func (TagTemplateIamBindingState) ElementType() reflect.Type

type TagTemplateIamMember

type TagTemplateIamMember struct {
	pulumi.CustomResourceState

	Condition TagTemplateIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `datacatalog.TagTemplateIamBinding` 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
	TagTemplate pulumi.StringOutput `pulumi:"tagTemplate"`
}

Three different resources help you manage your IAM policy for Data catalog TagTemplate. Each of these resources serves a different use case:

* `datacatalog.TagTemplateIamPolicy`: Authoritative. Sets the IAM policy for the tagtemplate and replaces any existing policy already attached. * `datacatalog.TagTemplateIamBinding`: 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 tagtemplate are preserved. * `datacatalog.TagTemplateIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagtemplate are preserved.

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

* `datacatalog.TagTemplateIamPolicy`: Retrieves the IAM policy for the tagtemplate

> **Note:** `datacatalog.TagTemplateIamPolicy` **cannot** be used in conjunction with `datacatalog.TagTemplateIamBinding` and `datacatalog.TagTemplateIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_tag\_template\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewTagTemplateIamPolicy(ctx, "policy", &datacatalog.TagTemplateIamPolicyArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.Name),
			PolicyData:  *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_tag\_template\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTagTemplateIamBinding(ctx, "binding", &datacatalog.TagTemplateIamBindingArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.Name),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_tag\_template\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTagTemplateIamMember(ctx, "member", &datacatalog.TagTemplateIamMemberArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.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* projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} * {{project}}/{{region}}/{{tag_template}} * {{region}}/{{tag_template}} * {{tag_template}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog tagtemplate IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamMember:TagTemplateIamMember editor "projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamMember:TagTemplateIamMember editor "projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamMember:TagTemplateIamMember editor projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}}

```

-> **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 GetTagTemplateIamMember

func GetTagTemplateIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagTemplateIamMemberState, opts ...pulumi.ResourceOption) (*TagTemplateIamMember, error)

GetTagTemplateIamMember gets an existing TagTemplateIamMember 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 NewTagTemplateIamMember

func NewTagTemplateIamMember(ctx *pulumi.Context,
	name string, args *TagTemplateIamMemberArgs, opts ...pulumi.ResourceOption) (*TagTemplateIamMember, error)

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

func (*TagTemplateIamMember) ElementType

func (*TagTemplateIamMember) ElementType() reflect.Type

func (*TagTemplateIamMember) ToOutput added in v6.65.1

func (*TagTemplateIamMember) ToTagTemplateIamMemberOutput

func (i *TagTemplateIamMember) ToTagTemplateIamMemberOutput() TagTemplateIamMemberOutput

func (*TagTemplateIamMember) ToTagTemplateIamMemberOutputWithContext

func (i *TagTemplateIamMember) ToTagTemplateIamMemberOutputWithContext(ctx context.Context) TagTemplateIamMemberOutput

type TagTemplateIamMemberArgs

type TagTemplateIamMemberArgs struct {
	Condition TagTemplateIamMemberConditionPtrInput
	Member    pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TagTemplateIamBinding` 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
	TagTemplate pulumi.StringInput
}

The set of arguments for constructing a TagTemplateIamMember resource.

func (TagTemplateIamMemberArgs) ElementType

func (TagTemplateIamMemberArgs) ElementType() reflect.Type

type TagTemplateIamMemberArray

type TagTemplateIamMemberArray []TagTemplateIamMemberInput

func (TagTemplateIamMemberArray) ElementType

func (TagTemplateIamMemberArray) ElementType() reflect.Type

func (TagTemplateIamMemberArray) ToOutput added in v6.65.1

func (TagTemplateIamMemberArray) ToTagTemplateIamMemberArrayOutput

func (i TagTemplateIamMemberArray) ToTagTemplateIamMemberArrayOutput() TagTemplateIamMemberArrayOutput

func (TagTemplateIamMemberArray) ToTagTemplateIamMemberArrayOutputWithContext

func (i TagTemplateIamMemberArray) ToTagTemplateIamMemberArrayOutputWithContext(ctx context.Context) TagTemplateIamMemberArrayOutput

type TagTemplateIamMemberArrayInput

type TagTemplateIamMemberArrayInput interface {
	pulumi.Input

	ToTagTemplateIamMemberArrayOutput() TagTemplateIamMemberArrayOutput
	ToTagTemplateIamMemberArrayOutputWithContext(context.Context) TagTemplateIamMemberArrayOutput
}

TagTemplateIamMemberArrayInput is an input type that accepts TagTemplateIamMemberArray and TagTemplateIamMemberArrayOutput values. You can construct a concrete instance of `TagTemplateIamMemberArrayInput` via:

TagTemplateIamMemberArray{ TagTemplateIamMemberArgs{...} }

type TagTemplateIamMemberArrayOutput

type TagTemplateIamMemberArrayOutput struct{ *pulumi.OutputState }

func (TagTemplateIamMemberArrayOutput) ElementType

func (TagTemplateIamMemberArrayOutput) Index

func (TagTemplateIamMemberArrayOutput) ToOutput added in v6.65.1

func (TagTemplateIamMemberArrayOutput) ToTagTemplateIamMemberArrayOutput

func (o TagTemplateIamMemberArrayOutput) ToTagTemplateIamMemberArrayOutput() TagTemplateIamMemberArrayOutput

func (TagTemplateIamMemberArrayOutput) ToTagTemplateIamMemberArrayOutputWithContext

func (o TagTemplateIamMemberArrayOutput) ToTagTemplateIamMemberArrayOutputWithContext(ctx context.Context) TagTemplateIamMemberArrayOutput

type TagTemplateIamMemberCondition

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

type TagTemplateIamMemberConditionArgs

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

func (TagTemplateIamMemberConditionArgs) ElementType

func (TagTemplateIamMemberConditionArgs) ToOutput added in v6.65.1

func (TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionOutput

func (i TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionOutput() TagTemplateIamMemberConditionOutput

func (TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionOutputWithContext

func (i TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionOutputWithContext(ctx context.Context) TagTemplateIamMemberConditionOutput

func (TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionPtrOutput

func (i TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionPtrOutput() TagTemplateIamMemberConditionPtrOutput

func (TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionPtrOutputWithContext

func (i TagTemplateIamMemberConditionArgs) ToTagTemplateIamMemberConditionPtrOutputWithContext(ctx context.Context) TagTemplateIamMemberConditionPtrOutput

type TagTemplateIamMemberConditionInput

type TagTemplateIamMemberConditionInput interface {
	pulumi.Input

	ToTagTemplateIamMemberConditionOutput() TagTemplateIamMemberConditionOutput
	ToTagTemplateIamMemberConditionOutputWithContext(context.Context) TagTemplateIamMemberConditionOutput
}

TagTemplateIamMemberConditionInput is an input type that accepts TagTemplateIamMemberConditionArgs and TagTemplateIamMemberConditionOutput values. You can construct a concrete instance of `TagTemplateIamMemberConditionInput` via:

TagTemplateIamMemberConditionArgs{...}

type TagTemplateIamMemberConditionOutput

type TagTemplateIamMemberConditionOutput struct{ *pulumi.OutputState }

func (TagTemplateIamMemberConditionOutput) Description

func (TagTemplateIamMemberConditionOutput) ElementType

func (TagTemplateIamMemberConditionOutput) Expression

func (TagTemplateIamMemberConditionOutput) Title

func (TagTemplateIamMemberConditionOutput) ToOutput added in v6.65.1

func (TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionOutput

func (o TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionOutput() TagTemplateIamMemberConditionOutput

func (TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionOutputWithContext

func (o TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionOutputWithContext(ctx context.Context) TagTemplateIamMemberConditionOutput

func (TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionPtrOutput

func (o TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionPtrOutput() TagTemplateIamMemberConditionPtrOutput

func (TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionPtrOutputWithContext

func (o TagTemplateIamMemberConditionOutput) ToTagTemplateIamMemberConditionPtrOutputWithContext(ctx context.Context) TagTemplateIamMemberConditionPtrOutput

type TagTemplateIamMemberConditionPtrInput

type TagTemplateIamMemberConditionPtrInput interface {
	pulumi.Input

	ToTagTemplateIamMemberConditionPtrOutput() TagTemplateIamMemberConditionPtrOutput
	ToTagTemplateIamMemberConditionPtrOutputWithContext(context.Context) TagTemplateIamMemberConditionPtrOutput
}

TagTemplateIamMemberConditionPtrInput is an input type that accepts TagTemplateIamMemberConditionArgs, TagTemplateIamMemberConditionPtr and TagTemplateIamMemberConditionPtrOutput values. You can construct a concrete instance of `TagTemplateIamMemberConditionPtrInput` via:

        TagTemplateIamMemberConditionArgs{...}

or:

        nil

type TagTemplateIamMemberConditionPtrOutput

type TagTemplateIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (TagTemplateIamMemberConditionPtrOutput) Description

func (TagTemplateIamMemberConditionPtrOutput) Elem

func (TagTemplateIamMemberConditionPtrOutput) ElementType

func (TagTemplateIamMemberConditionPtrOutput) Expression

func (TagTemplateIamMemberConditionPtrOutput) Title

func (TagTemplateIamMemberConditionPtrOutput) ToOutput added in v6.65.1

func (TagTemplateIamMemberConditionPtrOutput) ToTagTemplateIamMemberConditionPtrOutput

func (o TagTemplateIamMemberConditionPtrOutput) ToTagTemplateIamMemberConditionPtrOutput() TagTemplateIamMemberConditionPtrOutput

func (TagTemplateIamMemberConditionPtrOutput) ToTagTemplateIamMemberConditionPtrOutputWithContext

func (o TagTemplateIamMemberConditionPtrOutput) ToTagTemplateIamMemberConditionPtrOutputWithContext(ctx context.Context) TagTemplateIamMemberConditionPtrOutput

type TagTemplateIamMemberInput

type TagTemplateIamMemberInput interface {
	pulumi.Input

	ToTagTemplateIamMemberOutput() TagTemplateIamMemberOutput
	ToTagTemplateIamMemberOutputWithContext(ctx context.Context) TagTemplateIamMemberOutput
}

type TagTemplateIamMemberMap

type TagTemplateIamMemberMap map[string]TagTemplateIamMemberInput

func (TagTemplateIamMemberMap) ElementType

func (TagTemplateIamMemberMap) ElementType() reflect.Type

func (TagTemplateIamMemberMap) ToOutput added in v6.65.1

func (TagTemplateIamMemberMap) ToTagTemplateIamMemberMapOutput

func (i TagTemplateIamMemberMap) ToTagTemplateIamMemberMapOutput() TagTemplateIamMemberMapOutput

func (TagTemplateIamMemberMap) ToTagTemplateIamMemberMapOutputWithContext

func (i TagTemplateIamMemberMap) ToTagTemplateIamMemberMapOutputWithContext(ctx context.Context) TagTemplateIamMemberMapOutput

type TagTemplateIamMemberMapInput

type TagTemplateIamMemberMapInput interface {
	pulumi.Input

	ToTagTemplateIamMemberMapOutput() TagTemplateIamMemberMapOutput
	ToTagTemplateIamMemberMapOutputWithContext(context.Context) TagTemplateIamMemberMapOutput
}

TagTemplateIamMemberMapInput is an input type that accepts TagTemplateIamMemberMap and TagTemplateIamMemberMapOutput values. You can construct a concrete instance of `TagTemplateIamMemberMapInput` via:

TagTemplateIamMemberMap{ "key": TagTemplateIamMemberArgs{...} }

type TagTemplateIamMemberMapOutput

type TagTemplateIamMemberMapOutput struct{ *pulumi.OutputState }

func (TagTemplateIamMemberMapOutput) ElementType

func (TagTemplateIamMemberMapOutput) MapIndex

func (TagTemplateIamMemberMapOutput) ToOutput added in v6.65.1

func (TagTemplateIamMemberMapOutput) ToTagTemplateIamMemberMapOutput

func (o TagTemplateIamMemberMapOutput) ToTagTemplateIamMemberMapOutput() TagTemplateIamMemberMapOutput

func (TagTemplateIamMemberMapOutput) ToTagTemplateIamMemberMapOutputWithContext

func (o TagTemplateIamMemberMapOutput) ToTagTemplateIamMemberMapOutputWithContext(ctx context.Context) TagTemplateIamMemberMapOutput

type TagTemplateIamMemberOutput

type TagTemplateIamMemberOutput struct{ *pulumi.OutputState }

func (TagTemplateIamMemberOutput) Condition added in v6.23.0

func (TagTemplateIamMemberOutput) ElementType

func (TagTemplateIamMemberOutput) ElementType() reflect.Type

func (TagTemplateIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TagTemplateIamMemberOutput) Member added in v6.23.0

func (TagTemplateIamMemberOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TagTemplateIamMemberOutput) Region added in v6.23.0

func (TagTemplateIamMemberOutput) Role added in v6.23.0

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

func (TagTemplateIamMemberOutput) TagTemplate added in v6.23.0

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

func (TagTemplateIamMemberOutput) ToOutput added in v6.65.1

func (TagTemplateIamMemberOutput) ToTagTemplateIamMemberOutput

func (o TagTemplateIamMemberOutput) ToTagTemplateIamMemberOutput() TagTemplateIamMemberOutput

func (TagTemplateIamMemberOutput) ToTagTemplateIamMemberOutputWithContext

func (o TagTemplateIamMemberOutput) ToTagTemplateIamMemberOutputWithContext(ctx context.Context) TagTemplateIamMemberOutput

type TagTemplateIamMemberState

type TagTemplateIamMemberState struct {
	Condition TagTemplateIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TagTemplateIamBinding` 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
	TagTemplate pulumi.StringPtrInput
}

func (TagTemplateIamMemberState) ElementType

func (TagTemplateIamMemberState) ElementType() reflect.Type

type TagTemplateIamPolicy

type TagTemplateIamPolicy 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"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// Used to find the parent resource to bind the IAM policy to
	TagTemplate pulumi.StringOutput `pulumi:"tagTemplate"`
}

Three different resources help you manage your IAM policy for Data catalog TagTemplate. Each of these resources serves a different use case:

* `datacatalog.TagTemplateIamPolicy`: Authoritative. Sets the IAM policy for the tagtemplate and replaces any existing policy already attached. * `datacatalog.TagTemplateIamBinding`: 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 tagtemplate are preserved. * `datacatalog.TagTemplateIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the tagtemplate are preserved.

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

* `datacatalog.TagTemplateIamPolicy`: Retrieves the IAM policy for the tagtemplate

> **Note:** `datacatalog.TagTemplateIamPolicy` **cannot** be used in conjunction with `datacatalog.TagTemplateIamBinding` and `datacatalog.TagTemplateIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_tag\_template\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewTagTemplateIamPolicy(ctx, "policy", &datacatalog.TagTemplateIamPolicyArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.Name),
			PolicyData:  *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_tag\_template\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTagTemplateIamBinding(ctx, "binding", &datacatalog.TagTemplateIamBindingArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.Name),
			Role:        pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_tag\_template\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTagTemplateIamMember(ctx, "member", &datacatalog.TagTemplateIamMemberArgs{
			TagTemplate: pulumi.Any(google_data_catalog_tag_template.Basic_tag_template.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* projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} * {{project}}/{{region}}/{{tag_template}} * {{region}}/{{tag_template}} * {{tag_template}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog tagtemplate IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamPolicy:TagTemplateIamPolicy editor "projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamPolicy:TagTemplateIamPolicy editor "projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/tagTemplateIamPolicy:TagTemplateIamPolicy editor projects/{{project}}/locations/{{region}}/tagTemplates/{{tag_template}}

```

-> **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 GetTagTemplateIamPolicy

func GetTagTemplateIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TagTemplateIamPolicyState, opts ...pulumi.ResourceOption) (*TagTemplateIamPolicy, error)

GetTagTemplateIamPolicy gets an existing TagTemplateIamPolicy 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 NewTagTemplateIamPolicy

func NewTagTemplateIamPolicy(ctx *pulumi.Context,
	name string, args *TagTemplateIamPolicyArgs, opts ...pulumi.ResourceOption) (*TagTemplateIamPolicy, error)

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

func (*TagTemplateIamPolicy) ElementType

func (*TagTemplateIamPolicy) ElementType() reflect.Type

func (*TagTemplateIamPolicy) ToOutput added in v6.65.1

func (*TagTemplateIamPolicy) ToTagTemplateIamPolicyOutput

func (i *TagTemplateIamPolicy) ToTagTemplateIamPolicyOutput() TagTemplateIamPolicyOutput

func (*TagTemplateIamPolicy) ToTagTemplateIamPolicyOutputWithContext

func (i *TagTemplateIamPolicy) ToTagTemplateIamPolicyOutputWithContext(ctx context.Context) TagTemplateIamPolicyOutput

type TagTemplateIamPolicyArgs

type TagTemplateIamPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagTemplate pulumi.StringInput
}

The set of arguments for constructing a TagTemplateIamPolicy resource.

func (TagTemplateIamPolicyArgs) ElementType

func (TagTemplateIamPolicyArgs) ElementType() reflect.Type

type TagTemplateIamPolicyArray

type TagTemplateIamPolicyArray []TagTemplateIamPolicyInput

func (TagTemplateIamPolicyArray) ElementType

func (TagTemplateIamPolicyArray) ElementType() reflect.Type

func (TagTemplateIamPolicyArray) ToOutput added in v6.65.1

func (TagTemplateIamPolicyArray) ToTagTemplateIamPolicyArrayOutput

func (i TagTemplateIamPolicyArray) ToTagTemplateIamPolicyArrayOutput() TagTemplateIamPolicyArrayOutput

func (TagTemplateIamPolicyArray) ToTagTemplateIamPolicyArrayOutputWithContext

func (i TagTemplateIamPolicyArray) ToTagTemplateIamPolicyArrayOutputWithContext(ctx context.Context) TagTemplateIamPolicyArrayOutput

type TagTemplateIamPolicyArrayInput

type TagTemplateIamPolicyArrayInput interface {
	pulumi.Input

	ToTagTemplateIamPolicyArrayOutput() TagTemplateIamPolicyArrayOutput
	ToTagTemplateIamPolicyArrayOutputWithContext(context.Context) TagTemplateIamPolicyArrayOutput
}

TagTemplateIamPolicyArrayInput is an input type that accepts TagTemplateIamPolicyArray and TagTemplateIamPolicyArrayOutput values. You can construct a concrete instance of `TagTemplateIamPolicyArrayInput` via:

TagTemplateIamPolicyArray{ TagTemplateIamPolicyArgs{...} }

type TagTemplateIamPolicyArrayOutput

type TagTemplateIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (TagTemplateIamPolicyArrayOutput) ElementType

func (TagTemplateIamPolicyArrayOutput) Index

func (TagTemplateIamPolicyArrayOutput) ToOutput added in v6.65.1

func (TagTemplateIamPolicyArrayOutput) ToTagTemplateIamPolicyArrayOutput

func (o TagTemplateIamPolicyArrayOutput) ToTagTemplateIamPolicyArrayOutput() TagTemplateIamPolicyArrayOutput

func (TagTemplateIamPolicyArrayOutput) ToTagTemplateIamPolicyArrayOutputWithContext

func (o TagTemplateIamPolicyArrayOutput) ToTagTemplateIamPolicyArrayOutputWithContext(ctx context.Context) TagTemplateIamPolicyArrayOutput

type TagTemplateIamPolicyInput

type TagTemplateIamPolicyInput interface {
	pulumi.Input

	ToTagTemplateIamPolicyOutput() TagTemplateIamPolicyOutput
	ToTagTemplateIamPolicyOutputWithContext(ctx context.Context) TagTemplateIamPolicyOutput
}

type TagTemplateIamPolicyMap

type TagTemplateIamPolicyMap map[string]TagTemplateIamPolicyInput

func (TagTemplateIamPolicyMap) ElementType

func (TagTemplateIamPolicyMap) ElementType() reflect.Type

func (TagTemplateIamPolicyMap) ToOutput added in v6.65.1

func (TagTemplateIamPolicyMap) ToTagTemplateIamPolicyMapOutput

func (i TagTemplateIamPolicyMap) ToTagTemplateIamPolicyMapOutput() TagTemplateIamPolicyMapOutput

func (TagTemplateIamPolicyMap) ToTagTemplateIamPolicyMapOutputWithContext

func (i TagTemplateIamPolicyMap) ToTagTemplateIamPolicyMapOutputWithContext(ctx context.Context) TagTemplateIamPolicyMapOutput

type TagTemplateIamPolicyMapInput

type TagTemplateIamPolicyMapInput interface {
	pulumi.Input

	ToTagTemplateIamPolicyMapOutput() TagTemplateIamPolicyMapOutput
	ToTagTemplateIamPolicyMapOutputWithContext(context.Context) TagTemplateIamPolicyMapOutput
}

TagTemplateIamPolicyMapInput is an input type that accepts TagTemplateIamPolicyMap and TagTemplateIamPolicyMapOutput values. You can construct a concrete instance of `TagTemplateIamPolicyMapInput` via:

TagTemplateIamPolicyMap{ "key": TagTemplateIamPolicyArgs{...} }

type TagTemplateIamPolicyMapOutput

type TagTemplateIamPolicyMapOutput struct{ *pulumi.OutputState }

func (TagTemplateIamPolicyMapOutput) ElementType

func (TagTemplateIamPolicyMapOutput) MapIndex

func (TagTemplateIamPolicyMapOutput) ToOutput added in v6.65.1

func (TagTemplateIamPolicyMapOutput) ToTagTemplateIamPolicyMapOutput

func (o TagTemplateIamPolicyMapOutput) ToTagTemplateIamPolicyMapOutput() TagTemplateIamPolicyMapOutput

func (TagTemplateIamPolicyMapOutput) ToTagTemplateIamPolicyMapOutputWithContext

func (o TagTemplateIamPolicyMapOutput) ToTagTemplateIamPolicyMapOutputWithContext(ctx context.Context) TagTemplateIamPolicyMapOutput

type TagTemplateIamPolicyOutput

type TagTemplateIamPolicyOutput struct{ *pulumi.OutputState }

func (TagTemplateIamPolicyOutput) ElementType

func (TagTemplateIamPolicyOutput) ElementType() reflect.Type

func (TagTemplateIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TagTemplateIamPolicyOutput) PolicyData added in v6.23.0

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

func (TagTemplateIamPolicyOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TagTemplateIamPolicyOutput) Region added in v6.23.0

func (TagTemplateIamPolicyOutput) TagTemplate added in v6.23.0

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

func (TagTemplateIamPolicyOutput) ToOutput added in v6.65.1

func (TagTemplateIamPolicyOutput) ToTagTemplateIamPolicyOutput

func (o TagTemplateIamPolicyOutput) ToTagTemplateIamPolicyOutput() TagTemplateIamPolicyOutput

func (TagTemplateIamPolicyOutput) ToTagTemplateIamPolicyOutputWithContext

func (o TagTemplateIamPolicyOutput) ToTagTemplateIamPolicyOutputWithContext(ctx context.Context) TagTemplateIamPolicyOutput

type TagTemplateIamPolicyState

type TagTemplateIamPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	TagTemplate pulumi.StringPtrInput
}

func (TagTemplateIamPolicyState) ElementType

func (TagTemplateIamPolicyState) ElementType() reflect.Type

type TagTemplateInput

type TagTemplateInput interface {
	pulumi.Input

	ToTagTemplateOutput() TagTemplateOutput
	ToTagTemplateOutputWithContext(ctx context.Context) TagTemplateOutput
}

type TagTemplateMap

type TagTemplateMap map[string]TagTemplateInput

func (TagTemplateMap) ElementType

func (TagTemplateMap) ElementType() reflect.Type

func (TagTemplateMap) ToOutput added in v6.65.1

func (TagTemplateMap) ToTagTemplateMapOutput

func (i TagTemplateMap) ToTagTemplateMapOutput() TagTemplateMapOutput

func (TagTemplateMap) ToTagTemplateMapOutputWithContext

func (i TagTemplateMap) ToTagTemplateMapOutputWithContext(ctx context.Context) TagTemplateMapOutput

type TagTemplateMapInput

type TagTemplateMapInput interface {
	pulumi.Input

	ToTagTemplateMapOutput() TagTemplateMapOutput
	ToTagTemplateMapOutputWithContext(context.Context) TagTemplateMapOutput
}

TagTemplateMapInput is an input type that accepts TagTemplateMap and TagTemplateMapOutput values. You can construct a concrete instance of `TagTemplateMapInput` via:

TagTemplateMap{ "key": TagTemplateArgs{...} }

type TagTemplateMapOutput

type TagTemplateMapOutput struct{ *pulumi.OutputState }

func (TagTemplateMapOutput) ElementType

func (TagTemplateMapOutput) ElementType() reflect.Type

func (TagTemplateMapOutput) MapIndex

func (TagTemplateMapOutput) ToOutput added in v6.65.1

func (TagTemplateMapOutput) ToTagTemplateMapOutput

func (o TagTemplateMapOutput) ToTagTemplateMapOutput() TagTemplateMapOutput

func (TagTemplateMapOutput) ToTagTemplateMapOutputWithContext

func (o TagTemplateMapOutput) ToTagTemplateMapOutputWithContext(ctx context.Context) TagTemplateMapOutput

type TagTemplateOutput

type TagTemplateOutput struct{ *pulumi.OutputState }

func (TagTemplateOutput) DisplayName added in v6.23.0

func (o TagTemplateOutput) DisplayName() pulumi.StringPtrOutput

The display name for this template.

func (TagTemplateOutput) ElementType

func (TagTemplateOutput) ElementType() reflect.Type

func (TagTemplateOutput) Fields added in v6.23.0

Set of tag template field IDs and the settings for the field. This set is an exhaustive list of the allowed fields. This set must contain at least one field and at most 500 fields. The change of fieldId will be resulting in re-creating of field. The change of primitiveType will be resulting in re-creating of field, however if the field is a required, you cannot update it. Structure is documented below.

func (TagTemplateOutput) ForceDelete added in v6.23.0

func (o TagTemplateOutput) ForceDelete() pulumi.BoolPtrOutput

This confirms the deletion of any possible tags using this template. Must be set to true in order to delete the tag template.

func (TagTemplateOutput) Name added in v6.23.0

(Output) The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}

func (TagTemplateOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (TagTemplateOutput) Region added in v6.23.0

Template location region.

func (TagTemplateOutput) TagTemplateId added in v6.23.0

func (o TagTemplateOutput) TagTemplateId() pulumi.StringOutput

The id of the tag template to create.

func (TagTemplateOutput) ToOutput added in v6.65.1

func (TagTemplateOutput) ToTagTemplateOutput

func (o TagTemplateOutput) ToTagTemplateOutput() TagTemplateOutput

func (TagTemplateOutput) ToTagTemplateOutputWithContext

func (o TagTemplateOutput) ToTagTemplateOutputWithContext(ctx context.Context) TagTemplateOutput

type TagTemplateState

type TagTemplateState struct {
	// The display name for this template.
	DisplayName pulumi.StringPtrInput
	// Set of tag template field IDs and the settings for the field. This set is an exhaustive list of the allowed fields. This set must contain at least one field and at most 500 fields. The change of fieldId will be resulting in re-creating of field. The change of primitiveType will be resulting in re-creating of field, however if the field is a required, you cannot update it.
	// Structure is documented below.
	Fields TagTemplateFieldArrayInput
	// This confirms the deletion of any possible tags using this template. Must be set to true in order to delete the tag template.
	ForceDelete pulumi.BoolPtrInput
	// (Output)
	// The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Template location region.
	Region pulumi.StringPtrInput
	// The id of the tag template to create.
	TagTemplateId pulumi.StringPtrInput
}

func (TagTemplateState) ElementType

func (TagTemplateState) ElementType() reflect.Type

type Taxonomy

type Taxonomy struct {
	pulumi.CustomResourceState

	// A list of policy types that are activated for this taxonomy. If not set,
	// defaults to an empty list.
	// Each value may be one of: `POLICY_TYPE_UNSPECIFIED`, `FINE_GRAINED_ACCESS_CONTROL`.
	ActivatedPolicyTypes pulumi.StringArrayOutput `pulumi:"activatedPolicyTypes"`
	// Description of this taxonomy. It must: contain only unicode characters,
	// tabs, newlines, carriage returns and page breaks; and be at most 2000 bytes
	// long when encoded in UTF-8. If not set, defaults to an empty description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// User defined name of this taxonomy.
	// It must: contain only unicode letters, numbers, underscores, dashes
	// and spaces; not start or end with spaces; and be at most 200 bytes
	// long when encoded in UTF-8.
	//
	// ***
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// Resource name of this taxonomy, whose format is:
	// "projects/{project}/locations/{region}/taxonomies/{taxonomy}".
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Taxonomy location region.
	Region pulumi.StringOutput `pulumi:"region"`
}

A collection of policy tags that classify data along a common axis.

To get more information about Taxonomy, see:

* [API documentation](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.taxonomies) * How-to Guides

## Example Usage ### Data Catalog Taxonomy Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTaxonomy(ctx, "basicTaxonomy", &datacatalog.TaxonomyArgs{
			ActivatedPolicyTypes: pulumi.StringArray{
				pulumi.String("FINE_GRAINED_ACCESS_CONTROL"),
			},
			Description: pulumi.String("A collection of policy tags"),
			DisplayName: pulumi.String("my_taxonomy"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Taxonomy can be imported using any of these accepted formats:

```sh

$ pulumi import gcp:datacatalog/taxonomy:Taxonomy default {{name}}

```

func GetTaxonomy

func GetTaxonomy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TaxonomyState, opts ...pulumi.ResourceOption) (*Taxonomy, error)

GetTaxonomy gets an existing Taxonomy 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 NewTaxonomy

func NewTaxonomy(ctx *pulumi.Context,
	name string, args *TaxonomyArgs, opts ...pulumi.ResourceOption) (*Taxonomy, error)

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

func (*Taxonomy) ElementType

func (*Taxonomy) ElementType() reflect.Type

func (*Taxonomy) ToOutput added in v6.65.1

func (i *Taxonomy) ToOutput(ctx context.Context) pulumix.Output[*Taxonomy]

func (*Taxonomy) ToTaxonomyOutput

func (i *Taxonomy) ToTaxonomyOutput() TaxonomyOutput

func (*Taxonomy) ToTaxonomyOutputWithContext

func (i *Taxonomy) ToTaxonomyOutputWithContext(ctx context.Context) TaxonomyOutput

type TaxonomyArgs

type TaxonomyArgs struct {
	// A list of policy types that are activated for this taxonomy. If not set,
	// defaults to an empty list.
	// Each value may be one of: `POLICY_TYPE_UNSPECIFIED`, `FINE_GRAINED_ACCESS_CONTROL`.
	ActivatedPolicyTypes pulumi.StringArrayInput
	// Description of this taxonomy. It must: contain only unicode characters,
	// tabs, newlines, carriage returns and page breaks; and be at most 2000 bytes
	// long when encoded in UTF-8. If not set, defaults to an empty description.
	Description pulumi.StringPtrInput
	// User defined name of this taxonomy.
	// It must: contain only unicode letters, numbers, underscores, dashes
	// and spaces; not start or end with spaces; and be at most 200 bytes
	// long when encoded in UTF-8.
	//
	// ***
	DisplayName pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Taxonomy location region.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a Taxonomy resource.

func (TaxonomyArgs) ElementType

func (TaxonomyArgs) ElementType() reflect.Type

type TaxonomyArray

type TaxonomyArray []TaxonomyInput

func (TaxonomyArray) ElementType

func (TaxonomyArray) ElementType() reflect.Type

func (TaxonomyArray) ToOutput added in v6.65.1

func (i TaxonomyArray) ToOutput(ctx context.Context) pulumix.Output[[]*Taxonomy]

func (TaxonomyArray) ToTaxonomyArrayOutput

func (i TaxonomyArray) ToTaxonomyArrayOutput() TaxonomyArrayOutput

func (TaxonomyArray) ToTaxonomyArrayOutputWithContext

func (i TaxonomyArray) ToTaxonomyArrayOutputWithContext(ctx context.Context) TaxonomyArrayOutput

type TaxonomyArrayInput

type TaxonomyArrayInput interface {
	pulumi.Input

	ToTaxonomyArrayOutput() TaxonomyArrayOutput
	ToTaxonomyArrayOutputWithContext(context.Context) TaxonomyArrayOutput
}

TaxonomyArrayInput is an input type that accepts TaxonomyArray and TaxonomyArrayOutput values. You can construct a concrete instance of `TaxonomyArrayInput` via:

TaxonomyArray{ TaxonomyArgs{...} }

type TaxonomyArrayOutput

type TaxonomyArrayOutput struct{ *pulumi.OutputState }

func (TaxonomyArrayOutput) ElementType

func (TaxonomyArrayOutput) ElementType() reflect.Type

func (TaxonomyArrayOutput) Index

func (TaxonomyArrayOutput) ToOutput added in v6.65.1

func (TaxonomyArrayOutput) ToTaxonomyArrayOutput

func (o TaxonomyArrayOutput) ToTaxonomyArrayOutput() TaxonomyArrayOutput

func (TaxonomyArrayOutput) ToTaxonomyArrayOutputWithContext

func (o TaxonomyArrayOutput) ToTaxonomyArrayOutputWithContext(ctx context.Context) TaxonomyArrayOutput

type TaxonomyIamBinding

type TaxonomyIamBinding struct {
	pulumi.CustomResourceState

	Condition TaxonomyIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `datacatalog.TaxonomyIamBinding` 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
	Taxonomy pulumi.StringOutput `pulumi:"taxonomy"`
}

Three different resources help you manage your IAM policy for Data catalog Taxonomy. Each of these resources serves a different use case:

* `datacatalog.TaxonomyIamPolicy`: Authoritative. Sets the IAM policy for the taxonomy and replaces any existing policy already attached. * `datacatalog.TaxonomyIamBinding`: 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 taxonomy are preserved. * `datacatalog.TaxonomyIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the taxonomy are preserved.

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

* `datacatalog.TaxonomyIamPolicy`: Retrieves the IAM policy for the taxonomy

> **Note:** `datacatalog.TaxonomyIamPolicy` **cannot** be used in conjunction with `datacatalog.TaxonomyIamBinding` and `datacatalog.TaxonomyIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_taxonomy\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewTaxonomyIamPolicy(ctx, "policy", &datacatalog.TaxonomyIamPolicyArgs{
			Taxonomy:   pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_taxonomy\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTaxonomyIamBinding(ctx, "binding", &datacatalog.TaxonomyIamBindingArgs{
			Taxonomy: pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_taxonomy\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTaxonomyIamMember(ctx, "member", &datacatalog.TaxonomyIamMemberArgs{
			Taxonomy: pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.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* projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} * {{project}}/{{region}}/{{taxonomy}} * {{region}}/{{taxonomy}} * {{taxonomy}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog taxonomy IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/taxonomyIamBinding:TaxonomyIamBinding editor "projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/taxonomyIamBinding:TaxonomyIamBinding editor "projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/taxonomyIamBinding:TaxonomyIamBinding editor projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}}

```

-> **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 GetTaxonomyIamBinding

func GetTaxonomyIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TaxonomyIamBindingState, opts ...pulumi.ResourceOption) (*TaxonomyIamBinding, error)

GetTaxonomyIamBinding gets an existing TaxonomyIamBinding 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 NewTaxonomyIamBinding

func NewTaxonomyIamBinding(ctx *pulumi.Context,
	name string, args *TaxonomyIamBindingArgs, opts ...pulumi.ResourceOption) (*TaxonomyIamBinding, error)

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

func (*TaxonomyIamBinding) ElementType

func (*TaxonomyIamBinding) ElementType() reflect.Type

func (*TaxonomyIamBinding) ToOutput added in v6.65.1

func (*TaxonomyIamBinding) ToTaxonomyIamBindingOutput

func (i *TaxonomyIamBinding) ToTaxonomyIamBindingOutput() TaxonomyIamBindingOutput

func (*TaxonomyIamBinding) ToTaxonomyIamBindingOutputWithContext

func (i *TaxonomyIamBinding) ToTaxonomyIamBindingOutputWithContext(ctx context.Context) TaxonomyIamBindingOutput

type TaxonomyIamBindingArgs

type TaxonomyIamBindingArgs struct {
	Condition TaxonomyIamBindingConditionPtrInput
	Members   pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TaxonomyIamBinding` 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
	Taxonomy pulumi.StringInput
}

The set of arguments for constructing a TaxonomyIamBinding resource.

func (TaxonomyIamBindingArgs) ElementType

func (TaxonomyIamBindingArgs) ElementType() reflect.Type

type TaxonomyIamBindingArray

type TaxonomyIamBindingArray []TaxonomyIamBindingInput

func (TaxonomyIamBindingArray) ElementType

func (TaxonomyIamBindingArray) ElementType() reflect.Type

func (TaxonomyIamBindingArray) ToOutput added in v6.65.1

func (TaxonomyIamBindingArray) ToTaxonomyIamBindingArrayOutput

func (i TaxonomyIamBindingArray) ToTaxonomyIamBindingArrayOutput() TaxonomyIamBindingArrayOutput

func (TaxonomyIamBindingArray) ToTaxonomyIamBindingArrayOutputWithContext

func (i TaxonomyIamBindingArray) ToTaxonomyIamBindingArrayOutputWithContext(ctx context.Context) TaxonomyIamBindingArrayOutput

type TaxonomyIamBindingArrayInput

type TaxonomyIamBindingArrayInput interface {
	pulumi.Input

	ToTaxonomyIamBindingArrayOutput() TaxonomyIamBindingArrayOutput
	ToTaxonomyIamBindingArrayOutputWithContext(context.Context) TaxonomyIamBindingArrayOutput
}

TaxonomyIamBindingArrayInput is an input type that accepts TaxonomyIamBindingArray and TaxonomyIamBindingArrayOutput values. You can construct a concrete instance of `TaxonomyIamBindingArrayInput` via:

TaxonomyIamBindingArray{ TaxonomyIamBindingArgs{...} }

type TaxonomyIamBindingArrayOutput

type TaxonomyIamBindingArrayOutput struct{ *pulumi.OutputState }

func (TaxonomyIamBindingArrayOutput) ElementType

func (TaxonomyIamBindingArrayOutput) Index

func (TaxonomyIamBindingArrayOutput) ToOutput added in v6.65.1

func (TaxonomyIamBindingArrayOutput) ToTaxonomyIamBindingArrayOutput

func (o TaxonomyIamBindingArrayOutput) ToTaxonomyIamBindingArrayOutput() TaxonomyIamBindingArrayOutput

func (TaxonomyIamBindingArrayOutput) ToTaxonomyIamBindingArrayOutputWithContext

func (o TaxonomyIamBindingArrayOutput) ToTaxonomyIamBindingArrayOutputWithContext(ctx context.Context) TaxonomyIamBindingArrayOutput

type TaxonomyIamBindingCondition

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

type TaxonomyIamBindingConditionArgs

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

func (TaxonomyIamBindingConditionArgs) ElementType

func (TaxonomyIamBindingConditionArgs) ToOutput added in v6.65.1

func (TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionOutput

func (i TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionOutput() TaxonomyIamBindingConditionOutput

func (TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionOutputWithContext

func (i TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionOutputWithContext(ctx context.Context) TaxonomyIamBindingConditionOutput

func (TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionPtrOutput

func (i TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionPtrOutput() TaxonomyIamBindingConditionPtrOutput

func (TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionPtrOutputWithContext

func (i TaxonomyIamBindingConditionArgs) ToTaxonomyIamBindingConditionPtrOutputWithContext(ctx context.Context) TaxonomyIamBindingConditionPtrOutput

type TaxonomyIamBindingConditionInput

type TaxonomyIamBindingConditionInput interface {
	pulumi.Input

	ToTaxonomyIamBindingConditionOutput() TaxonomyIamBindingConditionOutput
	ToTaxonomyIamBindingConditionOutputWithContext(context.Context) TaxonomyIamBindingConditionOutput
}

TaxonomyIamBindingConditionInput is an input type that accepts TaxonomyIamBindingConditionArgs and TaxonomyIamBindingConditionOutput values. You can construct a concrete instance of `TaxonomyIamBindingConditionInput` via:

TaxonomyIamBindingConditionArgs{...}

type TaxonomyIamBindingConditionOutput

type TaxonomyIamBindingConditionOutput struct{ *pulumi.OutputState }

func (TaxonomyIamBindingConditionOutput) Description

func (TaxonomyIamBindingConditionOutput) ElementType

func (TaxonomyIamBindingConditionOutput) Expression

func (TaxonomyIamBindingConditionOutput) Title

func (TaxonomyIamBindingConditionOutput) ToOutput added in v6.65.1

func (TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionOutput

func (o TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionOutput() TaxonomyIamBindingConditionOutput

func (TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionOutputWithContext

func (o TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionOutputWithContext(ctx context.Context) TaxonomyIamBindingConditionOutput

func (TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionPtrOutput

func (o TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionPtrOutput() TaxonomyIamBindingConditionPtrOutput

func (TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionPtrOutputWithContext

func (o TaxonomyIamBindingConditionOutput) ToTaxonomyIamBindingConditionPtrOutputWithContext(ctx context.Context) TaxonomyIamBindingConditionPtrOutput

type TaxonomyIamBindingConditionPtrInput

type TaxonomyIamBindingConditionPtrInput interface {
	pulumi.Input

	ToTaxonomyIamBindingConditionPtrOutput() TaxonomyIamBindingConditionPtrOutput
	ToTaxonomyIamBindingConditionPtrOutputWithContext(context.Context) TaxonomyIamBindingConditionPtrOutput
}

TaxonomyIamBindingConditionPtrInput is an input type that accepts TaxonomyIamBindingConditionArgs, TaxonomyIamBindingConditionPtr and TaxonomyIamBindingConditionPtrOutput values. You can construct a concrete instance of `TaxonomyIamBindingConditionPtrInput` via:

        TaxonomyIamBindingConditionArgs{...}

or:

        nil

type TaxonomyIamBindingConditionPtrOutput

type TaxonomyIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (TaxonomyIamBindingConditionPtrOutput) Description

func (TaxonomyIamBindingConditionPtrOutput) Elem

func (TaxonomyIamBindingConditionPtrOutput) ElementType

func (TaxonomyIamBindingConditionPtrOutput) Expression

func (TaxonomyIamBindingConditionPtrOutput) Title

func (TaxonomyIamBindingConditionPtrOutput) ToOutput added in v6.65.1

func (TaxonomyIamBindingConditionPtrOutput) ToTaxonomyIamBindingConditionPtrOutput

func (o TaxonomyIamBindingConditionPtrOutput) ToTaxonomyIamBindingConditionPtrOutput() TaxonomyIamBindingConditionPtrOutput

func (TaxonomyIamBindingConditionPtrOutput) ToTaxonomyIamBindingConditionPtrOutputWithContext

func (o TaxonomyIamBindingConditionPtrOutput) ToTaxonomyIamBindingConditionPtrOutputWithContext(ctx context.Context) TaxonomyIamBindingConditionPtrOutput

type TaxonomyIamBindingInput

type TaxonomyIamBindingInput interface {
	pulumi.Input

	ToTaxonomyIamBindingOutput() TaxonomyIamBindingOutput
	ToTaxonomyIamBindingOutputWithContext(ctx context.Context) TaxonomyIamBindingOutput
}

type TaxonomyIamBindingMap

type TaxonomyIamBindingMap map[string]TaxonomyIamBindingInput

func (TaxonomyIamBindingMap) ElementType

func (TaxonomyIamBindingMap) ElementType() reflect.Type

func (TaxonomyIamBindingMap) ToOutput added in v6.65.1

func (TaxonomyIamBindingMap) ToTaxonomyIamBindingMapOutput

func (i TaxonomyIamBindingMap) ToTaxonomyIamBindingMapOutput() TaxonomyIamBindingMapOutput

func (TaxonomyIamBindingMap) ToTaxonomyIamBindingMapOutputWithContext

func (i TaxonomyIamBindingMap) ToTaxonomyIamBindingMapOutputWithContext(ctx context.Context) TaxonomyIamBindingMapOutput

type TaxonomyIamBindingMapInput

type TaxonomyIamBindingMapInput interface {
	pulumi.Input

	ToTaxonomyIamBindingMapOutput() TaxonomyIamBindingMapOutput
	ToTaxonomyIamBindingMapOutputWithContext(context.Context) TaxonomyIamBindingMapOutput
}

TaxonomyIamBindingMapInput is an input type that accepts TaxonomyIamBindingMap and TaxonomyIamBindingMapOutput values. You can construct a concrete instance of `TaxonomyIamBindingMapInput` via:

TaxonomyIamBindingMap{ "key": TaxonomyIamBindingArgs{...} }

type TaxonomyIamBindingMapOutput

type TaxonomyIamBindingMapOutput struct{ *pulumi.OutputState }

func (TaxonomyIamBindingMapOutput) ElementType

func (TaxonomyIamBindingMapOutput) MapIndex

func (TaxonomyIamBindingMapOutput) ToOutput added in v6.65.1

func (TaxonomyIamBindingMapOutput) ToTaxonomyIamBindingMapOutput

func (o TaxonomyIamBindingMapOutput) ToTaxonomyIamBindingMapOutput() TaxonomyIamBindingMapOutput

func (TaxonomyIamBindingMapOutput) ToTaxonomyIamBindingMapOutputWithContext

func (o TaxonomyIamBindingMapOutput) ToTaxonomyIamBindingMapOutputWithContext(ctx context.Context) TaxonomyIamBindingMapOutput

type TaxonomyIamBindingOutput

type TaxonomyIamBindingOutput struct{ *pulumi.OutputState }

func (TaxonomyIamBindingOutput) Condition added in v6.23.0

func (TaxonomyIamBindingOutput) ElementType

func (TaxonomyIamBindingOutput) ElementType() reflect.Type

func (TaxonomyIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TaxonomyIamBindingOutput) Members added in v6.23.0

func (TaxonomyIamBindingOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TaxonomyIamBindingOutput) Region added in v6.23.0

func (TaxonomyIamBindingOutput) Role added in v6.23.0

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

func (TaxonomyIamBindingOutput) Taxonomy added in v6.23.0

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

func (TaxonomyIamBindingOutput) ToOutput added in v6.65.1

func (TaxonomyIamBindingOutput) ToTaxonomyIamBindingOutput

func (o TaxonomyIamBindingOutput) ToTaxonomyIamBindingOutput() TaxonomyIamBindingOutput

func (TaxonomyIamBindingOutput) ToTaxonomyIamBindingOutputWithContext

func (o TaxonomyIamBindingOutput) ToTaxonomyIamBindingOutputWithContext(ctx context.Context) TaxonomyIamBindingOutput

type TaxonomyIamBindingState

type TaxonomyIamBindingState struct {
	Condition TaxonomyIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TaxonomyIamBinding` 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
	Taxonomy pulumi.StringPtrInput
}

func (TaxonomyIamBindingState) ElementType

func (TaxonomyIamBindingState) ElementType() reflect.Type

type TaxonomyIamMember

type TaxonomyIamMember struct {
	pulumi.CustomResourceState

	Condition TaxonomyIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `datacatalog.TaxonomyIamBinding` 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
	Taxonomy pulumi.StringOutput `pulumi:"taxonomy"`
}

Three different resources help you manage your IAM policy for Data catalog Taxonomy. Each of these resources serves a different use case:

* `datacatalog.TaxonomyIamPolicy`: Authoritative. Sets the IAM policy for the taxonomy and replaces any existing policy already attached. * `datacatalog.TaxonomyIamBinding`: 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 taxonomy are preserved. * `datacatalog.TaxonomyIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the taxonomy are preserved.

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

* `datacatalog.TaxonomyIamPolicy`: Retrieves the IAM policy for the taxonomy

> **Note:** `datacatalog.TaxonomyIamPolicy` **cannot** be used in conjunction with `datacatalog.TaxonomyIamBinding` and `datacatalog.TaxonomyIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_taxonomy\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewTaxonomyIamPolicy(ctx, "policy", &datacatalog.TaxonomyIamPolicyArgs{
			Taxonomy:   pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_taxonomy\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTaxonomyIamBinding(ctx, "binding", &datacatalog.TaxonomyIamBindingArgs{
			Taxonomy: pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_taxonomy\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTaxonomyIamMember(ctx, "member", &datacatalog.TaxonomyIamMemberArgs{
			Taxonomy: pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.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* projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} * {{project}}/{{region}}/{{taxonomy}} * {{region}}/{{taxonomy}} * {{taxonomy}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog taxonomy IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/taxonomyIamMember:TaxonomyIamMember editor "projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/taxonomyIamMember:TaxonomyIamMember editor "projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/taxonomyIamMember:TaxonomyIamMember editor projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}}

```

-> **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 GetTaxonomyIamMember

func GetTaxonomyIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TaxonomyIamMemberState, opts ...pulumi.ResourceOption) (*TaxonomyIamMember, error)

GetTaxonomyIamMember gets an existing TaxonomyIamMember 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 NewTaxonomyIamMember

func NewTaxonomyIamMember(ctx *pulumi.Context,
	name string, args *TaxonomyIamMemberArgs, opts ...pulumi.ResourceOption) (*TaxonomyIamMember, error)

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

func (*TaxonomyIamMember) ElementType

func (*TaxonomyIamMember) ElementType() reflect.Type

func (*TaxonomyIamMember) ToOutput added in v6.65.1

func (*TaxonomyIamMember) ToTaxonomyIamMemberOutput

func (i *TaxonomyIamMember) ToTaxonomyIamMemberOutput() TaxonomyIamMemberOutput

func (*TaxonomyIamMember) ToTaxonomyIamMemberOutputWithContext

func (i *TaxonomyIamMember) ToTaxonomyIamMemberOutputWithContext(ctx context.Context) TaxonomyIamMemberOutput

type TaxonomyIamMemberArgs

type TaxonomyIamMemberArgs struct {
	Condition TaxonomyIamMemberConditionPtrInput
	Member    pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TaxonomyIamBinding` 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
	Taxonomy pulumi.StringInput
}

The set of arguments for constructing a TaxonomyIamMember resource.

func (TaxonomyIamMemberArgs) ElementType

func (TaxonomyIamMemberArgs) ElementType() reflect.Type

type TaxonomyIamMemberArray

type TaxonomyIamMemberArray []TaxonomyIamMemberInput

func (TaxonomyIamMemberArray) ElementType

func (TaxonomyIamMemberArray) ElementType() reflect.Type

func (TaxonomyIamMemberArray) ToOutput added in v6.65.1

func (TaxonomyIamMemberArray) ToTaxonomyIamMemberArrayOutput

func (i TaxonomyIamMemberArray) ToTaxonomyIamMemberArrayOutput() TaxonomyIamMemberArrayOutput

func (TaxonomyIamMemberArray) ToTaxonomyIamMemberArrayOutputWithContext

func (i TaxonomyIamMemberArray) ToTaxonomyIamMemberArrayOutputWithContext(ctx context.Context) TaxonomyIamMemberArrayOutput

type TaxonomyIamMemberArrayInput

type TaxonomyIamMemberArrayInput interface {
	pulumi.Input

	ToTaxonomyIamMemberArrayOutput() TaxonomyIamMemberArrayOutput
	ToTaxonomyIamMemberArrayOutputWithContext(context.Context) TaxonomyIamMemberArrayOutput
}

TaxonomyIamMemberArrayInput is an input type that accepts TaxonomyIamMemberArray and TaxonomyIamMemberArrayOutput values. You can construct a concrete instance of `TaxonomyIamMemberArrayInput` via:

TaxonomyIamMemberArray{ TaxonomyIamMemberArgs{...} }

type TaxonomyIamMemberArrayOutput

type TaxonomyIamMemberArrayOutput struct{ *pulumi.OutputState }

func (TaxonomyIamMemberArrayOutput) ElementType

func (TaxonomyIamMemberArrayOutput) Index

func (TaxonomyIamMemberArrayOutput) ToOutput added in v6.65.1

func (TaxonomyIamMemberArrayOutput) ToTaxonomyIamMemberArrayOutput

func (o TaxonomyIamMemberArrayOutput) ToTaxonomyIamMemberArrayOutput() TaxonomyIamMemberArrayOutput

func (TaxonomyIamMemberArrayOutput) ToTaxonomyIamMemberArrayOutputWithContext

func (o TaxonomyIamMemberArrayOutput) ToTaxonomyIamMemberArrayOutputWithContext(ctx context.Context) TaxonomyIamMemberArrayOutput

type TaxonomyIamMemberCondition

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

type TaxonomyIamMemberConditionArgs

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

func (TaxonomyIamMemberConditionArgs) ElementType

func (TaxonomyIamMemberConditionArgs) ToOutput added in v6.65.1

func (TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionOutput

func (i TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionOutput() TaxonomyIamMemberConditionOutput

func (TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionOutputWithContext

func (i TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionOutputWithContext(ctx context.Context) TaxonomyIamMemberConditionOutput

func (TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionPtrOutput

func (i TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionPtrOutput() TaxonomyIamMemberConditionPtrOutput

func (TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionPtrOutputWithContext

func (i TaxonomyIamMemberConditionArgs) ToTaxonomyIamMemberConditionPtrOutputWithContext(ctx context.Context) TaxonomyIamMemberConditionPtrOutput

type TaxonomyIamMemberConditionInput

type TaxonomyIamMemberConditionInput interface {
	pulumi.Input

	ToTaxonomyIamMemberConditionOutput() TaxonomyIamMemberConditionOutput
	ToTaxonomyIamMemberConditionOutputWithContext(context.Context) TaxonomyIamMemberConditionOutput
}

TaxonomyIamMemberConditionInput is an input type that accepts TaxonomyIamMemberConditionArgs and TaxonomyIamMemberConditionOutput values. You can construct a concrete instance of `TaxonomyIamMemberConditionInput` via:

TaxonomyIamMemberConditionArgs{...}

type TaxonomyIamMemberConditionOutput

type TaxonomyIamMemberConditionOutput struct{ *pulumi.OutputState }

func (TaxonomyIamMemberConditionOutput) Description

func (TaxonomyIamMemberConditionOutput) ElementType

func (TaxonomyIamMemberConditionOutput) Expression

func (TaxonomyIamMemberConditionOutput) Title

func (TaxonomyIamMemberConditionOutput) ToOutput added in v6.65.1

func (TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionOutput

func (o TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionOutput() TaxonomyIamMemberConditionOutput

func (TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionOutputWithContext

func (o TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionOutputWithContext(ctx context.Context) TaxonomyIamMemberConditionOutput

func (TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionPtrOutput

func (o TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionPtrOutput() TaxonomyIamMemberConditionPtrOutput

func (TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionPtrOutputWithContext

func (o TaxonomyIamMemberConditionOutput) ToTaxonomyIamMemberConditionPtrOutputWithContext(ctx context.Context) TaxonomyIamMemberConditionPtrOutput

type TaxonomyIamMemberConditionPtrInput

type TaxonomyIamMemberConditionPtrInput interface {
	pulumi.Input

	ToTaxonomyIamMemberConditionPtrOutput() TaxonomyIamMemberConditionPtrOutput
	ToTaxonomyIamMemberConditionPtrOutputWithContext(context.Context) TaxonomyIamMemberConditionPtrOutput
}

TaxonomyIamMemberConditionPtrInput is an input type that accepts TaxonomyIamMemberConditionArgs, TaxonomyIamMemberConditionPtr and TaxonomyIamMemberConditionPtrOutput values. You can construct a concrete instance of `TaxonomyIamMemberConditionPtrInput` via:

        TaxonomyIamMemberConditionArgs{...}

or:

        nil

type TaxonomyIamMemberConditionPtrOutput

type TaxonomyIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (TaxonomyIamMemberConditionPtrOutput) Description

func (TaxonomyIamMemberConditionPtrOutput) Elem

func (TaxonomyIamMemberConditionPtrOutput) ElementType

func (TaxonomyIamMemberConditionPtrOutput) Expression

func (TaxonomyIamMemberConditionPtrOutput) Title

func (TaxonomyIamMemberConditionPtrOutput) ToOutput added in v6.65.1

func (TaxonomyIamMemberConditionPtrOutput) ToTaxonomyIamMemberConditionPtrOutput

func (o TaxonomyIamMemberConditionPtrOutput) ToTaxonomyIamMemberConditionPtrOutput() TaxonomyIamMemberConditionPtrOutput

func (TaxonomyIamMemberConditionPtrOutput) ToTaxonomyIamMemberConditionPtrOutputWithContext

func (o TaxonomyIamMemberConditionPtrOutput) ToTaxonomyIamMemberConditionPtrOutputWithContext(ctx context.Context) TaxonomyIamMemberConditionPtrOutput

type TaxonomyIamMemberInput

type TaxonomyIamMemberInput interface {
	pulumi.Input

	ToTaxonomyIamMemberOutput() TaxonomyIamMemberOutput
	ToTaxonomyIamMemberOutputWithContext(ctx context.Context) TaxonomyIamMemberOutput
}

type TaxonomyIamMemberMap

type TaxonomyIamMemberMap map[string]TaxonomyIamMemberInput

func (TaxonomyIamMemberMap) ElementType

func (TaxonomyIamMemberMap) ElementType() reflect.Type

func (TaxonomyIamMemberMap) ToOutput added in v6.65.1

func (TaxonomyIamMemberMap) ToTaxonomyIamMemberMapOutput

func (i TaxonomyIamMemberMap) ToTaxonomyIamMemberMapOutput() TaxonomyIamMemberMapOutput

func (TaxonomyIamMemberMap) ToTaxonomyIamMemberMapOutputWithContext

func (i TaxonomyIamMemberMap) ToTaxonomyIamMemberMapOutputWithContext(ctx context.Context) TaxonomyIamMemberMapOutput

type TaxonomyIamMemberMapInput

type TaxonomyIamMemberMapInput interface {
	pulumi.Input

	ToTaxonomyIamMemberMapOutput() TaxonomyIamMemberMapOutput
	ToTaxonomyIamMemberMapOutputWithContext(context.Context) TaxonomyIamMemberMapOutput
}

TaxonomyIamMemberMapInput is an input type that accepts TaxonomyIamMemberMap and TaxonomyIamMemberMapOutput values. You can construct a concrete instance of `TaxonomyIamMemberMapInput` via:

TaxonomyIamMemberMap{ "key": TaxonomyIamMemberArgs{...} }

type TaxonomyIamMemberMapOutput

type TaxonomyIamMemberMapOutput struct{ *pulumi.OutputState }

func (TaxonomyIamMemberMapOutput) ElementType

func (TaxonomyIamMemberMapOutput) ElementType() reflect.Type

func (TaxonomyIamMemberMapOutput) MapIndex

func (TaxonomyIamMemberMapOutput) ToOutput added in v6.65.1

func (TaxonomyIamMemberMapOutput) ToTaxonomyIamMemberMapOutput

func (o TaxonomyIamMemberMapOutput) ToTaxonomyIamMemberMapOutput() TaxonomyIamMemberMapOutput

func (TaxonomyIamMemberMapOutput) ToTaxonomyIamMemberMapOutputWithContext

func (o TaxonomyIamMemberMapOutput) ToTaxonomyIamMemberMapOutputWithContext(ctx context.Context) TaxonomyIamMemberMapOutput

type TaxonomyIamMemberOutput

type TaxonomyIamMemberOutput struct{ *pulumi.OutputState }

func (TaxonomyIamMemberOutput) Condition added in v6.23.0

func (TaxonomyIamMemberOutput) ElementType

func (TaxonomyIamMemberOutput) ElementType() reflect.Type

func (TaxonomyIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TaxonomyIamMemberOutput) Member added in v6.23.0

func (TaxonomyIamMemberOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TaxonomyIamMemberOutput) Region added in v6.23.0

func (TaxonomyIamMemberOutput) Role added in v6.23.0

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

func (TaxonomyIamMemberOutput) Taxonomy added in v6.23.0

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

func (TaxonomyIamMemberOutput) ToOutput added in v6.65.1

func (TaxonomyIamMemberOutput) ToTaxonomyIamMemberOutput

func (o TaxonomyIamMemberOutput) ToTaxonomyIamMemberOutput() TaxonomyIamMemberOutput

func (TaxonomyIamMemberOutput) ToTaxonomyIamMemberOutputWithContext

func (o TaxonomyIamMemberOutput) ToTaxonomyIamMemberOutputWithContext(ctx context.Context) TaxonomyIamMemberOutput

type TaxonomyIamMemberState

type TaxonomyIamMemberState struct {
	Condition TaxonomyIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `datacatalog.TaxonomyIamBinding` 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
	Taxonomy pulumi.StringPtrInput
}

func (TaxonomyIamMemberState) ElementType

func (TaxonomyIamMemberState) ElementType() reflect.Type

type TaxonomyIamPolicy

type TaxonomyIamPolicy 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"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	Region  pulumi.StringOutput `pulumi:"region"`
	// Used to find the parent resource to bind the IAM policy to
	Taxonomy pulumi.StringOutput `pulumi:"taxonomy"`
}

Three different resources help you manage your IAM policy for Data catalog Taxonomy. Each of these resources serves a different use case:

* `datacatalog.TaxonomyIamPolicy`: Authoritative. Sets the IAM policy for the taxonomy and replaces any existing policy already attached. * `datacatalog.TaxonomyIamBinding`: 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 taxonomy are preserved. * `datacatalog.TaxonomyIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the taxonomy are preserved.

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

* `datacatalog.TaxonomyIamPolicy`: Retrieves the IAM policy for the taxonomy

> **Note:** `datacatalog.TaxonomyIamPolicy` **cannot** be used in conjunction with `datacatalog.TaxonomyIamBinding` and `datacatalog.TaxonomyIamMember` or they will fight over what your policy should be.

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

## google\_data\_catalog\_taxonomy\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"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 = datacatalog.NewTaxonomyIamPolicy(ctx, "policy", &datacatalog.TaxonomyIamPolicyArgs{
			Taxonomy:   pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_taxonomy\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTaxonomyIamBinding(ctx, "binding", &datacatalog.TaxonomyIamBindingArgs{
			Taxonomy: pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.Name),
			Role:     pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_data\_catalog\_taxonomy\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datacatalog.NewTaxonomyIamMember(ctx, "member", &datacatalog.TaxonomyIamMemberArgs{
			Taxonomy: pulumi.Any(google_data_catalog_taxonomy.Basic_taxonomy.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* projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} * {{project}}/{{region}}/{{taxonomy}} * {{region}}/{{taxonomy}} * {{taxonomy}} Any variables not passed in the import command will be taken from the provider configuration. Data catalog taxonomy IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:datacatalog/taxonomyIamPolicy:TaxonomyIamPolicy editor "projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:datacatalog/taxonomyIamPolicy:TaxonomyIamPolicy editor "projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}} roles/viewer"

```

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

```sh

$ pulumi import gcp:datacatalog/taxonomyIamPolicy:TaxonomyIamPolicy editor projects/{{project}}/locations/{{region}}/taxonomies/{{taxonomy}}

```

-> **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 GetTaxonomyIamPolicy

func GetTaxonomyIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TaxonomyIamPolicyState, opts ...pulumi.ResourceOption) (*TaxonomyIamPolicy, error)

GetTaxonomyIamPolicy gets an existing TaxonomyIamPolicy 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 NewTaxonomyIamPolicy

func NewTaxonomyIamPolicy(ctx *pulumi.Context,
	name string, args *TaxonomyIamPolicyArgs, opts ...pulumi.ResourceOption) (*TaxonomyIamPolicy, error)

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

func (*TaxonomyIamPolicy) ElementType

func (*TaxonomyIamPolicy) ElementType() reflect.Type

func (*TaxonomyIamPolicy) ToOutput added in v6.65.1

func (*TaxonomyIamPolicy) ToTaxonomyIamPolicyOutput

func (i *TaxonomyIamPolicy) ToTaxonomyIamPolicyOutput() TaxonomyIamPolicyOutput

func (*TaxonomyIamPolicy) ToTaxonomyIamPolicyOutputWithContext

func (i *TaxonomyIamPolicy) ToTaxonomyIamPolicyOutputWithContext(ctx context.Context) TaxonomyIamPolicyOutput

type TaxonomyIamPolicyArgs

type TaxonomyIamPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Taxonomy pulumi.StringInput
}

The set of arguments for constructing a TaxonomyIamPolicy resource.

func (TaxonomyIamPolicyArgs) ElementType

func (TaxonomyIamPolicyArgs) ElementType() reflect.Type

type TaxonomyIamPolicyArray

type TaxonomyIamPolicyArray []TaxonomyIamPolicyInput

func (TaxonomyIamPolicyArray) ElementType

func (TaxonomyIamPolicyArray) ElementType() reflect.Type

func (TaxonomyIamPolicyArray) ToOutput added in v6.65.1

func (TaxonomyIamPolicyArray) ToTaxonomyIamPolicyArrayOutput

func (i TaxonomyIamPolicyArray) ToTaxonomyIamPolicyArrayOutput() TaxonomyIamPolicyArrayOutput

func (TaxonomyIamPolicyArray) ToTaxonomyIamPolicyArrayOutputWithContext

func (i TaxonomyIamPolicyArray) ToTaxonomyIamPolicyArrayOutputWithContext(ctx context.Context) TaxonomyIamPolicyArrayOutput

type TaxonomyIamPolicyArrayInput

type TaxonomyIamPolicyArrayInput interface {
	pulumi.Input

	ToTaxonomyIamPolicyArrayOutput() TaxonomyIamPolicyArrayOutput
	ToTaxonomyIamPolicyArrayOutputWithContext(context.Context) TaxonomyIamPolicyArrayOutput
}

TaxonomyIamPolicyArrayInput is an input type that accepts TaxonomyIamPolicyArray and TaxonomyIamPolicyArrayOutput values. You can construct a concrete instance of `TaxonomyIamPolicyArrayInput` via:

TaxonomyIamPolicyArray{ TaxonomyIamPolicyArgs{...} }

type TaxonomyIamPolicyArrayOutput

type TaxonomyIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (TaxonomyIamPolicyArrayOutput) ElementType

func (TaxonomyIamPolicyArrayOutput) Index

func (TaxonomyIamPolicyArrayOutput) ToOutput added in v6.65.1

func (TaxonomyIamPolicyArrayOutput) ToTaxonomyIamPolicyArrayOutput

func (o TaxonomyIamPolicyArrayOutput) ToTaxonomyIamPolicyArrayOutput() TaxonomyIamPolicyArrayOutput

func (TaxonomyIamPolicyArrayOutput) ToTaxonomyIamPolicyArrayOutputWithContext

func (o TaxonomyIamPolicyArrayOutput) ToTaxonomyIamPolicyArrayOutputWithContext(ctx context.Context) TaxonomyIamPolicyArrayOutput

type TaxonomyIamPolicyInput

type TaxonomyIamPolicyInput interface {
	pulumi.Input

	ToTaxonomyIamPolicyOutput() TaxonomyIamPolicyOutput
	ToTaxonomyIamPolicyOutputWithContext(ctx context.Context) TaxonomyIamPolicyOutput
}

type TaxonomyIamPolicyMap

type TaxonomyIamPolicyMap map[string]TaxonomyIamPolicyInput

func (TaxonomyIamPolicyMap) ElementType

func (TaxonomyIamPolicyMap) ElementType() reflect.Type

func (TaxonomyIamPolicyMap) ToOutput added in v6.65.1

func (TaxonomyIamPolicyMap) ToTaxonomyIamPolicyMapOutput

func (i TaxonomyIamPolicyMap) ToTaxonomyIamPolicyMapOutput() TaxonomyIamPolicyMapOutput

func (TaxonomyIamPolicyMap) ToTaxonomyIamPolicyMapOutputWithContext

func (i TaxonomyIamPolicyMap) ToTaxonomyIamPolicyMapOutputWithContext(ctx context.Context) TaxonomyIamPolicyMapOutput

type TaxonomyIamPolicyMapInput

type TaxonomyIamPolicyMapInput interface {
	pulumi.Input

	ToTaxonomyIamPolicyMapOutput() TaxonomyIamPolicyMapOutput
	ToTaxonomyIamPolicyMapOutputWithContext(context.Context) TaxonomyIamPolicyMapOutput
}

TaxonomyIamPolicyMapInput is an input type that accepts TaxonomyIamPolicyMap and TaxonomyIamPolicyMapOutput values. You can construct a concrete instance of `TaxonomyIamPolicyMapInput` via:

TaxonomyIamPolicyMap{ "key": TaxonomyIamPolicyArgs{...} }

type TaxonomyIamPolicyMapOutput

type TaxonomyIamPolicyMapOutput struct{ *pulumi.OutputState }

func (TaxonomyIamPolicyMapOutput) ElementType

func (TaxonomyIamPolicyMapOutput) ElementType() reflect.Type

func (TaxonomyIamPolicyMapOutput) MapIndex

func (TaxonomyIamPolicyMapOutput) ToOutput added in v6.65.1

func (TaxonomyIamPolicyMapOutput) ToTaxonomyIamPolicyMapOutput

func (o TaxonomyIamPolicyMapOutput) ToTaxonomyIamPolicyMapOutput() TaxonomyIamPolicyMapOutput

func (TaxonomyIamPolicyMapOutput) ToTaxonomyIamPolicyMapOutputWithContext

func (o TaxonomyIamPolicyMapOutput) ToTaxonomyIamPolicyMapOutputWithContext(ctx context.Context) TaxonomyIamPolicyMapOutput

type TaxonomyIamPolicyOutput

type TaxonomyIamPolicyOutput struct{ *pulumi.OutputState }

func (TaxonomyIamPolicyOutput) ElementType

func (TaxonomyIamPolicyOutput) ElementType() reflect.Type

func (TaxonomyIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TaxonomyIamPolicyOutput) PolicyData added in v6.23.0

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

func (TaxonomyIamPolicyOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TaxonomyIamPolicyOutput) Region added in v6.23.0

func (TaxonomyIamPolicyOutput) Taxonomy added in v6.23.0

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

func (TaxonomyIamPolicyOutput) ToOutput added in v6.65.1

func (TaxonomyIamPolicyOutput) ToTaxonomyIamPolicyOutput

func (o TaxonomyIamPolicyOutput) ToTaxonomyIamPolicyOutput() TaxonomyIamPolicyOutput

func (TaxonomyIamPolicyOutput) ToTaxonomyIamPolicyOutputWithContext

func (o TaxonomyIamPolicyOutput) ToTaxonomyIamPolicyOutputWithContext(ctx context.Context) TaxonomyIamPolicyOutput

type TaxonomyIamPolicyState

type TaxonomyIamPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	Region  pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Taxonomy pulumi.StringPtrInput
}

func (TaxonomyIamPolicyState) ElementType

func (TaxonomyIamPolicyState) ElementType() reflect.Type

type TaxonomyInput

type TaxonomyInput interface {
	pulumi.Input

	ToTaxonomyOutput() TaxonomyOutput
	ToTaxonomyOutputWithContext(ctx context.Context) TaxonomyOutput
}

type TaxonomyMap

type TaxonomyMap map[string]TaxonomyInput

func (TaxonomyMap) ElementType

func (TaxonomyMap) ElementType() reflect.Type

func (TaxonomyMap) ToOutput added in v6.65.1

func (i TaxonomyMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Taxonomy]

func (TaxonomyMap) ToTaxonomyMapOutput

func (i TaxonomyMap) ToTaxonomyMapOutput() TaxonomyMapOutput

func (TaxonomyMap) ToTaxonomyMapOutputWithContext

func (i TaxonomyMap) ToTaxonomyMapOutputWithContext(ctx context.Context) TaxonomyMapOutput

type TaxonomyMapInput

type TaxonomyMapInput interface {
	pulumi.Input

	ToTaxonomyMapOutput() TaxonomyMapOutput
	ToTaxonomyMapOutputWithContext(context.Context) TaxonomyMapOutput
}

TaxonomyMapInput is an input type that accepts TaxonomyMap and TaxonomyMapOutput values. You can construct a concrete instance of `TaxonomyMapInput` via:

TaxonomyMap{ "key": TaxonomyArgs{...} }

type TaxonomyMapOutput

type TaxonomyMapOutput struct{ *pulumi.OutputState }

func (TaxonomyMapOutput) ElementType

func (TaxonomyMapOutput) ElementType() reflect.Type

func (TaxonomyMapOutput) MapIndex

func (TaxonomyMapOutput) ToOutput added in v6.65.1

func (TaxonomyMapOutput) ToTaxonomyMapOutput

func (o TaxonomyMapOutput) ToTaxonomyMapOutput() TaxonomyMapOutput

func (TaxonomyMapOutput) ToTaxonomyMapOutputWithContext

func (o TaxonomyMapOutput) ToTaxonomyMapOutputWithContext(ctx context.Context) TaxonomyMapOutput

type TaxonomyOutput

type TaxonomyOutput struct{ *pulumi.OutputState }

func (TaxonomyOutput) ActivatedPolicyTypes added in v6.23.0

func (o TaxonomyOutput) ActivatedPolicyTypes() pulumi.StringArrayOutput

A list of policy types that are activated for this taxonomy. If not set, defaults to an empty list. Each value may be one of: `POLICY_TYPE_UNSPECIFIED`, `FINE_GRAINED_ACCESS_CONTROL`.

func (TaxonomyOutput) Description added in v6.23.0

func (o TaxonomyOutput) Description() pulumi.StringPtrOutput

Description of this taxonomy. It must: contain only unicode characters, tabs, newlines, carriage returns and page breaks; and be at most 2000 bytes long when encoded in UTF-8. If not set, defaults to an empty description.

func (TaxonomyOutput) DisplayName added in v6.23.0

func (o TaxonomyOutput) DisplayName() pulumi.StringOutput

User defined name of this taxonomy. It must: contain only unicode letters, numbers, underscores, dashes and spaces; not start or end with spaces; and be at most 200 bytes long when encoded in UTF-8.

***

func (TaxonomyOutput) ElementType

func (TaxonomyOutput) ElementType() reflect.Type

func (TaxonomyOutput) Name added in v6.23.0

Resource name of this taxonomy, whose format is: "projects/{project}/locations/{region}/taxonomies/{taxonomy}".

func (TaxonomyOutput) Project added in v6.23.0

func (o TaxonomyOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (TaxonomyOutput) Region added in v6.23.0

func (o TaxonomyOutput) Region() pulumi.StringOutput

Taxonomy location region.

func (TaxonomyOutput) ToOutput added in v6.65.1

func (TaxonomyOutput) ToTaxonomyOutput

func (o TaxonomyOutput) ToTaxonomyOutput() TaxonomyOutput

func (TaxonomyOutput) ToTaxonomyOutputWithContext

func (o TaxonomyOutput) ToTaxonomyOutputWithContext(ctx context.Context) TaxonomyOutput

type TaxonomyState

type TaxonomyState struct {
	// A list of policy types that are activated for this taxonomy. If not set,
	// defaults to an empty list.
	// Each value may be one of: `POLICY_TYPE_UNSPECIFIED`, `FINE_GRAINED_ACCESS_CONTROL`.
	ActivatedPolicyTypes pulumi.StringArrayInput
	// Description of this taxonomy. It must: contain only unicode characters,
	// tabs, newlines, carriage returns and page breaks; and be at most 2000 bytes
	// long when encoded in UTF-8. If not set, defaults to an empty description.
	Description pulumi.StringPtrInput
	// User defined name of this taxonomy.
	// It must: contain only unicode letters, numbers, underscores, dashes
	// and spaces; not start or end with spaces; and be at most 200 bytes
	// long when encoded in UTF-8.
	//
	// ***
	DisplayName pulumi.StringPtrInput
	// Resource name of this taxonomy, whose format is:
	// "projects/{project}/locations/{region}/taxonomies/{taxonomy}".
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Taxonomy location region.
	Region pulumi.StringPtrInput
}

func (TaxonomyState) ElementType

func (TaxonomyState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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