1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. dataplex
  5. DataProduct
Viewing docs for Google Cloud v9.15.0
published on Thursday, Mar 12, 2026 by Pulumi
gcp logo
Viewing docs for Google Cloud v9.15.0
published on Thursday, Mar 12, 2026 by Pulumi

    A data product is a curated collection of data assets, packaged to address specific use cases.

    Warning: This resource is in beta, and should be used with the terraform-provider-google-beta provider. See Provider Versions for more details on beta resources.

    To get more information about DataProduct, see:

    Example Usage

    Dataplex Data Product Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const example = new gcp.dataplex.DataProduct("example", {
        project: "my-project-name",
        location: "us-central1",
        dataProductId: "data-product-basic",
        displayName: "terraform data product",
        ownerEmails: ["gterraformtestuser@gmail.com"],
        accessGroups: [{
            id: "analyst",
            groupId: "analyst",
            displayName: "Data Analyst",
            principal: {
                googleGroup: "tf-test-analysts-_74391@example.com",
            },
        }],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    example = gcp.dataplex.DataProduct("example",
        project="my-project-name",
        location="us-central1",
        data_product_id="data-product-basic",
        display_name="terraform data product",
        owner_emails=["gterraformtestuser@gmail.com"],
        access_groups=[{
            "id": "analyst",
            "group_id": "analyst",
            "display_name": "Data Analyst",
            "principal": {
                "google_group": "tf-test-analysts-_74391@example.com",
            },
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/dataplex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := dataplex.NewDataProduct(ctx, "example", &dataplex.DataProductArgs{
    			Project:       pulumi.String("my-project-name"),
    			Location:      pulumi.String("us-central1"),
    			DataProductId: pulumi.String("data-product-basic"),
    			DisplayName:   pulumi.String("terraform data product"),
    			OwnerEmails: pulumi.StringArray{
    				pulumi.String("gterraformtestuser@gmail.com"),
    			},
    			AccessGroups: dataplex.DataProductAccessGroupArray{
    				&dataplex.DataProductAccessGroupArgs{
    					Id:          pulumi.String("analyst"),
    					GroupId:     pulumi.String("analyst"),
    					DisplayName: pulumi.String("Data Analyst"),
    					Principal: &dataplex.DataProductAccessGroupPrincipalArgs{
    						GoogleGroup: pulumi.String("tf-test-analysts-_74391@example.com"),
    					},
    				},
    			},
    		})
    		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 example = new Gcp.DataPlex.DataProduct("example", new()
        {
            Project = "my-project-name",
            Location = "us-central1",
            DataProductId = "data-product-basic",
            DisplayName = "terraform data product",
            OwnerEmails = new[]
            {
                "gterraformtestuser@gmail.com",
            },
            AccessGroups = new[]
            {
                new Gcp.DataPlex.Inputs.DataProductAccessGroupArgs
                {
                    Id = "analyst",
                    GroupId = "analyst",
                    DisplayName = "Data Analyst",
                    Principal = new Gcp.DataPlex.Inputs.DataProductAccessGroupPrincipalArgs
                    {
                        GoogleGroup = "tf-test-analysts-_74391@example.com",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.dataplex.DataProduct;
    import com.pulumi.gcp.dataplex.DataProductArgs;
    import com.pulumi.gcp.dataplex.inputs.DataProductAccessGroupArgs;
    import com.pulumi.gcp.dataplex.inputs.DataProductAccessGroupPrincipalArgs;
    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 example = new DataProduct("example", DataProductArgs.builder()
                .project("my-project-name")
                .location("us-central1")
                .dataProductId("data-product-basic")
                .displayName("terraform data product")
                .ownerEmails("gterraformtestuser@gmail.com")
                .accessGroups(DataProductAccessGroupArgs.builder()
                    .id("analyst")
                    .groupId("analyst")
                    .displayName("Data Analyst")
                    .principal(DataProductAccessGroupPrincipalArgs.builder()
                        .googleGroup("tf-test-analysts-_74391@example.com")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: gcp:dataplex:DataProduct
        properties:
          project: my-project-name
          location: us-central1
          dataProductId: data-product-basic
          displayName: terraform data product
          ownerEmails:
            - gterraformtestuser@gmail.com
          accessGroups:
            - id: analyst
              groupId: analyst
              displayName: Data Analyst
              principal:
                googleGroup: tf-test-analysts-_74391@example.com
    

    Dataplex Data Product Full

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const example = new gcp.dataplex.DataProduct("example", {
        project: "my-project-name",
        location: "us-central1",
        dataProductId: "data-product-full",
        displayName: "DP Full Test: Special Chars !@#$",
        description: "Updated with emojis ๐Ÿš€ and brackets {test}",
        ownerEmails: ["gterraformtestuser@gmail.com"],
        labels: {
            env: "manual-test",
        },
        accessGroups: [
            {
                id: "analyst",
                groupId: "analyst",
                displayName: "Data Analyst - Updated",
                description: "In-place update verified",
                principal: {
                    googleGroup: "tf-test-analysts-_16511@example.com",
                },
            },
            {
                id: "scientist",
                groupId: "scientist",
                displayName: "Data Scientist",
                principal: {
                    googleGroup: "tf-test-scientists-_8493@example.com",
                },
            },
        ],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    example = gcp.dataplex.DataProduct("example",
        project="my-project-name",
        location="us-central1",
        data_product_id="data-product-full",
        display_name="DP Full Test: Special Chars !@#$",
        description="Updated with emojis ๐Ÿš€ and brackets {test}",
        owner_emails=["gterraformtestuser@gmail.com"],
        labels={
            "env": "manual-test",
        },
        access_groups=[
            {
                "id": "analyst",
                "group_id": "analyst",
                "display_name": "Data Analyst - Updated",
                "description": "In-place update verified",
                "principal": {
                    "google_group": "tf-test-analysts-_16511@example.com",
                },
            },
            {
                "id": "scientist",
                "group_id": "scientist",
                "display_name": "Data Scientist",
                "principal": {
                    "google_group": "tf-test-scientists-_8493@example.com",
                },
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/dataplex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := dataplex.NewDataProduct(ctx, "example", &dataplex.DataProductArgs{
    			Project:       pulumi.String("my-project-name"),
    			Location:      pulumi.String("us-central1"),
    			DataProductId: pulumi.String("data-product-full"),
    			DisplayName:   pulumi.String("DP Full Test: Special Chars !@#$"),
    			Description:   pulumi.String("Updated with emojis ๐Ÿš€ and brackets {test}"),
    			OwnerEmails: pulumi.StringArray{
    				pulumi.String("gterraformtestuser@gmail.com"),
    			},
    			Labels: pulumi.StringMap{
    				"env": pulumi.String("manual-test"),
    			},
    			AccessGroups: dataplex.DataProductAccessGroupArray{
    				&dataplex.DataProductAccessGroupArgs{
    					Id:          pulumi.String("analyst"),
    					GroupId:     pulumi.String("analyst"),
    					DisplayName: pulumi.String("Data Analyst - Updated"),
    					Description: pulumi.String("In-place update verified"),
    					Principal: &dataplex.DataProductAccessGroupPrincipalArgs{
    						GoogleGroup: pulumi.String("tf-test-analysts-_16511@example.com"),
    					},
    				},
    				&dataplex.DataProductAccessGroupArgs{
    					Id:          pulumi.String("scientist"),
    					GroupId:     pulumi.String("scientist"),
    					DisplayName: pulumi.String("Data Scientist"),
    					Principal: &dataplex.DataProductAccessGroupPrincipalArgs{
    						GoogleGroup: pulumi.String("tf-test-scientists-_8493@example.com"),
    					},
    				},
    			},
    		})
    		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 example = new Gcp.DataPlex.DataProduct("example", new()
        {
            Project = "my-project-name",
            Location = "us-central1",
            DataProductId = "data-product-full",
            DisplayName = "DP Full Test: Special Chars !@#$",
            Description = "Updated with emojis ๐Ÿš€ and brackets {test}",
            OwnerEmails = new[]
            {
                "gterraformtestuser@gmail.com",
            },
            Labels = 
            {
                { "env", "manual-test" },
            },
            AccessGroups = new[]
            {
                new Gcp.DataPlex.Inputs.DataProductAccessGroupArgs
                {
                    Id = "analyst",
                    GroupId = "analyst",
                    DisplayName = "Data Analyst - Updated",
                    Description = "In-place update verified",
                    Principal = new Gcp.DataPlex.Inputs.DataProductAccessGroupPrincipalArgs
                    {
                        GoogleGroup = "tf-test-analysts-_16511@example.com",
                    },
                },
                new Gcp.DataPlex.Inputs.DataProductAccessGroupArgs
                {
                    Id = "scientist",
                    GroupId = "scientist",
                    DisplayName = "Data Scientist",
                    Principal = new Gcp.DataPlex.Inputs.DataProductAccessGroupPrincipalArgs
                    {
                        GoogleGroup = "tf-test-scientists-_8493@example.com",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.dataplex.DataProduct;
    import com.pulumi.gcp.dataplex.DataProductArgs;
    import com.pulumi.gcp.dataplex.inputs.DataProductAccessGroupArgs;
    import com.pulumi.gcp.dataplex.inputs.DataProductAccessGroupPrincipalArgs;
    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 example = new DataProduct("example", DataProductArgs.builder()
                .project("my-project-name")
                .location("us-central1")
                .dataProductId("data-product-full")
                .displayName("DP Full Test: Special Chars !@#$")
                .description("Updated with emojis ๐Ÿš€ and brackets {test}")
                .ownerEmails("gterraformtestuser@gmail.com")
                .labels(Map.of("env", "manual-test"))
                .accessGroups(            
                    DataProductAccessGroupArgs.builder()
                        .id("analyst")
                        .groupId("analyst")
                        .displayName("Data Analyst - Updated")
                        .description("In-place update verified")
                        .principal(DataProductAccessGroupPrincipalArgs.builder()
                            .googleGroup("tf-test-analysts-_16511@example.com")
                            .build())
                        .build(),
                    DataProductAccessGroupArgs.builder()
                        .id("scientist")
                        .groupId("scientist")
                        .displayName("Data Scientist")
                        .principal(DataProductAccessGroupPrincipalArgs.builder()
                            .googleGroup("tf-test-scientists-_8493@example.com")
                            .build())
                        .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: gcp:dataplex:DataProduct
        properties:
          project: my-project-name
          location: us-central1
          dataProductId: data-product-full
          displayName: 'DP Full Test: Special Chars !@#$'
          description: "Updated with emojis \U0001F680 and brackets {test}"
          ownerEmails:
            - gterraformtestuser@gmail.com
          labels:
            env: manual-test
          accessGroups:
            - id: analyst
              groupId: analyst
              displayName: Data Analyst - Updated
              description: In-place update verified
              principal:
                googleGroup: tf-test-analysts-_16511@example.com
            - id: scientist
              groupId: scientist
              displayName: Data Scientist
              principal:
                googleGroup: tf-test-scientists-_8493@example.com
    

    Create DataProduct Resource

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

    Constructor syntax

    new DataProduct(name: string, args: DataProductArgs, opts?: CustomResourceOptions);
    @overload
    def DataProduct(resource_name: str,
                    args: DataProductArgs,
                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def DataProduct(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    data_product_id: Optional[str] = None,
                    display_name: Optional[str] = None,
                    location: Optional[str] = None,
                    owner_emails: Optional[Sequence[str]] = None,
                    access_groups: Optional[Sequence[DataProductAccessGroupArgs]] = None,
                    description: Optional[str] = None,
                    labels: Optional[Mapping[str, str]] = None,
                    project: Optional[str] = None)
    func NewDataProduct(ctx *Context, name string, args DataProductArgs, opts ...ResourceOption) (*DataProduct, error)
    public DataProduct(string name, DataProductArgs args, CustomResourceOptions? opts = null)
    public DataProduct(String name, DataProductArgs args)
    public DataProduct(String name, DataProductArgs args, CustomResourceOptions options)
    
    type: gcp:dataplex:DataProduct
    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 DataProductArgs
    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 DataProductArgs
    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 DataProductArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args DataProductArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args DataProductArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

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

    var dataProductResource = new Gcp.DataPlex.DataProduct("dataProductResource", new()
    {
        DataProductId = "string",
        DisplayName = "string",
        Location = "string",
        OwnerEmails = new[]
        {
            "string",
        },
        AccessGroups = new[]
        {
            new Gcp.DataPlex.Inputs.DataProductAccessGroupArgs
            {
                DisplayName = "string",
                GroupId = "string",
                Id = "string",
                Principal = new Gcp.DataPlex.Inputs.DataProductAccessGroupPrincipalArgs
                {
                    GoogleGroup = "string",
                },
                Description = "string",
            },
        },
        Description = "string",
        Labels = 
        {
            { "string", "string" },
        },
        Project = "string",
    });
    
    example, err := dataplex.NewDataProduct(ctx, "dataProductResource", &dataplex.DataProductArgs{
    	DataProductId: pulumi.String("string"),
    	DisplayName:   pulumi.String("string"),
    	Location:      pulumi.String("string"),
    	OwnerEmails: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	AccessGroups: dataplex.DataProductAccessGroupArray{
    		&dataplex.DataProductAccessGroupArgs{
    			DisplayName: pulumi.String("string"),
    			GroupId:     pulumi.String("string"),
    			Id:          pulumi.String("string"),
    			Principal: &dataplex.DataProductAccessGroupPrincipalArgs{
    				GoogleGroup: pulumi.String("string"),
    			},
    			Description: pulumi.String("string"),
    		},
    	},
    	Description: pulumi.String("string"),
    	Labels: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Project: pulumi.String("string"),
    })
    
    var dataProductResource = new DataProduct("dataProductResource", DataProductArgs.builder()
        .dataProductId("string")
        .displayName("string")
        .location("string")
        .ownerEmails("string")
        .accessGroups(DataProductAccessGroupArgs.builder()
            .displayName("string")
            .groupId("string")
            .id("string")
            .principal(DataProductAccessGroupPrincipalArgs.builder()
                .googleGroup("string")
                .build())
            .description("string")
            .build())
        .description("string")
        .labels(Map.of("string", "string"))
        .project("string")
        .build());
    
    data_product_resource = gcp.dataplex.DataProduct("dataProductResource",
        data_product_id="string",
        display_name="string",
        location="string",
        owner_emails=["string"],
        access_groups=[{
            "display_name": "string",
            "group_id": "string",
            "id": "string",
            "principal": {
                "google_group": "string",
            },
            "description": "string",
        }],
        description="string",
        labels={
            "string": "string",
        },
        project="string")
    
    const dataProductResource = new gcp.dataplex.DataProduct("dataProductResource", {
        dataProductId: "string",
        displayName: "string",
        location: "string",
        ownerEmails: ["string"],
        accessGroups: [{
            displayName: "string",
            groupId: "string",
            id: "string",
            principal: {
                googleGroup: "string",
            },
            description: "string",
        }],
        description: "string",
        labels: {
            string: "string",
        },
        project: "string",
    });
    
    type: gcp:dataplex:DataProduct
    properties:
        accessGroups:
            - description: string
              displayName: string
              groupId: string
              id: string
              principal:
                googleGroup: string
        dataProductId: string
        description: string
        displayName: string
        labels:
            string: string
        location: string
        ownerEmails:
            - string
        project: string
    

    DataProduct Resource Properties

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

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The DataProduct resource accepts the following input properties:

    DataProductId string
    The ID of the data product.
    DisplayName string
    User-friendly display name.
    Location string
    The location for the data product.
    OwnerEmails List<string>
    Emails of the owners.
    AccessGroups List<DataProductAccessGroup>
    Custom user defined access groups at the data product level. Structure is documented below.
    Description string
    Description of the data product.
    Labels Dictionary<string, string>
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    DataProductId string
    The ID of the data product.
    DisplayName string
    User-friendly display name.
    Location string
    The location for the data product.
    OwnerEmails []string
    Emails of the owners.
    AccessGroups []DataProductAccessGroupArgs
    Custom user defined access groups at the data product level. Structure is documented below.
    Description string
    Description of the data product.
    Labels map[string]string
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    dataProductId String
    The ID of the data product.
    displayName String
    User-friendly display name.
    location String
    The location for the data product.
    ownerEmails List<String>
    Emails of the owners.
    accessGroups List<DataProductAccessGroup>
    Custom user defined access groups at the data product level. Structure is documented below.
    description String
    Description of the data product.
    labels Map<String,String>
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    dataProductId string
    The ID of the data product.
    displayName string
    User-friendly display name.
    location string
    The location for the data product.
    ownerEmails string[]
    Emails of the owners.
    accessGroups DataProductAccessGroup[]
    Custom user defined access groups at the data product level. Structure is documented below.
    description string
    Description of the data product.
    labels {[key: string]: string}
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    data_product_id str
    The ID of the data product.
    display_name str
    User-friendly display name.
    location str
    The location for the data product.
    owner_emails Sequence[str]
    Emails of the owners.
    access_groups Sequence[DataProductAccessGroupArgs]
    Custom user defined access groups at the data product level. Structure is documented below.
    description str
    Description of the data product.
    labels Mapping[str, str]
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    dataProductId String
    The ID of the data product.
    displayName String
    User-friendly display name.
    location String
    The location for the data product.
    ownerEmails List<String>
    Emails of the owners.
    accessGroups List<Property Map>
    Custom user defined access groups at the data product level. Structure is documented below.
    description String
    Description of the data product.
    labels Map<String>
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

    Outputs

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

    AssetCount int
    Number of associated data assets.
    CreateTime string
    Creation timestamp.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Checksum for concurrency control.
    Id string
    The provider-assigned unique ID for this managed resource.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Uid string
    System generated unique ID.
    UpdateTime string
    Last update timestamp.
    AssetCount int
    Number of associated data assets.
    CreateTime string
    Creation timestamp.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Checksum for concurrency control.
    Id string
    The provider-assigned unique ID for this managed resource.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Uid string
    System generated unique ID.
    UpdateTime string
    Last update timestamp.
    assetCount Integer
    Number of associated data assets.
    createTime String
    Creation timestamp.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Checksum for concurrency control.
    id String
    The provider-assigned unique ID for this managed resource.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid String
    System generated unique ID.
    updateTime String
    Last update timestamp.
    assetCount number
    Number of associated data assets.
    createTime string
    Creation timestamp.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Checksum for concurrency control.
    id string
    The provider-assigned unique ID for this managed resource.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid string
    System generated unique ID.
    updateTime string
    Last update timestamp.
    asset_count int
    Number of associated data assets.
    create_time str
    Creation timestamp.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag str
    Checksum for concurrency control.
    id str
    The provider-assigned unique ID for this managed resource.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid str
    System generated unique ID.
    update_time str
    Last update timestamp.
    assetCount Number
    Number of associated data assets.
    createTime String
    Creation timestamp.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Checksum for concurrency control.
    id String
    The provider-assigned unique ID for this managed resource.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid String
    System generated unique ID.
    updateTime String
    Last update timestamp.

    Look up Existing DataProduct Resource

    Get an existing DataProduct 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?: DataProductState, opts?: CustomResourceOptions): DataProduct
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            access_groups: Optional[Sequence[DataProductAccessGroupArgs]] = None,
            asset_count: Optional[int] = None,
            create_time: Optional[str] = None,
            data_product_id: Optional[str] = None,
            description: Optional[str] = None,
            display_name: Optional[str] = None,
            effective_labels: Optional[Mapping[str, str]] = None,
            etag: Optional[str] = None,
            labels: Optional[Mapping[str, str]] = None,
            location: Optional[str] = None,
            owner_emails: Optional[Sequence[str]] = None,
            project: Optional[str] = None,
            pulumi_labels: Optional[Mapping[str, str]] = None,
            uid: Optional[str] = None,
            update_time: Optional[str] = None) -> DataProduct
    func GetDataProduct(ctx *Context, name string, id IDInput, state *DataProductState, opts ...ResourceOption) (*DataProduct, error)
    public static DataProduct Get(string name, Input<string> id, DataProductState? state, CustomResourceOptions? opts = null)
    public static DataProduct get(String name, Output<String> id, DataProductState state, CustomResourceOptions options)
    resources:  _:    type: gcp:dataplex:DataProduct    get:      id: ${id}
    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:
    AccessGroups List<DataProductAccessGroup>
    Custom user defined access groups at the data product level. Structure is documented below.
    AssetCount int
    Number of associated data assets.
    CreateTime string
    Creation timestamp.
    DataProductId string
    The ID of the data product.
    Description string
    Description of the data product.
    DisplayName string
    User-friendly display name.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Checksum for concurrency control.
    Labels Dictionary<string, string>
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Location string
    The location for the data product.
    OwnerEmails List<string>
    Emails of the owners.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Uid string
    System generated unique ID.
    UpdateTime string
    Last update timestamp.
    AccessGroups []DataProductAccessGroupArgs
    Custom user defined access groups at the data product level. Structure is documented below.
    AssetCount int
    Number of associated data assets.
    CreateTime string
    Creation timestamp.
    DataProductId string
    The ID of the data product.
    Description string
    Description of the data product.
    DisplayName string
    User-friendly display name.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Checksum for concurrency control.
    Labels map[string]string
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Location string
    The location for the data product.
    OwnerEmails []string
    Emails of the owners.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Uid string
    System generated unique ID.
    UpdateTime string
    Last update timestamp.
    accessGroups List<DataProductAccessGroup>
    Custom user defined access groups at the data product level. Structure is documented below.
    assetCount Integer
    Number of associated data assets.
    createTime String
    Creation timestamp.
    dataProductId String
    The ID of the data product.
    description String
    Description of the data product.
    displayName String
    User-friendly display name.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Checksum for concurrency control.
    labels Map<String,String>
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location String
    The location for the data product.
    ownerEmails List<String>
    Emails of the owners.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid String
    System generated unique ID.
    updateTime String
    Last update timestamp.
    accessGroups DataProductAccessGroup[]
    Custom user defined access groups at the data product level. Structure is documented below.
    assetCount number
    Number of associated data assets.
    createTime string
    Creation timestamp.
    dataProductId string
    The ID of the data product.
    description string
    Description of the data product.
    displayName string
    User-friendly display name.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Checksum for concurrency control.
    labels {[key: string]: string}
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location string
    The location for the data product.
    ownerEmails string[]
    Emails of the owners.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid string
    System generated unique ID.
    updateTime string
    Last update timestamp.
    access_groups Sequence[DataProductAccessGroupArgs]
    Custom user defined access groups at the data product level. Structure is documented below.
    asset_count int
    Number of associated data assets.
    create_time str
    Creation timestamp.
    data_product_id str
    The ID of the data product.
    description str
    Description of the data product.
    display_name str
    User-friendly display name.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag str
    Checksum for concurrency control.
    labels Mapping[str, str]
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location str
    The location for the data product.
    owner_emails Sequence[str]
    Emails of the owners.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid str
    System generated unique ID.
    update_time str
    Last update timestamp.
    accessGroups List<Property Map>
    Custom user defined access groups at the data product level. Structure is documented below.
    assetCount Number
    Number of associated data assets.
    createTime String
    Creation timestamp.
    dataProductId String
    The ID of the data product.
    description String
    Description of the data product.
    displayName String
    User-friendly display name.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Checksum for concurrency control.
    labels Map<String>
    User-defined labels. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    location String
    The location for the data product.
    ownerEmails List<String>
    Emails of the owners.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    uid String
    System generated unique ID.
    updateTime String
    Last update timestamp.

    Supporting Types

    DataProductAccessGroup, DataProductAccessGroupArgs

    DisplayName string
    User friendly display name.
    GroupId string
    Unique identifier of the access group.
    Id string
    The identifier for this object. Format specified above.
    Principal DataProductAccessGroupPrincipal
    The principal entity. Structure is documented below.
    Description string
    Description of the access group.
    DisplayName string
    User friendly display name.
    GroupId string
    Unique identifier of the access group.
    Id string
    The identifier for this object. Format specified above.
    Principal DataProductAccessGroupPrincipal
    The principal entity. Structure is documented below.
    Description string
    Description of the access group.
    displayName String
    User friendly display name.
    groupId String
    Unique identifier of the access group.
    id String
    The identifier for this object. Format specified above.
    principal DataProductAccessGroupPrincipal
    The principal entity. Structure is documented below.
    description String
    Description of the access group.
    displayName string
    User friendly display name.
    groupId string
    Unique identifier of the access group.
    id string
    The identifier for this object. Format specified above.
    principal DataProductAccessGroupPrincipal
    The principal entity. Structure is documented below.
    description string
    Description of the access group.
    display_name str
    User friendly display name.
    group_id str
    Unique identifier of the access group.
    id str
    The identifier for this object. Format specified above.
    principal DataProductAccessGroupPrincipal
    The principal entity. Structure is documented below.
    description str
    Description of the access group.
    displayName String
    User friendly display name.
    groupId String
    Unique identifier of the access group.
    id String
    The identifier for this object. Format specified above.
    principal Property Map
    The principal entity. Structure is documented below.
    description String
    Description of the access group.

    DataProductAccessGroupPrincipal, DataProductAccessGroupPrincipalArgs

    GoogleGroup string
    Email of the Google Group.
    GoogleGroup string
    Email of the Google Group.
    googleGroup String
    Email of the Google Group.
    googleGroup string
    Email of the Google Group.
    google_group str
    Email of the Google Group.
    googleGroup String
    Email of the Google Group.

    Import

    DataProduct can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/dataProducts/{{data_product_id}}
    • {{project}}/{{location}}/{{data_product_id}}
    • {{location}}/{{data_product_id}}

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

    $ pulumi import gcp:dataplex/dataProduct:DataProduct default projects/{{project}}/locations/{{location}}/dataProducts/{{data_product_id}}
    $ pulumi import gcp:dataplex/dataProduct:DataProduct default {{project}}/{{location}}/{{data_product_id}}
    $ pulumi import gcp:dataplex/dataProduct:DataProduct default {{location}}/{{data_product_id}}
    

    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
    Viewing docs for Google Cloud v9.15.0
    published on Thursday, Mar 12, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.