Entry

class Entry : KotlinCustomResource

Entry Metadata. A Data Catalog Entry resource represents another resource in Google Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic) or outside of Google Cloud Platform. Clients can use the linkedResource field in the Entry resource to refer to the original resource ID of the source system. An Entry resource contains resource details, such as its schema. An Entry can also be used to attach flexible metadata, such as a Tag. To get more information about Entry, see:

Example Usage

Data Catalog Entry Basic

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const entryGroup = new gcp.datacatalog.EntryGroup("entry_group", {entryGroupId: "my_group"});
const basicEntry = new gcp.datacatalog.Entry("basic_entry", {
entryGroup: entryGroup.id,
entryId: "my_entry",
userSpecifiedType: "my_custom_type",
userSpecifiedSystem: "SomethingExternal",
});
import pulumi
import pulumi_gcp as gcp
entry_group = gcp.datacatalog.EntryGroup("entry_group", entry_group_id="my_group")
basic_entry = gcp.datacatalog.Entry("basic_entry",
entry_group=entry_group.id,
entry_id="my_entry",
user_specified_type="my_custom_type",
user_specified_system="SomethingExternal")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var entryGroup = new Gcp.DataCatalog.EntryGroup("entry_group", new()
{
EntryGroupId = "my_group",
});
var basicEntry = new Gcp.DataCatalog.Entry("basic_entry", new()
{
EntryGroup = entryGroup.Id,
EntryId = "my_entry",
UserSpecifiedType = "my_custom_type",
UserSpecifiedSystem = "SomethingExternal",
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
entryGroup, err := datacatalog.NewEntryGroup(ctx, "entry_group", &datacatalog.EntryGroupArgs{
EntryGroupId: pulumi.String("my_group"),
})
if err != nil {
return err
}
_, err = datacatalog.NewEntry(ctx, "basic_entry", &datacatalog.EntryArgs{
EntryGroup: entryGroup.ID(),
EntryId: pulumi.String("my_entry"),
UserSpecifiedType: pulumi.String("my_custom_type"),
UserSpecifiedSystem: pulumi.String("SomethingExternal"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.datacatalog.EntryGroup;
import com.pulumi.gcp.datacatalog.EntryGroupArgs;
import com.pulumi.gcp.datacatalog.Entry;
import com.pulumi.gcp.datacatalog.EntryArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var entryGroup = new EntryGroup("entryGroup", EntryGroupArgs.builder()
.entryGroupId("my_group")
.build());
var basicEntry = new Entry("basicEntry", EntryArgs.builder()
.entryGroup(entryGroup.id())
.entryId("my_entry")
.userSpecifiedType("my_custom_type")
.userSpecifiedSystem("SomethingExternal")
.build());
}
}
resources:
basicEntry:
type: gcp:datacatalog:Entry
name: basic_entry
properties:
entryGroup: ${entryGroup.id}
entryId: my_entry
userSpecifiedType: my_custom_type
userSpecifiedSystem: SomethingExternal
entryGroup:
type: gcp:datacatalog:EntryGroup
name: entry_group
properties:
entryGroupId: my_group

Data Catalog Entry Fileset

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const entryGroup = new gcp.datacatalog.EntryGroup("entry_group", {entryGroupId: "my_group"});
const basicEntry = new gcp.datacatalog.Entry("basic_entry", {
entryGroup: entryGroup.id,
entryId: "my_entry",
type: "FILESET",
gcsFilesetSpec: {
filePatterns: ["gs://fake_bucket/dir/*"],
},
});
import pulumi
import pulumi_gcp as gcp
entry_group = gcp.datacatalog.EntryGroup("entry_group", entry_group_id="my_group")
basic_entry = gcp.datacatalog.Entry("basic_entry",
entry_group=entry_group.id,
entry_id="my_entry",
type="FILESET",
gcs_fileset_spec={
"file_patterns": ["gs://fake_bucket/dir/*"],
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var entryGroup = new Gcp.DataCatalog.EntryGroup("entry_group", new()
{
EntryGroupId = "my_group",
});
var basicEntry = new Gcp.DataCatalog.Entry("basic_entry", new()
{
EntryGroup = entryGroup.Id,
EntryId = "my_entry",
Type = "FILESET",
GcsFilesetSpec = new Gcp.DataCatalog.Inputs.EntryGcsFilesetSpecArgs
{
FilePatterns = new[]
{
"gs://fake_bucket/dir/*",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
entryGroup, err := datacatalog.NewEntryGroup(ctx, "entry_group", &datacatalog.EntryGroupArgs{
EntryGroupId: pulumi.String("my_group"),
})
if err != nil {
return err
}
_, err = datacatalog.NewEntry(ctx, "basic_entry", &datacatalog.EntryArgs{
EntryGroup: entryGroup.ID(),
EntryId: pulumi.String("my_entry"),
Type: pulumi.String("FILESET"),
GcsFilesetSpec: &datacatalog.EntryGcsFilesetSpecArgs{
FilePatterns: pulumi.StringArray{
pulumi.String("gs://fake_bucket/dir/*"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.datacatalog.EntryGroup;
import com.pulumi.gcp.datacatalog.EntryGroupArgs;
import com.pulumi.gcp.datacatalog.Entry;
import com.pulumi.gcp.datacatalog.EntryArgs;
import com.pulumi.gcp.datacatalog.inputs.EntryGcsFilesetSpecArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var entryGroup = new EntryGroup("entryGroup", EntryGroupArgs.builder()
.entryGroupId("my_group")
.build());
var basicEntry = new Entry("basicEntry", EntryArgs.builder()
.entryGroup(entryGroup.id())
.entryId("my_entry")
.type("FILESET")
.gcsFilesetSpec(EntryGcsFilesetSpecArgs.builder()
.filePatterns("gs://fake_bucket/dir/*")
.build())
.build());
}
}
resources:
basicEntry:
type: gcp:datacatalog:Entry
name: basic_entry
properties:
entryGroup: ${entryGroup.id}
entryId: my_entry
type: FILESET
gcsFilesetSpec:
filePatterns:
- gs://fake_bucket/dir/*
entryGroup:
type: gcp:datacatalog:EntryGroup
name: entry_group
properties:
entryGroupId: my_group

Data Catalog Entry Full

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const entryGroup = new gcp.datacatalog.EntryGroup("entry_group", {entryGroupId: "my_group"});
const basicEntry = new gcp.datacatalog.Entry("basic_entry", {
entryGroup: entryGroup.id,
entryId: "my_entry",
userSpecifiedType: "my_user_specified_type",
userSpecifiedSystem: "Something_custom",
linkedResource: "my/linked/resource",
displayName: "my custom type entry",
description: "a custom type entry for a user specified system",
schema: `{
"columns": [
{
"column": "first_name",
"description": "First name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "last_name",
"description": "Last name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "address",
"description": "Address",
"mode": "REPEATED",
"subcolumns": [
{
"column": "city",
"description": "City",
"mode": "NULLABLE",
"type": "STRING"
},
{
"column": "state",
"description": "State",
"mode": "NULLABLE",
"type": "STRING"
}
],
"type": "RECORD"
}
]
}
`,
});
import pulumi
import pulumi_gcp as gcp
entry_group = gcp.datacatalog.EntryGroup("entry_group", entry_group_id="my_group")
basic_entry = gcp.datacatalog.Entry("basic_entry",
entry_group=entry_group.id,
entry_id="my_entry",
user_specified_type="my_user_specified_type",
user_specified_system="Something_custom",
linked_resource="my/linked/resource",
display_name="my custom type entry",
description="a custom type entry for a user specified system",
schema="""{
"columns": [
{
"column": "first_name",
"description": "First name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "last_name",
"description": "Last name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "address",
"description": "Address",
"mode": "REPEATED",
"subcolumns": [
{
"column": "city",
"description": "City",
"mode": "NULLABLE",
"type": "STRING"
},
{
"column": "state",
"description": "State",
"mode": "NULLABLE",
"type": "STRING"
}
],
"type": "RECORD"
}
]
}
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var entryGroup = new Gcp.DataCatalog.EntryGroup("entry_group", new()
{
EntryGroupId = "my_group",
});
var basicEntry = new Gcp.DataCatalog.Entry("basic_entry", new()
{
EntryGroup = entryGroup.Id,
EntryId = "my_entry",
UserSpecifiedType = "my_user_specified_type",
UserSpecifiedSystem = "Something_custom",
LinkedResource = "my/linked/resource",
DisplayName = "my custom type entry",
Description = "a custom type entry for a user specified system",
Schema = @"{
""columns"": [
{
""column"": ""first_name"",
""description"": ""First name"",
""mode"": ""REQUIRED"",
""type"": ""STRING""
},
{
""column"": ""last_name"",
""description"": ""Last name"",
""mode"": ""REQUIRED"",
""type"": ""STRING""
},
{
""column"": ""address"",
""description"": ""Address"",
""mode"": ""REPEATED"",
""subcolumns"": [
{
""column"": ""city"",
""description"": ""City"",
""mode"": ""NULLABLE"",
""type"": ""STRING""
},
{
""column"": ""state"",
""description"": ""State"",
""mode"": ""NULLABLE"",
""type"": ""STRING""
}
],
""type"": ""RECORD""
}
]
}
",
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datacatalog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
entryGroup, err := datacatalog.NewEntryGroup(ctx, "entry_group", &datacatalog.EntryGroupArgs{
EntryGroupId: pulumi.String("my_group"),
})
if err != nil {
return err
}
_, err = datacatalog.NewEntry(ctx, "basic_entry", &datacatalog.EntryArgs{
EntryGroup: entryGroup.ID(),
EntryId: pulumi.String("my_entry"),
UserSpecifiedType: pulumi.String("my_user_specified_type"),
UserSpecifiedSystem: pulumi.String("Something_custom"),
LinkedResource: pulumi.String("my/linked/resource"),
DisplayName: pulumi.String("my custom type entry"),
Description: pulumi.String("a custom type entry for a user specified system"),
Schema: pulumi.String(`{
"columns": [
{
"column": "first_name",
"description": "First name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "last_name",
"description": "Last name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "address",
"description": "Address",
"mode": "REPEATED",
"subcolumns": [
{
"column": "city",
"description": "City",
"mode": "NULLABLE",
"type": "STRING"
},
{
"column": "state",
"description": "State",
"mode": "NULLABLE",
"type": "STRING"
}
],
"type": "RECORD"
}
]
}
`),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.datacatalog.EntryGroup;
import com.pulumi.gcp.datacatalog.EntryGroupArgs;
import com.pulumi.gcp.datacatalog.Entry;
import com.pulumi.gcp.datacatalog.EntryArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var entryGroup = new EntryGroup("entryGroup", EntryGroupArgs.builder()
.entryGroupId("my_group")
.build());
var basicEntry = new Entry("basicEntry", EntryArgs.builder()
.entryGroup(entryGroup.id())
.entryId("my_entry")
.userSpecifiedType("my_user_specified_type")
.userSpecifiedSystem("Something_custom")
.linkedResource("my/linked/resource")
.displayName("my custom type entry")
.description("a custom type entry for a user specified system")
.schema("""
{
"columns": [
{
"column": "first_name",
"description": "First name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "last_name",
"description": "Last name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "address",
"description": "Address",
"mode": "REPEATED",
"subcolumns": [
{
"column": "city",
"description": "City",
"mode": "NULLABLE",
"type": "STRING"
},
{
"column": "state",
"description": "State",
"mode": "NULLABLE",
"type": "STRING"
}
],
"type": "RECORD"
}
]
}
""")
.build());
}
}
resources:
basicEntry:
type: gcp:datacatalog:Entry
name: basic_entry
properties:
entryGroup: ${entryGroup.id}
entryId: my_entry
userSpecifiedType: my_user_specified_type
userSpecifiedSystem: Something_custom
linkedResource: my/linked/resource
displayName: my custom type entry
description: a custom type entry for a user specified system
schema: |
{
"columns": [
{
"column": "first_name",
"description": "First name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "last_name",
"description": "Last name",
"mode": "REQUIRED",
"type": "STRING"
},
{
"column": "address",
"description": "Address",
"mode": "REPEATED",
"subcolumns": [
{
"column": "city",
"description": "City",
"mode": "NULLABLE",
"type": "STRING"
},
{
"column": "state",
"description": "State",
"mode": "NULLABLE",
"type": "STRING"
}
],
"type": "RECORD"
}
]
}
entryGroup:
type: gcp:datacatalog:EntryGroup
name: entry_group
properties:
entryGroupId: my_group

Import

Entry can be imported using any of these accepted formats:

  • {{name}} When using the pulumi import command, Entry can be imported using one of the formats above. For example:

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

//////

Properties

Link copied to clipboard

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

Link copied to clipboard

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

Link copied to clipboard
val description: Output<String>?

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

Link copied to clipboard
val displayName: Output<String>?

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

Link copied to clipboard
val entryGroup: Output<String>

The name of the entry group this entry is in.

Link copied to clipboard
val entryId: Output<String>

The id of the entry to create.

Link copied to clipboard

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

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

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

Link copied to clipboard
val linkedResource: Output<String>

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

Link copied to clipboard
val name: Output<String>

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

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val schema: Output<String>?

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

Link copied to clipboard
val type: Output<String>?

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

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard

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

Link copied to clipboard

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