1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. datacatalog
  5. Tag
Google Cloud Classic v7.19.0 published on Thursday, Apr 18, 2024 by Pulumi

gcp.datacatalog.Tag

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.19.0 published on Thursday, Apr 18, 2024 by Pulumi

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

    See Data Catalog IAM for information on the permissions needed to create or view tags.

    To get more information about Tag, see:

    Example Usage

    Data Catalog Entry Tag Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const entryGroup = new gcp.datacatalog.EntryGroup("entry_group", {entryGroupId: "my_entry_group"});
    const entry = new gcp.datacatalog.Entry("entry", {
        entryGroup: entryGroup.id,
        entryId: "my_entry",
        userSpecifiedType: "my_custom_type",
        userSpecifiedSystem: "SomethingExternal",
    });
    const tagTemplate = new gcp.datacatalog.TagTemplate("tag_template", {
        tagTemplateId: "my_template",
        region: "us-central1",
        displayName: "Demo Tag Template",
        fields: [
            {
                fieldId: "source",
                displayName: "Source of data asset",
                type: {
                    primitiveType: "STRING",
                },
                isRequired: true,
            },
            {
                fieldId: "num_rows",
                displayName: "Number of rows in the data asset",
                type: {
                    primitiveType: "DOUBLE",
                },
            },
            {
                fieldId: "pii_type",
                displayName: "PII type",
                type: {
                    enumType: {
                        allowedValues: [
                            {
                                displayName: "EMAIL",
                            },
                            {
                                displayName: "SOCIAL SECURITY NUMBER",
                            },
                            {
                                displayName: "NONE",
                            },
                        ],
                    },
                },
            },
        ],
        forceDelete: false,
    });
    const basicTag = new gcp.datacatalog.Tag("basic_tag", {
        parent: entry.id,
        template: tagTemplate.id,
        fields: [{
            fieldName: "source",
            stringValue: "my-string",
        }],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    entry_group = gcp.datacatalog.EntryGroup("entry_group", entry_group_id="my_entry_group")
    entry = gcp.datacatalog.Entry("entry",
        entry_group=entry_group.id,
        entry_id="my_entry",
        user_specified_type="my_custom_type",
        user_specified_system="SomethingExternal")
    tag_template = gcp.datacatalog.TagTemplate("tag_template",
        tag_template_id="my_template",
        region="us-central1",
        display_name="Demo Tag Template",
        fields=[
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="source",
                display_name="Source of data asset",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    primitive_type="STRING",
                ),
                is_required=True,
            ),
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="num_rows",
                display_name="Number of rows in the data asset",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    primitive_type="DOUBLE",
                ),
            ),
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="pii_type",
                display_name="PII type",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    enum_type=gcp.datacatalog.TagTemplateFieldTypeEnumTypeArgs(
                        allowed_values=[
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="EMAIL",
                            ),
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="SOCIAL SECURITY NUMBER",
                            ),
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="NONE",
                            ),
                        ],
                    ),
                ),
            ),
        ],
        force_delete=False)
    basic_tag = gcp.datacatalog.Tag("basic_tag",
        parent=entry.id,
        template=tag_template.id,
        fields=[gcp.datacatalog.TagFieldArgs(
            field_name="source",
            string_value="my-string",
        )])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/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, "entry_group", &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, "tag_template", &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, "basic_tag", &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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var entryGroup = new Gcp.DataCatalog.EntryGroup("entry_group", new()
        {
            EntryGroupId = "my_entry_group",
        });
    
        var entry = new Gcp.DataCatalog.Entry("entry", new()
        {
            EntryGroup = entryGroup.Id,
            EntryId = "my_entry",
            UserSpecifiedType = "my_custom_type",
            UserSpecifiedSystem = "SomethingExternal",
        });
    
        var tagTemplate = new Gcp.DataCatalog.TagTemplate("tag_template", new()
        {
            TagTemplateId = "my_template",
            Region = "us-central1",
            DisplayName = "Demo Tag Template",
            Fields = new[]
            {
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "source",
                    DisplayName = "Source of data asset",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        PrimitiveType = "STRING",
                    },
                    IsRequired = true,
                },
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "num_rows",
                    DisplayName = "Number of rows in the data asset",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        PrimitiveType = "DOUBLE",
                    },
                },
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "pii_type",
                    DisplayName = "PII type",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        EnumType = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeArgs
                        {
                            AllowedValues = new[]
                            {
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "EMAIL",
                                },
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "SOCIAL SECURITY NUMBER",
                                },
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "NONE",
                                },
                            },
                        },
                    },
                },
            },
            ForceDelete = false,
        });
    
        var basicTag = new Gcp.DataCatalog.Tag("basic_tag", new()
        {
            Parent = entry.Id,
            Template = tagTemplate.Id,
            Fields = new[]
            {
                new Gcp.DataCatalog.Inputs.TagFieldArgs
                {
                    FieldName = "source",
                    StringValue = "my-string",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.datacatalog.EntryGroup;
    import com.pulumi.gcp.datacatalog.EntryGroupArgs;
    import com.pulumi.gcp.datacatalog.Entry;
    import com.pulumi.gcp.datacatalog.EntryArgs;
    import com.pulumi.gcp.datacatalog.TagTemplate;
    import com.pulumi.gcp.datacatalog.TagTemplateArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldTypeArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldTypeEnumTypeArgs;
    import com.pulumi.gcp.datacatalog.Tag;
    import com.pulumi.gcp.datacatalog.TagArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagFieldArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var entryGroup = new EntryGroup("entryGroup", EntryGroupArgs.builder()        
                .entryGroupId("my_entry_group")
                .build());
    
            var entry = new Entry("entry", EntryArgs.builder()        
                .entryGroup(entryGroup.id())
                .entryId("my_entry")
                .userSpecifiedType("my_custom_type")
                .userSpecifiedSystem("SomethingExternal")
                .build());
    
            var tagTemplate = new TagTemplate("tagTemplate", TagTemplateArgs.builder()        
                .tagTemplateId("my_template")
                .region("us-central1")
                .displayName("Demo Tag Template")
                .fields(            
                    TagTemplateFieldArgs.builder()
                        .fieldId("source")
                        .displayName("Source of data asset")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .primitiveType("STRING")
                            .build())
                        .isRequired(true)
                        .build(),
                    TagTemplateFieldArgs.builder()
                        .fieldId("num_rows")
                        .displayName("Number of rows in the data asset")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .primitiveType("DOUBLE")
                            .build())
                        .build(),
                    TagTemplateFieldArgs.builder()
                        .fieldId("pii_type")
                        .displayName("PII type")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .enumType(TagTemplateFieldTypeEnumTypeArgs.builder()
                                .allowedValues(                            
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("EMAIL")
                                        .build(),
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("SOCIAL SECURITY NUMBER")
                                        .build(),
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("NONE")
                                        .build())
                                .build())
                            .build())
                        .build())
                .forceDelete("false")
                .build());
    
            var basicTag = new Tag("basicTag", TagArgs.builder()        
                .parent(entry.id())
                .template(tagTemplate.id())
                .fields(TagFieldArgs.builder()
                    .fieldName("source")
                    .stringValue("my-string")
                    .build())
                .build());
    
        }
    }
    
    resources:
      entry:
        type: gcp:datacatalog:Entry
        properties:
          entryGroup: ${entryGroup.id}
          entryId: my_entry
          userSpecifiedType: my_custom_type
          userSpecifiedSystem: SomethingExternal
      entryGroup:
        type: gcp:datacatalog:EntryGroup
        name: entry_group
        properties:
          entryGroupId: my_entry_group
      tagTemplate:
        type: gcp:datacatalog:TagTemplate
        name: tag_template
        properties:
          tagTemplateId: my_template
          region: us-central1
          displayName: Demo Tag Template
          fields:
            - fieldId: source
              displayName: Source of data asset
              type:
                primitiveType: STRING
              isRequired: true
            - fieldId: num_rows
              displayName: Number of rows in the data asset
              type:
                primitiveType: DOUBLE
            - fieldId: pii_type
              displayName: PII type
              type:
                enumType:
                  allowedValues:
                    - displayName: EMAIL
                    - displayName: SOCIAL SECURITY NUMBER
                    - displayName: NONE
          forceDelete: 'false'
      basicTag:
        type: gcp:datacatalog:Tag
        name: basic_tag
        properties:
          parent: ${entry.id}
          template: ${tagTemplate.id}
          fields:
            - fieldName: source
              stringValue: my-string
    

    Data Catalog Entry Group Tag

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const entryGroup = new gcp.datacatalog.EntryGroup("entry_group", {entryGroupId: "my_entry_group"});
    const firstEntry = new gcp.datacatalog.Entry("first_entry", {
        entryGroup: entryGroup.id,
        entryId: "first_entry",
        userSpecifiedType: "my_custom_type",
        userSpecifiedSystem: "SomethingExternal",
    });
    const secondEntry = new gcp.datacatalog.Entry("second_entry", {
        entryGroup: entryGroup.id,
        entryId: "second_entry",
        userSpecifiedType: "another_custom_type",
        userSpecifiedSystem: "SomethingElseExternal",
    });
    const tagTemplate = new gcp.datacatalog.TagTemplate("tag_template", {
        tagTemplateId: "my_template",
        region: "us-central1",
        displayName: "Demo Tag Template",
        fields: [
            {
                fieldId: "source",
                displayName: "Source of data asset",
                type: {
                    primitiveType: "STRING",
                },
                isRequired: true,
            },
            {
                fieldId: "num_rows",
                displayName: "Number of rows in the data asset",
                type: {
                    primitiveType: "DOUBLE",
                },
            },
            {
                fieldId: "pii_type",
                displayName: "PII type",
                type: {
                    enumType: {
                        allowedValues: [
                            {
                                displayName: "EMAIL",
                            },
                            {
                                displayName: "SOCIAL SECURITY NUMBER",
                            },
                            {
                                displayName: "NONE",
                            },
                        ],
                    },
                },
            },
        ],
        forceDelete: false,
    });
    const entryGroupTag = new gcp.datacatalog.Tag("entry_group_tag", {
        parent: entryGroup.id,
        template: tagTemplate.id,
        fields: [{
            fieldName: "source",
            stringValue: "my-string",
        }],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    entry_group = gcp.datacatalog.EntryGroup("entry_group", entry_group_id="my_entry_group")
    first_entry = gcp.datacatalog.Entry("first_entry",
        entry_group=entry_group.id,
        entry_id="first_entry",
        user_specified_type="my_custom_type",
        user_specified_system="SomethingExternal")
    second_entry = gcp.datacatalog.Entry("second_entry",
        entry_group=entry_group.id,
        entry_id="second_entry",
        user_specified_type="another_custom_type",
        user_specified_system="SomethingElseExternal")
    tag_template = gcp.datacatalog.TagTemplate("tag_template",
        tag_template_id="my_template",
        region="us-central1",
        display_name="Demo Tag Template",
        fields=[
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="source",
                display_name="Source of data asset",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    primitive_type="STRING",
                ),
                is_required=True,
            ),
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="num_rows",
                display_name="Number of rows in the data asset",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    primitive_type="DOUBLE",
                ),
            ),
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="pii_type",
                display_name="PII type",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    enum_type=gcp.datacatalog.TagTemplateFieldTypeEnumTypeArgs(
                        allowed_values=[
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="EMAIL",
                            ),
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="SOCIAL SECURITY NUMBER",
                            ),
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="NONE",
                            ),
                        ],
                    ),
                ),
            ),
        ],
        force_delete=False)
    entry_group_tag = gcp.datacatalog.Tag("entry_group_tag",
        parent=entry_group.id,
        template=tag_template.id,
        fields=[gcp.datacatalog.TagFieldArgs(
            field_name="source",
            string_value="my-string",
        )])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/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, "entry_group", &datacatalog.EntryGroupArgs{
    			EntryGroupId: pulumi.String("my_entry_group"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = datacatalog.NewEntry(ctx, "first_entry", &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, "second_entry", &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, "tag_template", &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, "entry_group_tag", &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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var entryGroup = new Gcp.DataCatalog.EntryGroup("entry_group", new()
        {
            EntryGroupId = "my_entry_group",
        });
    
        var firstEntry = new Gcp.DataCatalog.Entry("first_entry", new()
        {
            EntryGroup = entryGroup.Id,
            EntryId = "first_entry",
            UserSpecifiedType = "my_custom_type",
            UserSpecifiedSystem = "SomethingExternal",
        });
    
        var secondEntry = new Gcp.DataCatalog.Entry("second_entry", new()
        {
            EntryGroup = entryGroup.Id,
            EntryId = "second_entry",
            UserSpecifiedType = "another_custom_type",
            UserSpecifiedSystem = "SomethingElseExternal",
        });
    
        var tagTemplate = new Gcp.DataCatalog.TagTemplate("tag_template", new()
        {
            TagTemplateId = "my_template",
            Region = "us-central1",
            DisplayName = "Demo Tag Template",
            Fields = new[]
            {
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "source",
                    DisplayName = "Source of data asset",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        PrimitiveType = "STRING",
                    },
                    IsRequired = true,
                },
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "num_rows",
                    DisplayName = "Number of rows in the data asset",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        PrimitiveType = "DOUBLE",
                    },
                },
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "pii_type",
                    DisplayName = "PII type",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        EnumType = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeArgs
                        {
                            AllowedValues = new[]
                            {
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "EMAIL",
                                },
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "SOCIAL SECURITY NUMBER",
                                },
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "NONE",
                                },
                            },
                        },
                    },
                },
            },
            ForceDelete = false,
        });
    
        var entryGroupTag = new Gcp.DataCatalog.Tag("entry_group_tag", new()
        {
            Parent = entryGroup.Id,
            Template = tagTemplate.Id,
            Fields = new[]
            {
                new Gcp.DataCatalog.Inputs.TagFieldArgs
                {
                    FieldName = "source",
                    StringValue = "my-string",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.datacatalog.EntryGroup;
    import com.pulumi.gcp.datacatalog.EntryGroupArgs;
    import com.pulumi.gcp.datacatalog.Entry;
    import com.pulumi.gcp.datacatalog.EntryArgs;
    import com.pulumi.gcp.datacatalog.TagTemplate;
    import com.pulumi.gcp.datacatalog.TagTemplateArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldTypeArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldTypeEnumTypeArgs;
    import com.pulumi.gcp.datacatalog.Tag;
    import com.pulumi.gcp.datacatalog.TagArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagFieldArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var entryGroup = new EntryGroup("entryGroup", EntryGroupArgs.builder()        
                .entryGroupId("my_entry_group")
                .build());
    
            var firstEntry = new Entry("firstEntry", EntryArgs.builder()        
                .entryGroup(entryGroup.id())
                .entryId("first_entry")
                .userSpecifiedType("my_custom_type")
                .userSpecifiedSystem("SomethingExternal")
                .build());
    
            var secondEntry = new Entry("secondEntry", EntryArgs.builder()        
                .entryGroup(entryGroup.id())
                .entryId("second_entry")
                .userSpecifiedType("another_custom_type")
                .userSpecifiedSystem("SomethingElseExternal")
                .build());
    
            var tagTemplate = new TagTemplate("tagTemplate", TagTemplateArgs.builder()        
                .tagTemplateId("my_template")
                .region("us-central1")
                .displayName("Demo Tag Template")
                .fields(            
                    TagTemplateFieldArgs.builder()
                        .fieldId("source")
                        .displayName("Source of data asset")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .primitiveType("STRING")
                            .build())
                        .isRequired(true)
                        .build(),
                    TagTemplateFieldArgs.builder()
                        .fieldId("num_rows")
                        .displayName("Number of rows in the data asset")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .primitiveType("DOUBLE")
                            .build())
                        .build(),
                    TagTemplateFieldArgs.builder()
                        .fieldId("pii_type")
                        .displayName("PII type")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .enumType(TagTemplateFieldTypeEnumTypeArgs.builder()
                                .allowedValues(                            
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("EMAIL")
                                        .build(),
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("SOCIAL SECURITY NUMBER")
                                        .build(),
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("NONE")
                                        .build())
                                .build())
                            .build())
                        .build())
                .forceDelete("false")
                .build());
    
            var entryGroupTag = new Tag("entryGroupTag", TagArgs.builder()        
                .parent(entryGroup.id())
                .template(tagTemplate.id())
                .fields(TagFieldArgs.builder()
                    .fieldName("source")
                    .stringValue("my-string")
                    .build())
                .build());
    
        }
    }
    
    resources:
      firstEntry:
        type: gcp:datacatalog:Entry
        name: first_entry
        properties:
          entryGroup: ${entryGroup.id}
          entryId: first_entry
          userSpecifiedType: my_custom_type
          userSpecifiedSystem: SomethingExternal
      secondEntry:
        type: gcp:datacatalog:Entry
        name: second_entry
        properties:
          entryGroup: ${entryGroup.id}
          entryId: second_entry
          userSpecifiedType: another_custom_type
          userSpecifiedSystem: SomethingElseExternal
      entryGroup:
        type: gcp:datacatalog:EntryGroup
        name: entry_group
        properties:
          entryGroupId: my_entry_group
      tagTemplate:
        type: gcp:datacatalog:TagTemplate
        name: tag_template
        properties:
          tagTemplateId: my_template
          region: us-central1
          displayName: Demo Tag Template
          fields:
            - fieldId: source
              displayName: Source of data asset
              type:
                primitiveType: STRING
              isRequired: true
            - fieldId: num_rows
              displayName: Number of rows in the data asset
              type:
                primitiveType: DOUBLE
            - fieldId: pii_type
              displayName: PII type
              type:
                enumType:
                  allowedValues:
                    - displayName: EMAIL
                    - displayName: SOCIAL SECURITY NUMBER
                    - displayName: NONE
          forceDelete: 'false'
      entryGroupTag:
        type: gcp:datacatalog:Tag
        name: entry_group_tag
        properties:
          parent: ${entryGroup.id}
          template: ${tagTemplate.id}
          fields:
            - fieldName: source
              stringValue: my-string
    

    Data Catalog Entry Tag Full

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const entryGroup = new gcp.datacatalog.EntryGroup("entry_group", {entryGroupId: "my_entry_group"});
    const entry = new gcp.datacatalog.Entry("entry", {
        entryGroup: entryGroup.id,
        entryId: "my_entry",
        userSpecifiedType: "my_custom_type",
        userSpecifiedSystem: "SomethingExternal",
        schema: `{
      "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"
        }
      ]
    }
    `,
    });
    const tagTemplate = new gcp.datacatalog.TagTemplate("tag_template", {
        tagTemplateId: "my_template",
        region: "us-central1",
        displayName: "Demo Tag Template",
        fields: [
            {
                fieldId: "source",
                displayName: "Source of data asset",
                type: {
                    primitiveType: "STRING",
                },
                isRequired: true,
            },
            {
                fieldId: "num_rows",
                displayName: "Number of rows in the data asset",
                type: {
                    primitiveType: "DOUBLE",
                },
            },
            {
                fieldId: "pii_type",
                displayName: "PII type",
                type: {
                    enumType: {
                        allowedValues: [
                            {
                                displayName: "EMAIL",
                            },
                            {
                                displayName: "SOCIAL SECURITY NUMBER",
                            },
                            {
                                displayName: "NONE",
                            },
                        ],
                    },
                },
            },
        ],
        forceDelete: false,
    });
    const basicTag = new gcp.datacatalog.Tag("basic_tag", {
        parent: entry.id,
        template: tagTemplate.id,
        fields: [
            {
                fieldName: "source",
                stringValue: "my-string",
            },
            {
                fieldName: "num_rows",
                doubleValue: 5,
            },
            {
                fieldName: "pii_type",
                enumValue: "EMAIL",
            },
        ],
        column: "address",
    });
    const second_tag = new gcp.datacatalog.Tag("second-tag", {
        parent: entry.id,
        template: tagTemplate.id,
        fields: [
            {
                fieldName: "source",
                stringValue: "my-string",
            },
            {
                fieldName: "pii_type",
                enumValue: "NONE",
            },
        ],
        column: "first_name",
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    entry_group = gcp.datacatalog.EntryGroup("entry_group", entry_group_id="my_entry_group")
    entry = gcp.datacatalog.Entry("entry",
        entry_group=entry_group.id,
        entry_id="my_entry",
        user_specified_type="my_custom_type",
        user_specified_system="SomethingExternal",
        schema="""{
      "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"
        }
      ]
    }
    """)
    tag_template = gcp.datacatalog.TagTemplate("tag_template",
        tag_template_id="my_template",
        region="us-central1",
        display_name="Demo Tag Template",
        fields=[
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="source",
                display_name="Source of data asset",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    primitive_type="STRING",
                ),
                is_required=True,
            ),
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="num_rows",
                display_name="Number of rows in the data asset",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    primitive_type="DOUBLE",
                ),
            ),
            gcp.datacatalog.TagTemplateFieldArgs(
                field_id="pii_type",
                display_name="PII type",
                type=gcp.datacatalog.TagTemplateFieldTypeArgs(
                    enum_type=gcp.datacatalog.TagTemplateFieldTypeEnumTypeArgs(
                        allowed_values=[
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="EMAIL",
                            ),
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="SOCIAL SECURITY NUMBER",
                            ),
                            gcp.datacatalog.TagTemplateFieldTypeEnumTypeAllowedValueArgs(
                                display_name="NONE",
                            ),
                        ],
                    ),
                ),
            ),
        ],
        force_delete=False)
    basic_tag = gcp.datacatalog.Tag("basic_tag",
        parent=entry.id,
        template=tag_template.id,
        fields=[
            gcp.datacatalog.TagFieldArgs(
                field_name="source",
                string_value="my-string",
            ),
            gcp.datacatalog.TagFieldArgs(
                field_name="num_rows",
                double_value=5,
            ),
            gcp.datacatalog.TagFieldArgs(
                field_name="pii_type",
                enum_value="EMAIL",
            ),
        ],
        column="address")
    second_tag = gcp.datacatalog.Tag("second-tag",
        parent=entry.id,
        template=tag_template.id,
        fields=[
            gcp.datacatalog.TagFieldArgs(
                field_name="source",
                string_value="my-string",
            ),
            gcp.datacatalog.TagFieldArgs(
                field_name="pii_type",
                enum_value="NONE",
            ),
        ],
        column="first_name")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/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, "entry_group", &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, "tag_template", &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, "basic_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("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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var entryGroup = new Gcp.DataCatalog.EntryGroup("entry_group", new()
        {
            EntryGroupId = "my_entry_group",
        });
    
        var entry = new Gcp.DataCatalog.Entry("entry", new()
        {
            EntryGroup = entryGroup.Id,
            EntryId = "my_entry",
            UserSpecifiedType = "my_custom_type",
            UserSpecifiedSystem = "SomethingExternal",
            Schema = @"{
      ""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""
        }
      ]
    }
    ",
        });
    
        var tagTemplate = new Gcp.DataCatalog.TagTemplate("tag_template", new()
        {
            TagTemplateId = "my_template",
            Region = "us-central1",
            DisplayName = "Demo Tag Template",
            Fields = new[]
            {
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "source",
                    DisplayName = "Source of data asset",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        PrimitiveType = "STRING",
                    },
                    IsRequired = true,
                },
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "num_rows",
                    DisplayName = "Number of rows in the data asset",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        PrimitiveType = "DOUBLE",
                    },
                },
                new Gcp.DataCatalog.Inputs.TagTemplateFieldArgs
                {
                    FieldId = "pii_type",
                    DisplayName = "PII type",
                    Type = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeArgs
                    {
                        EnumType = new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeArgs
                        {
                            AllowedValues = new[]
                            {
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "EMAIL",
                                },
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "SOCIAL SECURITY NUMBER",
                                },
                                new Gcp.DataCatalog.Inputs.TagTemplateFieldTypeEnumTypeAllowedValueArgs
                                {
                                    DisplayName = "NONE",
                                },
                            },
                        },
                    },
                },
            },
            ForceDelete = false,
        });
    
        var basicTag = new Gcp.DataCatalog.Tag("basic_tag", new()
        {
            Parent = entry.Id,
            Template = tagTemplate.Id,
            Fields = new[]
            {
                new Gcp.DataCatalog.Inputs.TagFieldArgs
                {
                    FieldName = "source",
                    StringValue = "my-string",
                },
                new Gcp.DataCatalog.Inputs.TagFieldArgs
                {
                    FieldName = "num_rows",
                    DoubleValue = 5,
                },
                new Gcp.DataCatalog.Inputs.TagFieldArgs
                {
                    FieldName = "pii_type",
                    EnumValue = "EMAIL",
                },
            },
            Column = "address",
        });
    
        var second_tag = new Gcp.DataCatalog.Tag("second-tag", new()
        {
            Parent = entry.Id,
            Template = tagTemplate.Id,
            Fields = new[]
            {
                new Gcp.DataCatalog.Inputs.TagFieldArgs
                {
                    FieldName = "source",
                    StringValue = "my-string",
                },
                new Gcp.DataCatalog.Inputs.TagFieldArgs
                {
                    FieldName = "pii_type",
                    EnumValue = "NONE",
                },
            },
            Column = "first_name",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.datacatalog.EntryGroup;
    import com.pulumi.gcp.datacatalog.EntryGroupArgs;
    import com.pulumi.gcp.datacatalog.Entry;
    import com.pulumi.gcp.datacatalog.EntryArgs;
    import com.pulumi.gcp.datacatalog.TagTemplate;
    import com.pulumi.gcp.datacatalog.TagTemplateArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldTypeArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagTemplateFieldTypeEnumTypeArgs;
    import com.pulumi.gcp.datacatalog.Tag;
    import com.pulumi.gcp.datacatalog.TagArgs;
    import com.pulumi.gcp.datacatalog.inputs.TagFieldArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var entryGroup = new EntryGroup("entryGroup", EntryGroupArgs.builder()        
                .entryGroupId("my_entry_group")
                .build());
    
            var entry = new Entry("entry", EntryArgs.builder()        
                .entryGroup(entryGroup.id())
                .entryId("my_entry")
                .userSpecifiedType("my_custom_type")
                .userSpecifiedSystem("SomethingExternal")
                .schema("""
    {
      "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"
        }
      ]
    }
                """)
                .build());
    
            var tagTemplate = new TagTemplate("tagTemplate", TagTemplateArgs.builder()        
                .tagTemplateId("my_template")
                .region("us-central1")
                .displayName("Demo Tag Template")
                .fields(            
                    TagTemplateFieldArgs.builder()
                        .fieldId("source")
                        .displayName("Source of data asset")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .primitiveType("STRING")
                            .build())
                        .isRequired(true)
                        .build(),
                    TagTemplateFieldArgs.builder()
                        .fieldId("num_rows")
                        .displayName("Number of rows in the data asset")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .primitiveType("DOUBLE")
                            .build())
                        .build(),
                    TagTemplateFieldArgs.builder()
                        .fieldId("pii_type")
                        .displayName("PII type")
                        .type(TagTemplateFieldTypeArgs.builder()
                            .enumType(TagTemplateFieldTypeEnumTypeArgs.builder()
                                .allowedValues(                            
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("EMAIL")
                                        .build(),
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("SOCIAL SECURITY NUMBER")
                                        .build(),
                                    TagTemplateFieldTypeEnumTypeAllowedValueArgs.builder()
                                        .displayName("NONE")
                                        .build())
                                .build())
                            .build())
                        .build())
                .forceDelete("false")
                .build());
    
            var basicTag = new Tag("basicTag", TagArgs.builder()        
                .parent(entry.id())
                .template(tagTemplate.id())
                .fields(            
                    TagFieldArgs.builder()
                        .fieldName("source")
                        .stringValue("my-string")
                        .build(),
                    TagFieldArgs.builder()
                        .fieldName("num_rows")
                        .doubleValue(5)
                        .build(),
                    TagFieldArgs.builder()
                        .fieldName("pii_type")
                        .enumValue("EMAIL")
                        .build())
                .column("address")
                .build());
    
            var second_tag = new Tag("second-tag", TagArgs.builder()        
                .parent(entry.id())
                .template(tagTemplate.id())
                .fields(            
                    TagFieldArgs.builder()
                        .fieldName("source")
                        .stringValue("my-string")
                        .build(),
                    TagFieldArgs.builder()
                        .fieldName("pii_type")
                        .enumValue("NONE")
                        .build())
                .column("first_name")
                .build());
    
        }
    }
    
    resources:
      entry:
        type: gcp:datacatalog:Entry
        properties:
          entryGroup: ${entryGroup.id}
          entryId: my_entry
          userSpecifiedType: my_custom_type
          userSpecifiedSystem: SomethingExternal
          schema: |
            {
              "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"
                }
              ]
            }        
      entryGroup:
        type: gcp:datacatalog:EntryGroup
        name: entry_group
        properties:
          entryGroupId: my_entry_group
      tagTemplate:
        type: gcp:datacatalog:TagTemplate
        name: tag_template
        properties:
          tagTemplateId: my_template
          region: us-central1
          displayName: Demo Tag Template
          fields:
            - fieldId: source
              displayName: Source of data asset
              type:
                primitiveType: STRING
              isRequired: true
            - fieldId: num_rows
              displayName: Number of rows in the data asset
              type:
                primitiveType: DOUBLE
            - fieldId: pii_type
              displayName: PII type
              type:
                enumType:
                  allowedValues:
                    - displayName: EMAIL
                    - displayName: SOCIAL SECURITY NUMBER
                    - displayName: NONE
          forceDelete: 'false'
      basicTag:
        type: gcp:datacatalog:Tag
        name: basic_tag
        properties:
          parent: ${entry.id}
          template: ${tagTemplate.id}
          fields:
            - fieldName: source
              stringValue: my-string
            - fieldName: num_rows
              doubleValue: 5
            - fieldName: pii_type
              enumValue: EMAIL
          column: address
      second-tag:
        type: gcp:datacatalog:Tag
        properties:
          parent: ${entry.id}
          template: ${tagTemplate.id}
          fields:
            - fieldName: source
              stringValue: my-string
            - fieldName: pii_type
              enumValue: NONE
          column: first_name
    

    Create Tag Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Tag(name: string, args: TagArgs, opts?: CustomResourceOptions);
    @overload
    def Tag(resource_name: str,
            args: TagArgs,
            opts: Optional[ResourceOptions] = None)
    
    @overload
    def Tag(resource_name: str,
            opts: Optional[ResourceOptions] = None,
            fields: Optional[Sequence[TagFieldArgs]] = None,
            template: Optional[str] = None,
            column: Optional[str] = None,
            parent: Optional[str] = None)
    func NewTag(ctx *Context, name string, args TagArgs, opts ...ResourceOption) (*Tag, error)
    public Tag(string name, TagArgs args, CustomResourceOptions? opts = null)
    public Tag(String name, TagArgs args)
    public Tag(String name, TagArgs args, CustomResourceOptions options)
    
    type: gcp:datacatalog:Tag
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args TagArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args TagArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args TagArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args TagArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args TagArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

    The following reference example uses placeholder values for all input properties.

    var tagResource = new Gcp.DataCatalog.Tag("tagResource", new()
    {
        Fields = new[]
        {
            new Gcp.DataCatalog.Inputs.TagFieldArgs
            {
                FieldName = "string",
                BoolValue = false,
                DisplayName = "string",
                DoubleValue = 0,
                EnumValue = "string",
                Order = 0,
                StringValue = "string",
                TimestampValue = "string",
            },
        },
        Template = "string",
        Column = "string",
        Parent = "string",
    });
    
    example, err := datacatalog.NewTag(ctx, "tagResource", &datacatalog.TagArgs{
    	Fields: datacatalog.TagFieldArray{
    		&datacatalog.TagFieldArgs{
    			FieldName:      pulumi.String("string"),
    			BoolValue:      pulumi.Bool(false),
    			DisplayName:    pulumi.String("string"),
    			DoubleValue:    pulumi.Float64(0),
    			EnumValue:      pulumi.String("string"),
    			Order:          pulumi.Int(0),
    			StringValue:    pulumi.String("string"),
    			TimestampValue: pulumi.String("string"),
    		},
    	},
    	Template: pulumi.String("string"),
    	Column:   pulumi.String("string"),
    	Parent:   pulumi.String("string"),
    })
    
    var tagResource = new Tag("tagResource", TagArgs.builder()        
        .fields(TagFieldArgs.builder()
            .fieldName("string")
            .boolValue(false)
            .displayName("string")
            .doubleValue(0)
            .enumValue("string")
            .order(0)
            .stringValue("string")
            .timestampValue("string")
            .build())
        .template("string")
        .column("string")
        .parent("string")
        .build());
    
    tag_resource = gcp.datacatalog.Tag("tagResource",
        fields=[gcp.datacatalog.TagFieldArgs(
            field_name="string",
            bool_value=False,
            display_name="string",
            double_value=0,
            enum_value="string",
            order=0,
            string_value="string",
            timestamp_value="string",
        )],
        template="string",
        column="string",
        parent="string")
    
    const tagResource = new gcp.datacatalog.Tag("tagResource", {
        fields: [{
            fieldName: "string",
            boolValue: false,
            displayName: "string",
            doubleValue: 0,
            enumValue: "string",
            order: 0,
            stringValue: "string",
            timestampValue: "string",
        }],
        template: "string",
        column: "string",
        parent: "string",
    });
    
    type: gcp:datacatalog:Tag
    properties:
        column: string
        fields:
            - boolValue: false
              displayName: string
              doubleValue: 0
              enumValue: string
              fieldName: string
              order: 0
              stringValue: string
              timestampValue: string
        parent: string
        template: string
    

    Tag Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Tag resource accepts the following input properties:

    Fields List<TagField>
    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.
    Template string
    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.
    Column string
    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
    Parent string
    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.
    Fields []TagFieldArgs
    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.
    Template string
    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.
    Column string
    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
    Parent string
    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.
    fields List<TagField>
    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.
    template String
    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.
    column String
    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
    parent String
    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.
    fields TagField[]
    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.
    template string
    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.
    column string
    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
    parent string
    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.
    fields Sequence[TagFieldArgs]
    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.
    template str
    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.
    column str
    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
    parent str
    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.
    fields List<Property Map>
    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.
    template String
    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.
    column String
    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
    parent String
    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.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Tag resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    TemplateDisplayname string
    The display name of the tag template.
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    TemplateDisplayname string
    The display name of the tag template.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    templateDisplayname String
    The display name of the tag template.
    id string
    The provider-assigned unique ID for this managed resource.
    name string
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    templateDisplayname string
    The display name of the tag template.
    id str
    The provider-assigned unique ID for this managed resource.
    name str
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    template_displayname str
    The display name of the tag template.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    templateDisplayname String
    The display name of the tag template.

    Look up Existing Tag Resource

    Get an existing Tag resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: TagState, opts?: CustomResourceOptions): Tag
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            column: Optional[str] = None,
            fields: Optional[Sequence[TagFieldArgs]] = None,
            name: Optional[str] = None,
            parent: Optional[str] = None,
            template: Optional[str] = None,
            template_displayname: Optional[str] = None) -> Tag
    func GetTag(ctx *Context, name string, id IDInput, state *TagState, opts ...ResourceOption) (*Tag, error)
    public static Tag Get(string name, Input<string> id, TagState? state, CustomResourceOptions? opts = null)
    public static Tag get(String name, Output<String> id, TagState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Column string
    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
    Fields List<TagField>
    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.
    Name string
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    Parent string
    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.
    Template string
    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.
    TemplateDisplayname string
    The display name of the tag template.
    Column string
    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
    Fields []TagFieldArgs
    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.
    Name string
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    Parent string
    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.
    Template string
    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.
    TemplateDisplayname string
    The display name of the tag template.
    column String
    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
    fields List<TagField>
    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.
    name String
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    parent String
    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.
    template String
    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.
    templateDisplayname String
    The display name of the tag template.
    column string
    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
    fields TagField[]
    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.
    name string
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    parent string
    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.
    template string
    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.
    templateDisplayname string
    The display name of the tag template.
    column str
    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
    fields Sequence[TagFieldArgs]
    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.
    name str
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    parent str
    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.
    template str
    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_displayname str
    The display name of the tag template.
    column String
    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
    fields List<Property Map>
    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.
    name String
    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 tag_id is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.
    parent String
    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.
    template String
    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.
    templateDisplayname String
    The display name of the tag template.

    Supporting Types

    TagField, TagFieldArgs

    FieldName string
    The identifier for this object. Format specified above.
    BoolValue bool
    Holds the value for a tag field with boolean type.
    DisplayName string
    (Output) The display name of this field
    DoubleValue double
    Holds the value for a tag field with double type.
    EnumValue string
    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.


    Order int
    (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.
    StringValue string
    Holds the value for a tag field with string type.
    TimestampValue string
    Holds the value for a tag field with timestamp type.
    FieldName string
    The identifier for this object. Format specified above.
    BoolValue bool
    Holds the value for a tag field with boolean type.
    DisplayName string
    (Output) The display name of this field
    DoubleValue float64
    Holds the value for a tag field with double type.
    EnumValue string
    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.


    Order int
    (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.
    StringValue string
    Holds the value for a tag field with string type.
    TimestampValue string
    Holds the value for a tag field with timestamp type.
    fieldName String
    The identifier for this object. Format specified above.
    boolValue Boolean
    Holds the value for a tag field with boolean type.
    displayName String
    (Output) The display name of this field
    doubleValue Double
    Holds the value for a tag field with double type.
    enumValue String
    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.


    order Integer
    (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.
    stringValue String
    Holds the value for a tag field with string type.
    timestampValue String
    Holds the value for a tag field with timestamp type.
    fieldName string
    The identifier for this object. Format specified above.
    boolValue boolean
    Holds the value for a tag field with boolean type.
    displayName string
    (Output) The display name of this field
    doubleValue number
    Holds the value for a tag field with double type.
    enumValue string
    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.


    order number
    (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.
    stringValue string
    Holds the value for a tag field with string type.
    timestampValue string
    Holds the value for a tag field with timestamp type.
    field_name str
    The identifier for this object. Format specified above.
    bool_value bool
    Holds the value for a tag field with boolean type.
    display_name str
    (Output) The display name of this field
    double_value float
    Holds the value for a tag field with double type.
    enum_value str
    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.


    order int
    (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.
    string_value str
    Holds the value for a tag field with string type.
    timestamp_value str
    Holds the value for a tag field with timestamp type.
    fieldName String
    The identifier for this object. Format specified above.
    boolValue Boolean
    Holds the value for a tag field with boolean type.
    displayName String
    (Output) The display name of this field
    doubleValue Number
    Holds the value for a tag field with double type.
    enumValue String
    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.


    order Number
    (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.
    stringValue String
    Holds the value for a tag field with string type.
    timestampValue String
    Holds the value for a tag field with timestamp type.

    Import

    Tag can be imported using any of these accepted formats:

    • {{name}}

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

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

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v7.19.0 published on Thursday, Apr 18, 2024 by Pulumi