published on Monday, Jul 13, 2026 by Pulumi
published on Monday, Jul 13, 2026 by Pulumi
A Dataplex Metadata Feed monitors Dataplex metadata entries in a specified scope and publishes notifications of changes to a Cloud Pub/Sub topic.
Example Usage
Dataplex Metadata Feed Basic
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const project = gcp.organizations.getProject({});
const primary = new gcp.pubsub.Topic("primary", {name: "tf-test-feed-topic"});
const primaryPublisher = new gcp.pubsub.TopicIAMMember("primary_publisher", {
topic: primary.name,
role: "roles/pubsub.publisher",
member: project.then(project => `serviceAccount:service-${project.number}@gcp-sa-dataplex.iam.gserviceaccount.com`),
});
const primaryViewer = new gcp.pubsub.TopicIAMMember("primary_viewer", {
topic: primary.name,
role: "roles/pubsub.viewer",
member: project.then(project => `serviceAccount:service-${project.number}@gcp-sa-dataplex.iam.gserviceaccount.com`),
}, {
dependsOn: [primaryPublisher],
});
const group = new gcp.dataplex.EntryGroup("group", {
entryGroupId: "tf-test-feed-group",
project: "my-project-name",
location: "us-central1",
});
const type = new gcp.dataplex.EntryType("type", {
entryTypeId: "tf-test-feed-type",
project: "my-project-name",
location: "us-central1",
});
const aspect = new gcp.dataplex.AspectType("aspect", {
aspectTypeId: "tf-test-feed-aspect",
project: "my-project-name",
location: "us-central1",
metadataTemplate: `{
\\"name\\": \\"tf-test-template\\",
\\"type\\": \\"record\\",
\\"recordFields\\": [
{
\\"name\\": \\"type\\",
\\"type\\": \\"enum\\",
\\"annotations\\": {
\\"displayName\\": \\"Type\\",
\\"description\\": \\"Specifies the type of view represented by the entry.\\"
},
\\"index\\": 1,
\\"constraints\\": {
\\"required\\": true
},
\\"enumValues\\": [
{
\\"name\\": \\"VIEW\\",
\\"index\\": 1
}
]
}
]
}
`,
});
const primaryMetadataFeed = new gcp.dataplex.MetadataFeed("primary", {
metadataFeedId: "tf-test-feed",
location: "us-central1",
project: "my-project-name",
pubsubTopic: primary.id,
labels: {
foo: "bar",
},
filters: {
aspectTypes: [pulumi.all([project, aspect.aspectTypeId]).apply(([project, aspectTypeId]) => `projects/${project.number}/locations/us-central1/aspectTypes/${aspectTypeId}`)],
changeTypes: ["CREATE"],
entryTypes: [pulumi.all([project, type.entryTypeId]).apply(([project, entryTypeId]) => `projects/${project.number}/locations/us-central1/entryTypes/${entryTypeId}`)],
},
scope: {
entryGroups: [pulumi.all([project, group.entryGroupId]).apply(([project, entryGroupId]) => `projects/${project.number}/locations/us-central1/entryGroups/${entryGroupId}`)],
},
}, {
dependsOn: [
primaryPublisher,
primaryViewer,
],
});
import pulumi
import pulumi_gcp as gcp
project = gcp.organizations.get_project()
primary = gcp.pubsub.Topic("primary", name="tf-test-feed-topic")
primary_publisher = gcp.pubsub.TopicIAMMember("primary_publisher",
topic=primary.name,
role="roles/pubsub.publisher",
member=f"serviceAccount:service-{project.number}@gcp-sa-dataplex.iam.gserviceaccount.com")
primary_viewer = gcp.pubsub.TopicIAMMember("primary_viewer",
topic=primary.name,
role="roles/pubsub.viewer",
member=f"serviceAccount:service-{project.number}@gcp-sa-dataplex.iam.gserviceaccount.com",
opts = pulumi.ResourceOptions(depends_on=[primary_publisher]))
group = gcp.dataplex.EntryGroup("group",
entry_group_id="tf-test-feed-group",
project="my-project-name",
location="us-central1")
type = gcp.dataplex.EntryType("type",
entry_type_id="tf-test-feed-type",
project="my-project-name",
location="us-central1")
aspect = gcp.dataplex.AspectType("aspect",
aspect_type_id="tf-test-feed-aspect",
project="my-project-name",
location="us-central1",
metadata_template="""{
\"name\": \"tf-test-template\",
\"type\": \"record\",
\"recordFields\": [
{
\"name\": \"type\",
\"type\": \"enum\",
\"annotations\": {
\"displayName\": \"Type\",
\"description\": \"Specifies the type of view represented by the entry.\"
},
\"index\": 1,
\"constraints\": {
\"required\": true
},
\"enumValues\": [
{
\"name\": \"VIEW\",
\"index\": 1
}
]
}
]
}
""")
primary_metadata_feed = gcp.dataplex.MetadataFeed("primary",
metadata_feed_id="tf-test-feed",
location="us-central1",
project="my-project-name",
pubsub_topic=primary.id,
labels={
"foo": "bar",
},
filters={
"aspect_types": [aspect.aspect_type_id.apply(lambda aspect_type_id: f"projects/{project.number}/locations/us-central1/aspectTypes/{aspect_type_id}")],
"change_types": ["CREATE"],
"entry_types": [type.entry_type_id.apply(lambda entry_type_id: f"projects/{project.number}/locations/us-central1/entryTypes/{entry_type_id}")],
},
scope={
"entry_groups": [group.entry_group_id.apply(lambda entry_group_id: f"projects/{project.number}/locations/us-central1/entryGroups/{entry_group_id}")],
},
opts = pulumi.ResourceOptions(depends_on=[
primary_publisher,
primary_viewer,
]))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/dataplex"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
primary, err := pubsub.NewTopic(ctx, "primary", &pubsub.TopicArgs{
Name: pulumi.String("tf-test-feed-topic"),
})
if err != nil {
return err
}
primaryPublisher, err := pubsub.NewTopicIAMMember(ctx, "primary_publisher", &pubsub.TopicIAMMemberArgs{
Topic: primary.Name,
Role: pulumi.String("roles/pubsub.publisher"),
Member: pulumi.Sprintf("serviceAccount:service-%v@gcp-sa-dataplex.iam.gserviceaccount.com", project.Number),
})
if err != nil {
return err
}
primaryViewer, err := pubsub.NewTopicIAMMember(ctx, "primary_viewer", &pubsub.TopicIAMMemberArgs{
Topic: primary.Name,
Role: pulumi.String("roles/pubsub.viewer"),
Member: pulumi.Sprintf("serviceAccount:service-%v@gcp-sa-dataplex.iam.gserviceaccount.com", project.Number),
}, pulumi.DependsOn([]pulumi.Resource{
primaryPublisher,
}))
if err != nil {
return err
}
group, err := dataplex.NewEntryGroup(ctx, "group", &dataplex.EntryGroupArgs{
EntryGroupId: pulumi.String("tf-test-feed-group"),
Project: pulumi.String("my-project-name"),
Location: pulumi.String("us-central1"),
})
if err != nil {
return err
}
_type, err := dataplex.NewEntryType(ctx, "type", &dataplex.EntryTypeArgs{
EntryTypeId: pulumi.String("tf-test-feed-type"),
Project: pulumi.String("my-project-name"),
Location: pulumi.String("us-central1"),
})
if err != nil {
return err
}
aspect, err := dataplex.NewAspectType(ctx, "aspect", &dataplex.AspectTypeArgs{
AspectTypeId: pulumi.String("tf-test-feed-aspect"),
Project: pulumi.String("my-project-name"),
Location: pulumi.String("us-central1"),
MetadataTemplate: pulumi.String(`{
\"name\": \"tf-test-template\",
\"type\": \"record\",
\"recordFields\": [
{
\"name\": \"type\",
\"type\": \"enum\",
\"annotations\": {
\"displayName\": \"Type\",
\"description\": \"Specifies the type of view represented by the entry.\"
},
\"index\": 1,
\"constraints\": {
\"required\": true
},
\"enumValues\": [
{
\"name\": \"VIEW\",
\"index\": 1
}
]
}
]
}
`),
})
if err != nil {
return err
}
_, err = dataplex.NewMetadataFeed(ctx, "primary", &dataplex.MetadataFeedArgs{
MetadataFeedId: pulumi.String("tf-test-feed"),
Location: pulumi.String("us-central1"),
Project: pulumi.String("my-project-name"),
PubsubTopic: primary.ID(),
Labels: pulumi.StringMap{
"foo": pulumi.String("bar"),
},
Filters: &dataplex.MetadataFeedFiltersArgs{
AspectTypes: pulumi.StringArray{
aspect.AspectTypeId.ApplyT(func(aspectTypeId *string) (string, error) {
return fmt.Sprintf("projects/%v/locations/us-central1/aspectTypes/%v", project.Number, aspectTypeId), nil
}).(pulumi.StringOutput),
},
ChangeTypes: pulumi.StringArray{
pulumi.String("CREATE"),
},
EntryTypes: pulumi.StringArray{
_type.EntryTypeId.ApplyT(func(entryTypeId *string) (string, error) {
return fmt.Sprintf("projects/%v/locations/us-central1/entryTypes/%v", project.Number, entryTypeId), nil
}).(pulumi.StringOutput),
},
},
Scope: &dataplex.MetadataFeedScopeArgs{
EntryGroups: pulumi.StringArray{
group.EntryGroupId.ApplyT(func(entryGroupId *string) (string, error) {
return fmt.Sprintf("projects/%v/locations/us-central1/entryGroups/%v", project.Number, entryGroupId), nil
}).(pulumi.StringOutput),
},
},
}, pulumi.DependsOn([]pulumi.Resource{
primaryPublisher,
primaryViewer,
}))
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 project = Gcp.Organizations.GetProject.Invoke();
var primary = new Gcp.PubSub.Topic("primary", new()
{
Name = "tf-test-feed-topic",
});
var primaryPublisher = new Gcp.PubSub.TopicIAMMember("primary_publisher", new()
{
Topic = primary.Name,
Role = "roles/pubsub.publisher",
Member = $"serviceAccount:service-{project.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-dataplex.iam.gserviceaccount.com",
});
var primaryViewer = new Gcp.PubSub.TopicIAMMember("primary_viewer", new()
{
Topic = primary.Name,
Role = "roles/pubsub.viewer",
Member = $"serviceAccount:service-{project.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-dataplex.iam.gserviceaccount.com",
}, new CustomResourceOptions
{
DependsOn =
{
primaryPublisher,
},
});
var @group = new Gcp.DataPlex.EntryGroup("group", new()
{
EntryGroupId = "tf-test-feed-group",
Project = "my-project-name",
Location = "us-central1",
});
var type = new Gcp.DataPlex.EntryType("type", new()
{
EntryTypeId = "tf-test-feed-type",
Project = "my-project-name",
Location = "us-central1",
});
var aspect = new Gcp.DataPlex.AspectType("aspect", new()
{
AspectTypeId = "tf-test-feed-aspect",
Project = "my-project-name",
Location = "us-central1",
MetadataTemplate = @"{
\""name\"": \""tf-test-template\"",
\""type\"": \""record\"",
\""recordFields\"": [
{
\""name\"": \""type\"",
\""type\"": \""enum\"",
\""annotations\"": {
\""displayName\"": \""Type\"",
\""description\"": \""Specifies the type of view represented by the entry.\""
},
\""index\"": 1,
\""constraints\"": {
\""required\"": true
},
\""enumValues\"": [
{
\""name\"": \""VIEW\"",
\""index\"": 1
}
]
}
]
}
",
});
var primaryMetadataFeed = new Gcp.DataPlex.MetadataFeed("primary", new()
{
MetadataFeedId = "tf-test-feed",
Location = "us-central1",
Project = "my-project-name",
PubsubTopic = primary.Id,
Labels =
{
{ "foo", "bar" },
},
Filters = new Gcp.DataPlex.Inputs.MetadataFeedFiltersArgs
{
AspectTypes = new[]
{
Output.Tuple(project, aspect.AspectTypeId).Apply(values =>
{
var project = values.Item1;
var aspectTypeId = values.Item2;
return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/locations/us-central1/aspectTypes/{aspectTypeId}";
}),
},
ChangeTypes = new[]
{
"CREATE",
},
EntryTypes = new[]
{
Output.Tuple(project, type.EntryTypeId).Apply(values =>
{
var project = values.Item1;
var entryTypeId = values.Item2;
return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/locations/us-central1/entryTypes/{entryTypeId}";
}),
},
},
Scope = new Gcp.DataPlex.Inputs.MetadataFeedScopeArgs
{
EntryGroups = new[]
{
Output.Tuple(project, @group.EntryGroupId).Apply(values =>
{
var project = values.Item1;
var entryGroupId = values.Item2;
return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/locations/us-central1/entryGroups/{entryGroupId}";
}),
},
},
}, new CustomResourceOptions
{
DependsOn =
{
primaryPublisher,
primaryViewer,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.pubsub.Topic;
import com.pulumi.gcp.pubsub.TopicArgs;
import com.pulumi.gcp.pubsub.TopicIAMMember;
import com.pulumi.gcp.pubsub.TopicIAMMemberArgs;
import com.pulumi.gcp.dataplex.EntryGroup;
import com.pulumi.gcp.dataplex.EntryGroupArgs;
import com.pulumi.gcp.dataplex.EntryType;
import com.pulumi.gcp.dataplex.EntryTypeArgs;
import com.pulumi.gcp.dataplex.AspectType;
import com.pulumi.gcp.dataplex.AspectTypeArgs;
import com.pulumi.gcp.dataplex.MetadataFeed;
import com.pulumi.gcp.dataplex.MetadataFeedArgs;
import com.pulumi.gcp.dataplex.inputs.MetadataFeedFiltersArgs;
import com.pulumi.gcp.dataplex.inputs.MetadataFeedScopeArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
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) {
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var primary = new Topic("primary", TopicArgs.builder()
.name("tf-test-feed-topic")
.build());
var primaryPublisher = new TopicIAMMember("primaryPublisher", TopicIAMMemberArgs.builder()
.topic(primary.name())
.role("roles/pubsub.publisher")
.member(String.format("serviceAccount:service-%s@gcp-sa-dataplex.iam.gserviceaccount.com", project.number()))
.build());
var primaryViewer = new TopicIAMMember("primaryViewer", TopicIAMMemberArgs.builder()
.topic(primary.name())
.role("roles/pubsub.viewer")
.member(String.format("serviceAccount:service-%s@gcp-sa-dataplex.iam.gserviceaccount.com", project.number()))
.build(), CustomResourceOptions.builder()
.dependsOn(primaryPublisher)
.build());
var group = new EntryGroup("group", EntryGroupArgs.builder()
.entryGroupId("tf-test-feed-group")
.project("my-project-name")
.location("us-central1")
.build());
var type = new EntryType("type", EntryTypeArgs.builder()
.entryTypeId("tf-test-feed-type")
.project("my-project-name")
.location("us-central1")
.build());
var aspect = new AspectType("aspect", AspectTypeArgs.builder()
.aspectTypeId("tf-test-feed-aspect")
.project("my-project-name")
.location("us-central1")
.metadataTemplate("""
{
\"name\": \"tf-test-template\",
\"type\": \"record\",
\"recordFields\": [
{
\"name\": \"type\",
\"type\": \"enum\",
\"annotations\": {
\"displayName\": \"Type\",
\"description\": \"Specifies the type of view represented by the entry.\"
},
\"index\": 1,
\"constraints\": {
\"required\": true
},
\"enumValues\": [
{
\"name\": \"VIEW\",
\"index\": 1
}
]
}
]
}
""")
.build());
var primaryMetadataFeed = new MetadataFeed("primaryMetadataFeed", MetadataFeedArgs.builder()
.metadataFeedId("tf-test-feed")
.location("us-central1")
.project("my-project-name")
.pubsubTopic(primary.id())
.labels(Map.of("foo", "bar"))
.filters(MetadataFeedFiltersArgs.builder()
.aspectTypes(aspect.aspectTypeId().applyValue(_aspectTypeId -> String.format("projects/%s/locations/us-central1/aspectTypes/%s", project.number(),_aspectTypeId)))
.changeTypes("CREATE")
.entryTypes(type.entryTypeId().applyValue(_entryTypeId -> String.format("projects/%s/locations/us-central1/entryTypes/%s", project.number(),_entryTypeId)))
.build())
.scope(MetadataFeedScopeArgs.builder()
.entryGroups(group.entryGroupId().applyValue(_entryGroupId -> String.format("projects/%s/locations/us-central1/entryGroups/%s", project.number(),_entryGroupId)))
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(
primaryPublisher,
primaryViewer)
.build());
}
}
resources:
primary:
type: gcp:pubsub:Topic
properties:
name: tf-test-feed-topic
primaryPublisher:
type: gcp:pubsub:TopicIAMMember
name: primary_publisher
properties:
topic: ${primary.name}
role: roles/pubsub.publisher
member: serviceAccount:service-${project.number}@gcp-sa-dataplex.iam.gserviceaccount.com
primaryViewer:
type: gcp:pubsub:TopicIAMMember
name: primary_viewer
properties:
topic: ${primary.name}
role: roles/pubsub.viewer
member: serviceAccount:service-${project.number}@gcp-sa-dataplex.iam.gserviceaccount.com
options:
dependsOn:
- ${primaryPublisher}
group:
type: gcp:dataplex:EntryGroup
properties:
entryGroupId: tf-test-feed-group
project: my-project-name
location: us-central1
type:
type: gcp:dataplex:EntryType
properties:
entryTypeId: tf-test-feed-type
project: my-project-name
location: us-central1
aspect:
type: gcp:dataplex:AspectType
properties:
aspectTypeId: tf-test-feed-aspect
project: my-project-name
location: us-central1
metadataTemplate: |
{
\"name\": \"tf-test-template\",
\"type\": \"record\",
\"recordFields\": [
{
\"name\": \"type\",
\"type\": \"enum\",
\"annotations\": {
\"displayName\": \"Type\",
\"description\": \"Specifies the type of view represented by the entry.\"
},
\"index\": 1,
\"constraints\": {
\"required\": true
},
\"enumValues\": [
{
\"name\": \"VIEW\",
\"index\": 1
}
]
}
]
}
primaryMetadataFeed:
type: gcp:dataplex:MetadataFeed
name: primary
properties:
metadataFeedId: tf-test-feed
location: us-central1
project: my-project-name
pubsubTopic: ${primary.id}
labels:
foo: bar
filters:
aspectTypes:
- projects/${project.number}/locations/us-central1/aspectTypes/${aspect.aspectTypeId}
changeTypes:
- CREATE
entryTypes:
- projects/${project.number}/locations/us-central1/entryTypes/${type.entryTypeId}
scope:
entryGroups:
- projects/${project.number}/locations/us-central1/entryGroups/${group.entryGroupId}
options:
dependsOn:
- ${primaryPublisher}
- ${primaryViewer}
variables:
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
data "gcp_organizations_getproject" "project" {
}
resource "gcp_pubsub_topic" "primary" {
name = "tf-test-feed-topic"
}
resource "gcp_pubsub_topiciammember" "primary_publisher" {
topic = gcp_pubsub_topic.primary.name
role = "roles/pubsub.publisher"
member ="serviceAccount:service-${data.gcp_organizations_getproject.project.number}@gcp-sa-dataplex.iam.gserviceaccount.com"
}
resource "gcp_pubsub_topiciammember" "primary_viewer" {
depends_on = [gcp_pubsub_topiciammember.primary_publisher]
topic = gcp_pubsub_topic.primary.name
role = "roles/pubsub.viewer"
member ="serviceAccount:service-${data.gcp_organizations_getproject.project.number}@gcp-sa-dataplex.iam.gserviceaccount.com"
}
resource "gcp_dataplex_entrygroup" "group" {
entry_group_id = "tf-test-feed-group"
project = "my-project-name"
location = "us-central1"
}
resource "gcp_dataplex_entrytype" "type" {
entry_type_id = "tf-test-feed-type"
project = "my-project-name"
location = "us-central1"
}
resource "gcp_dataplex_aspecttype" "aspect" {
aspect_type_id = "tf-test-feed-aspect"
project = "my-project-name"
location = "us-central1"
metadata_template = "{\n \\\"name\\\": \\\"tf-test-template\\\",\n \\\"type\\\": \\\"record\\\",\n \\\"recordFields\\\": [\n {\n \\\"name\\\": \\\"type\\\",\n \\\"type\\\": \\\"enum\\\",\n \\\"annotations\\\": {\n \\\"displayName\\\": \\\"Type\\\",\n \\\"description\\\": \\\"Specifies the type of view represented by the entry.\\\"\n },\n \\\"index\\\": 1,\n \\\"constraints\\\": {\n \\\"required\\\": true\n },\n \\\"enumValues\\\": [\n {\n \\\"name\\\": \\\"VIEW\\\",\n \\\"index\\\": 1\n }\n ]\n }\n ]\n}\n"
}
resource "gcp_dataplex_metadatafeed" "primary" {
depends_on = [gcp_pubsub_topiciammember.primary_publisher, gcp_pubsub_topiciammember.primary_viewer]
metadata_feed_id = "tf-test-feed"
location = "us-central1"
project = "my-project-name"
pubsub_topic = gcp_pubsub_topic.primary.id
labels = {
"foo" = "bar"
}
filters = {
aspect_types = ["projects/${data.gcp_organizations_getproject.project.number}/locations/us-central1/aspectTypes/${gcp_dataplex_aspecttype.aspect.aspect_type_id}"]
change_types = ["CREATE"]
entry_types = ["projects/${data.gcp_organizations_getproject.project.number}/locations/us-central1/entryTypes/${gcp_dataplex_entrytype.type.entry_type_id}"]
}
scope = {
entry_groups = ["projects/${data.gcp_organizations_getproject.project.number}/locations/us-central1/entryGroups/${gcp_dataplex_entrygroup.group.entry_group_id}"]
}
}
Create MetadataFeed Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new MetadataFeed(name: string, args: MetadataFeedArgs, opts?: CustomResourceOptions);@overload
def MetadataFeed(resource_name: str,
args: MetadataFeedArgs,
opts: Optional[ResourceOptions] = None)
@overload
def MetadataFeed(resource_name: str,
opts: Optional[ResourceOptions] = None,
location: Optional[str] = None,
metadata_feed_id: Optional[str] = None,
scope: Optional[MetadataFeedScopeArgs] = None,
deletion_policy: Optional[str] = None,
filters: Optional[MetadataFeedFiltersArgs] = None,
labels: Optional[Mapping[str, str]] = None,
project: Optional[str] = None,
pubsub_topic: Optional[str] = None)func NewMetadataFeed(ctx *Context, name string, args MetadataFeedArgs, opts ...ResourceOption) (*MetadataFeed, error)public MetadataFeed(string name, MetadataFeedArgs args, CustomResourceOptions? opts = null)
public MetadataFeed(String name, MetadataFeedArgs args)
public MetadataFeed(String name, MetadataFeedArgs args, CustomResourceOptions options)
type: gcp:dataplex:MetadataFeed
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "gcp_dataplex_metadatafeed" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args MetadataFeedArgs
- 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 MetadataFeedArgs
- 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 MetadataFeedArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args MetadataFeedArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args MetadataFeedArgs
- 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 metadataFeedResource = new Gcp.DataPlex.MetadataFeed("metadataFeedResource", new()
{
Location = "string",
MetadataFeedId = "string",
Scope = new Gcp.DataPlex.Inputs.MetadataFeedScopeArgs
{
EntryGroups = new[]
{
"string",
},
OrganizationLevel = false,
Projects = new[]
{
"string",
},
},
DeletionPolicy = "string",
Filters = new Gcp.DataPlex.Inputs.MetadataFeedFiltersArgs
{
AspectTypes = new[]
{
"string",
},
ChangeTypes = new[]
{
"string",
},
EntryTypes = new[]
{
"string",
},
},
Labels =
{
{ "string", "string" },
},
Project = "string",
PubsubTopic = "string",
});
example, err := dataplex.NewMetadataFeed(ctx, "metadataFeedResource", &dataplex.MetadataFeedArgs{
Location: pulumi.String("string"),
MetadataFeedId: pulumi.String("string"),
Scope: &dataplex.MetadataFeedScopeArgs{
EntryGroups: pulumi.StringArray{
pulumi.String("string"),
},
OrganizationLevel: pulumi.Bool(false),
Projects: pulumi.StringArray{
pulumi.String("string"),
},
},
DeletionPolicy: pulumi.String("string"),
Filters: &dataplex.MetadataFeedFiltersArgs{
AspectTypes: pulumi.StringArray{
pulumi.String("string"),
},
ChangeTypes: pulumi.StringArray{
pulumi.String("string"),
},
EntryTypes: pulumi.StringArray{
pulumi.String("string"),
},
},
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
Project: pulumi.String("string"),
PubsubTopic: pulumi.String("string"),
})
resource "gcp_dataplex_metadatafeed" "metadataFeedResource" {
location = "string"
metadata_feed_id = "string"
scope = {
entry_groups = ["string"]
organization_level = false
projects = ["string"]
}
deletion_policy = "string"
filters = {
aspect_types = ["string"]
change_types = ["string"]
entry_types = ["string"]
}
labels = {
"string" = "string"
}
project = "string"
pubsub_topic = "string"
}
var metadataFeedResource = new MetadataFeed("metadataFeedResource", MetadataFeedArgs.builder()
.location("string")
.metadataFeedId("string")
.scope(MetadataFeedScopeArgs.builder()
.entryGroups("string")
.organizationLevel(false)
.projects("string")
.build())
.deletionPolicy("string")
.filters(MetadataFeedFiltersArgs.builder()
.aspectTypes("string")
.changeTypes("string")
.entryTypes("string")
.build())
.labels(Map.of("string", "string"))
.project("string")
.pubsubTopic("string")
.build());
metadata_feed_resource = gcp.dataplex.MetadataFeed("metadataFeedResource",
location="string",
metadata_feed_id="string",
scope={
"entry_groups": ["string"],
"organization_level": False,
"projects": ["string"],
},
deletion_policy="string",
filters={
"aspect_types": ["string"],
"change_types": ["string"],
"entry_types": ["string"],
},
labels={
"string": "string",
},
project="string",
pubsub_topic="string")
const metadataFeedResource = new gcp.dataplex.MetadataFeed("metadataFeedResource", {
location: "string",
metadataFeedId: "string",
scope: {
entryGroups: ["string"],
organizationLevel: false,
projects: ["string"],
},
deletionPolicy: "string",
filters: {
aspectTypes: ["string"],
changeTypes: ["string"],
entryTypes: ["string"],
},
labels: {
string: "string",
},
project: "string",
pubsubTopic: "string",
});
type: gcp:dataplex:MetadataFeed
properties:
deletionPolicy: string
filters:
aspectTypes:
- string
changeTypes:
- string
entryTypes:
- string
labels:
string: string
location: string
metadataFeedId: string
project: string
pubsubTopic: string
scope:
entryGroups:
- string
organizationLevel: false
projects:
- string
MetadataFeed 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 MetadataFeed resource accepts the following input properties:
- Location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - Metadata
Feed stringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- Scope
Metadata
Feed Scope - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Filters
Metadata
Feed Filters - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor 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.
- Pubsub
Topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- Location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - Metadata
Feed stringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- Scope
Metadata
Feed Scope Args - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Filters
Metadata
Feed Filters Args - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor 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.
- Pubsub
Topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata_
feed_ stringid - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- scope object
- Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- deletion_
policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- filters object
- Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor 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.
- pubsub_
topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- location String
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata
Feed StringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- scope
Metadata
Feed Scope - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- filters
Metadata
Feed Filters - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor 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.
- pubsub
Topic String - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata
Feed stringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- scope
Metadata
Feed Scope - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- filters
Metadata
Feed Filters - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor 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.
- pubsub
Topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- location str
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata_
feed_ strid - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- scope
Metadata
Feed Scope Args - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- deletion_
policy str - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- filters
Metadata
Feed Filters Args - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor 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.
- pubsub_
topic str - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- location String
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata
Feed StringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- scope Property Map
- Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- filters Property Map
- Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor 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.
- pubsub
Topic String - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
Outputs
All input properties are implicitly available as output properties. Additionally, the MetadataFeed resource produces the following output properties:
- Create
Time string - The time when the feed was created.
- Effective
Labels 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.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- Update
Time string - The time when the feed was updated.
- Create
Time string - The time when the feed was created.
- Effective
Labels 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.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- Update
Time string - The time when the feed was updated.
- create_
time string - The time when the feed was created.
- effective_
labels map(string) - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- pulumi_
labels map(string) - The combination of labels configured directly on the resource and default labels configured on the provider.
- uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update_
time string - The time when the feed was updated.
- create
Time String - The time when the feed was created.
- effective
Labels 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.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- uid String
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update
Time String - The time when the feed was updated.
- create
Time string - The time when the feed was created.
- effective
Labels {[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.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update
Time string - The time when the feed was updated.
- create_
time str - The time when the feed was created.
- 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.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- uid str
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update_
time str - The time when the feed was updated.
- create
Time String - The time when the feed was created.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- uid String
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update
Time String - The time when the feed was updated.
Look up Existing MetadataFeed Resource
Get an existing MetadataFeed 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?: MetadataFeedState, opts?: CustomResourceOptions): MetadataFeed@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
create_time: Optional[str] = None,
deletion_policy: Optional[str] = None,
effective_labels: Optional[Mapping[str, str]] = None,
filters: Optional[MetadataFeedFiltersArgs] = None,
labels: Optional[Mapping[str, str]] = None,
location: Optional[str] = None,
metadata_feed_id: Optional[str] = None,
name: Optional[str] = None,
project: Optional[str] = None,
pubsub_topic: Optional[str] = None,
pulumi_labels: Optional[Mapping[str, str]] = None,
scope: Optional[MetadataFeedScopeArgs] = None,
uid: Optional[str] = None,
update_time: Optional[str] = None) -> MetadataFeedfunc GetMetadataFeed(ctx *Context, name string, id IDInput, state *MetadataFeedState, opts ...ResourceOption) (*MetadataFeed, error)public static MetadataFeed Get(string name, Input<string> id, MetadataFeedState? state, CustomResourceOptions? opts = null)public static MetadataFeed get(String name, Output<String> id, MetadataFeedState state, CustomResourceOptions options)resources: _: type: gcp:dataplex:MetadataFeed get: id: ${id}import {
to = gcp_dataplex_metadatafeed.example
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.
- Create
Time string - The time when the feed was created.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Effective
Labels 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.
- Filters
Metadata
Feed Filters - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor all of the labels present on the resource. - Location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - Metadata
Feed stringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- Name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pubsub
Topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Scope
Metadata
Feed Scope - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- Uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- Update
Time string - The time when the feed was updated.
- Create
Time string - The time when the feed was created.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Effective
Labels 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.
- Filters
Metadata
Feed Filters Args - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor all of the labels present on the resource. - Location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - Metadata
Feed stringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- Name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pubsub
Topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Scope
Metadata
Feed Scope Args - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- Uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- Update
Time string - The time when the feed was updated.
- create_
time string - The time when the feed was created.
- deletion_
policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- effective_
labels map(string) - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- filters object
- Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor all of the labels present on the resource. - location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata_
feed_ stringid - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pubsub_
topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- pulumi_
labels map(string) - The combination of labels configured directly on the resource and default labels configured on the provider.
- scope object
- Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update_
time string - The time when the feed was updated.
- create
Time String - The time when the feed was created.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- effective
Labels 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.
- filters
Metadata
Feed Filters - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor all of the labels present on the resource. - location String
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata
Feed StringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- name String
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pubsub
Topic String - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- scope
Metadata
Feed Scope - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- uid String
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update
Time String - The time when the feed was updated.
- create
Time string - The time when the feed was created.
- deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- effective
Labels {[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.
- filters
Metadata
Feed Filters - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor all of the labels present on the resource. - location string
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata
Feed stringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- name string
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pubsub
Topic string - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- scope
Metadata
Feed Scope - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- uid string
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update
Time string - The time when the feed was updated.
- create_
time str - The time when the feed was created.
- deletion_
policy str - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- 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.
- filters
Metadata
Feed Filters Args - Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor all of the labels present on the resource. - location str
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata_
feed_ strid - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- name str
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pubsub_
topic str - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- scope
Metadata
Feed Scope Args - Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- uid str
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update_
time str - The time when the feed was updated.
- create
Time String - The time when the feed was created.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- filters Property Map
- Filters defines the type of changes that you want to listen to. You can have multiple entry type filters and multiple aspect type filters. All of the entry type filters are OR'ed together. All of the aspect type filters are OR'ed together. All of the entry type filters and aspect type filters are AND'ed together. Structure is documented below.
- 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
effectiveLabelsfor all of the labels present on the resource. - location String
- Resource ID segment making up resource
name. It identifies the resource within its parent collection as described in https://google.aip.dev/122. - metadata
Feed StringId - The metadata job ID. If not provided, a unique ID is generated with the prefix metadata-job-.
- name String
- Identifier. The resource name of the metadata feed, in the format projects/{project_id_or_number}/locations/{location_id}/metadataFeeds/{metadata_feed_id}.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pubsub
Topic String - The pubsub topic that you want the metadata feed messages to publish to. Please grant Dataplex service account the permission to publish messages to the topic. The service account is: service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- scope Property Map
- Scope defines the scope of the metadata feed. Scopes are exclusive. Only one of the scopes can be specified. Structure is documented below.
- uid String
- A system-generated, globally unique ID for the metadata job. If the metadata job is deleted and then re-created with the same name, this ID is different.
- update
Time String - The time when the feed was updated.
Supporting Types
MetadataFeedFilters, MetadataFeedFiltersArgs
- Aspect
Types List<string> - The aspect types that you want to listen to. Depending on how the aspect is attached to the entry, in the format: projects/{project_id_or_number}/locations/{location}/aspectTypes/{aspect_type_id}.
- Change
Types List<string> - The type of change that you want to listen to. If not specified, all changes are published.
- Entry
Types List<string> - The entry types that you want to listen to, specified as relative resource names in the format projects/{project_id_or_number}/locations/{location}/entryTypes/{entry_type_id}. Only entries that belong to the specified entry types are published.
- Aspect
Types []string - The aspect types that you want to listen to. Depending on how the aspect is attached to the entry, in the format: projects/{project_id_or_number}/locations/{location}/aspectTypes/{aspect_type_id}.
- Change
Types []string - The type of change that you want to listen to. If not specified, all changes are published.
- Entry
Types []string - The entry types that you want to listen to, specified as relative resource names in the format projects/{project_id_or_number}/locations/{location}/entryTypes/{entry_type_id}. Only entries that belong to the specified entry types are published.
- aspect_
types list(string) - The aspect types that you want to listen to. Depending on how the aspect is attached to the entry, in the format: projects/{project_id_or_number}/locations/{location}/aspectTypes/{aspect_type_id}.
- change_
types list(string) - The type of change that you want to listen to. If not specified, all changes are published.
- entry_
types list(string) - The entry types that you want to listen to, specified as relative resource names in the format projects/{project_id_or_number}/locations/{location}/entryTypes/{entry_type_id}. Only entries that belong to the specified entry types are published.
- aspect
Types List<String> - The aspect types that you want to listen to. Depending on how the aspect is attached to the entry, in the format: projects/{project_id_or_number}/locations/{location}/aspectTypes/{aspect_type_id}.
- change
Types List<String> - The type of change that you want to listen to. If not specified, all changes are published.
- entry
Types List<String> - The entry types that you want to listen to, specified as relative resource names in the format projects/{project_id_or_number}/locations/{location}/entryTypes/{entry_type_id}. Only entries that belong to the specified entry types are published.
- aspect
Types string[] - The aspect types that you want to listen to. Depending on how the aspect is attached to the entry, in the format: projects/{project_id_or_number}/locations/{location}/aspectTypes/{aspect_type_id}.
- change
Types string[] - The type of change that you want to listen to. If not specified, all changes are published.
- entry
Types string[] - The entry types that you want to listen to, specified as relative resource names in the format projects/{project_id_or_number}/locations/{location}/entryTypes/{entry_type_id}. Only entries that belong to the specified entry types are published.
- aspect_
types Sequence[str] - The aspect types that you want to listen to. Depending on how the aspect is attached to the entry, in the format: projects/{project_id_or_number}/locations/{location}/aspectTypes/{aspect_type_id}.
- change_
types Sequence[str] - The type of change that you want to listen to. If not specified, all changes are published.
- entry_
types Sequence[str] - The entry types that you want to listen to, specified as relative resource names in the format projects/{project_id_or_number}/locations/{location}/entryTypes/{entry_type_id}. Only entries that belong to the specified entry types are published.
- aspect
Types List<String> - The aspect types that you want to listen to. Depending on how the aspect is attached to the entry, in the format: projects/{project_id_or_number}/locations/{location}/aspectTypes/{aspect_type_id}.
- change
Types List<String> - The type of change that you want to listen to. If not specified, all changes are published.
- entry
Types List<String> - The entry types that you want to listen to, specified as relative resource names in the format projects/{project_id_or_number}/locations/{location}/entryTypes/{entry_type_id}. Only entries that belong to the specified entry types are published.
MetadataFeedScope, MetadataFeedScopeArgs
- Entry
Groups List<string> - The entry groups whose entries you want to listen to. Must be in the format: projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.
- Organization
Level bool - Whether the metadata feed is at the organization-level. If true, all changes happened to the entries in the same organization as the feed are published. If false, you must specify a list of projects or a list of entry groups whose entries you want to listen to.The default is false.
- Projects List<string>
- The projects whose entries you want to listen to. Must be in the same organization as the feed. Must be in the format: projects/{project_id_or_number}.
- Entry
Groups []string - The entry groups whose entries you want to listen to. Must be in the format: projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.
- Organization
Level bool - Whether the metadata feed is at the organization-level. If true, all changes happened to the entries in the same organization as the feed are published. If false, you must specify a list of projects or a list of entry groups whose entries you want to listen to.The default is false.
- Projects []string
- The projects whose entries you want to listen to. Must be in the same organization as the feed. Must be in the format: projects/{project_id_or_number}.
- entry_
groups list(string) - The entry groups whose entries you want to listen to. Must be in the format: projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.
- organization_
level bool - Whether the metadata feed is at the organization-level. If true, all changes happened to the entries in the same organization as the feed are published. If false, you must specify a list of projects or a list of entry groups whose entries you want to listen to.The default is false.
- projects list(string)
- The projects whose entries you want to listen to. Must be in the same organization as the feed. Must be in the format: projects/{project_id_or_number}.
- entry
Groups List<String> - The entry groups whose entries you want to listen to. Must be in the format: projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.
- organization
Level Boolean - Whether the metadata feed is at the organization-level. If true, all changes happened to the entries in the same organization as the feed are published. If false, you must specify a list of projects or a list of entry groups whose entries you want to listen to.The default is false.
- projects List<String>
- The projects whose entries you want to listen to. Must be in the same organization as the feed. Must be in the format: projects/{project_id_or_number}.
- entry
Groups string[] - The entry groups whose entries you want to listen to. Must be in the format: projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.
- organization
Level boolean - Whether the metadata feed is at the organization-level. If true, all changes happened to the entries in the same organization as the feed are published. If false, you must specify a list of projects or a list of entry groups whose entries you want to listen to.The default is false.
- projects string[]
- The projects whose entries you want to listen to. Must be in the same organization as the feed. Must be in the format: projects/{project_id_or_number}.
- entry_
groups Sequence[str] - The entry groups whose entries you want to listen to. Must be in the format: projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.
- organization_
level bool - Whether the metadata feed is at the organization-level. If true, all changes happened to the entries in the same organization as the feed are published. If false, you must specify a list of projects or a list of entry groups whose entries you want to listen to.The default is false.
- projects Sequence[str]
- The projects whose entries you want to listen to. Must be in the same organization as the feed. Must be in the format: projects/{project_id_or_number}.
- entry
Groups List<String> - The entry groups whose entries you want to listen to. Must be in the format: projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}.
- organization
Level Boolean - Whether the metadata feed is at the organization-level. If true, all changes happened to the entries in the same organization as the feed are published. If false, you must specify a list of projects or a list of entry groups whose entries you want to listen to.The default is false.
- projects List<String>
- The projects whose entries you want to listen to. Must be in the same organization as the feed. Must be in the format: projects/{project_id_or_number}.
Import
MetadataFeed can be imported using any of these accepted formats:
projects/{{project}}/locations/{{location}}/metadataFeeds/{{metadata_feed_id}}{{project}}/{{location}}/{{metadata_feed_id}}{{location}}/{{metadata_feed_id}}
When using the pulumi import command, MetadataFeed can be imported using one of the formats above. For example:
$ pulumi import gcp:dataplex/metadataFeed:MetadataFeed default projects/{{project}}/locations/{{location}}/metadataFeeds/{{metadata_feed_id}}
$ pulumi import gcp:dataplex/metadataFeed:MetadataFeed default {{project}}/{{location}}/{{metadata_feed_id}}
$ pulumi import gcp:dataplex/metadataFeed:MetadataFeed default {{location}}/{{metadata_feed_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-betaTerraform Provider.
published on Monday, Jul 13, 2026 by Pulumi