All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.gcp.datacatalog.kotlin.Entry.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.12.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.datacatalog.kotlin

import com.pulumi.core.Output
import com.pulumi.gcp.datacatalog.kotlin.outputs.EntryBigqueryDateShardedSpec
import com.pulumi.gcp.datacatalog.kotlin.outputs.EntryBigqueryTableSpec
import com.pulumi.gcp.datacatalog.kotlin.outputs.EntryGcsFilesetSpec
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import com.pulumi.gcp.datacatalog.kotlin.outputs.EntryBigqueryDateShardedSpec.Companion.toKotlin as entryBigqueryDateShardedSpecToKotlin
import com.pulumi.gcp.datacatalog.kotlin.outputs.EntryBigqueryTableSpec.Companion.toKotlin as entryBigqueryTableSpecToKotlin
import com.pulumi.gcp.datacatalog.kotlin.outputs.EntryGcsFilesetSpec.Companion.toKotlin as entryGcsFilesetSpecToKotlin

/**
 * Builder for [Entry].
 */
@PulumiTagMarker
public class EntryResourceBuilder internal constructor() {
    public var name: String? = null

    public var args: EntryArgs = EntryArgs()

    public var opts: CustomResourceOptions = CustomResourceOptions()

    /**
     * @param name The _unique_ name of the resulting resource.
     */
    public fun name(`value`: String) {
        this.name = value
    }

    /**
     * @param block The arguments to use to populate this resource's properties.
     */
    public suspend fun args(block: suspend EntryArgsBuilder.() -> Unit) {
        val builder = EntryArgsBuilder()
        block(builder)
        this.args = builder.build()
    }

    /**
     * @param block A bag of options that control this resource's behavior.
     */
    public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
        this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
    }

    internal fun build(): Entry {
        val builtJavaResource = com.pulumi.gcp.datacatalog.Entry(
            this.name,
            this.args.toJava(),
            this.opts.toJava(),
        )
        return Entry(builtJavaResource)
    }
}

/**
 * Entry Metadata. A Data Catalog Entry resource represents another resource in Google Cloud Platform
 * (such as a BigQuery dataset or a Pub/Sub topic) or outside of Google Cloud Platform. Clients can use
 * the linkedResource field in the Entry resource to refer to the original resource ID of the source system.
 * An Entry resource contains resource details, such as its schema. An Entry can also be used to attach
 * flexible metadata, such as a Tag.
 * To get more information about Entry, see:
 * * [API documentation](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries)
 * * How-to Guides
 *     * [Official Documentation](https://cloud.google.com/data-catalog/docs)
 * ## Example Usage
 * ### Data Catalog Entry Basic
 * 
 * ```typescript
 * 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",
 * });
 * ```
 * ```python
 * 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")
 * ```
 * ```csharp
 * 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",
 *     });
 * });
 * ```
 * ```go
 * 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
 * 	})
 * }
 * ```
 * ```java
 * 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());
 *     }
 * }
 * ```
 * ```yaml
 * 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
 * 
 * ```typescript
 * 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/*"],
 *     },
 * });
 * ```
 * ```python
 * 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=gcp.datacatalog.EntryGcsFilesetSpecArgs(
 *         file_patterns=["gs://fake_bucket/dir/*"],
 *     ))
 * ```
 * ```csharp
 * 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/*",
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * 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
 * 	})
 * }
 * ```
 * ```java
 * 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());
 *     }
 * }
 * ```
 * ```yaml
 * 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
 * 
 * ```typescript
 * 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"
 *     }
 *   ]
 * }
 * `,
 * });
 * ```
 * ```python
 * 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"
 *     }
 *   ]
 * }
 * """)
 * ```
 * ```csharp
 * 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""
 *     }
 *   ]
 * }
 * ",
 *     });
 * });
 * ```
 * ```go
 * 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
 * 	})
 * }
 * ```
 * ```java
 * 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());
 *     }
 * }
 * ```
 * ```yaml
 * 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:
 * ```sh
 * $ pulumi import gcp:datacatalog/entry:Entry default {{name}}
 * ```
 * */*/*/*/*/*/
 */
public class Entry internal constructor(
    override val javaResource: com.pulumi.gcp.datacatalog.Entry,
) : KotlinCustomResource(javaResource, EntryMapper) {
    /**
     * Specification for a group of BigQuery tables with name pattern [prefix]YYYYMMDD.
     * Context: https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
     * Structure is documented below.
     */
    public val bigqueryDateShardedSpecs: Output>
        get() = javaResource.bigqueryDateShardedSpecs().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 -> entryBigqueryDateShardedSpecToKotlin(args0) })
            })
        })

    /**
     * Specification that applies to a BigQuery table. This is only valid on entries of type TABLE.
     * Structure is documented below.
     */
    public val bigqueryTableSpecs: Output>
        get() = javaResource.bigqueryTableSpecs().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 -> entryBigqueryTableSpecToKotlin(args0) })
            })
        })

    /**
     * Entry description, which can consist of several sentences or paragraphs that describe entry contents.
     */
    public val description: Output?
        get() = javaResource.description().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    /**
     * Display information such as title and description. A short name to identify the entry,
     * for example, "Analytics Data - Jan 2011".
     */
    public val displayName: Output?
        get() = javaResource.displayName().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    /**
     * The name of the entry group this entry is in.
     */
    public val entryGroup: Output
        get() = javaResource.entryGroup().applyValue({ args0 -> args0 })

    /**
     * The id of the entry to create.
     * - - -
     */
    public val entryId: Output
        get() = javaResource.entryId().applyValue({ args0 -> args0 })

    /**
     * Specification that applies to a Cloud Storage fileset. This is only valid on entries of type FILESET.
     * Structure is documented below.
     */
    public val gcsFilesetSpec: Output?
        get() = javaResource.gcsFilesetSpec().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 -> entryGcsFilesetSpecToKotlin(args0) })
            }).orElse(null)
        })

    /**
     * This field indicates the entry's source system that Data Catalog integrates with, such as BigQuery or Pub/Sub.
     */
    public val integratedSystem: Output
        get() = javaResource.integratedSystem().applyValue({ args0 -> args0 })

    /**
     * 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.
     */
    public val linkedResource: Output
        get() = javaResource.linkedResource().applyValue({ args0 -> args0 })

    /**
     * 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.
     */
    public val name: Output
        get() = javaResource.name().applyValue({ args0 -> args0 })

    /**
     * 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.
     */
    public val schema: Output?
        get() = javaResource.schema().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })

    /**
     * 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`.
     */
    public val type: Output?
        get() = javaResource.type().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })

    /**
     * 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.
     */
    public val userSpecifiedSystem: Output?
        get() = javaResource.userSpecifiedSystem().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    /**
     * 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.
     */
    public val userSpecifiedType: Output?
        get() = javaResource.userSpecifiedType().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })
}

public object EntryMapper : ResourceMapper {
    override fun supportsMappingOfType(javaResource: Resource): Boolean =
        com.pulumi.gcp.datacatalog.Entry::class == javaResource::class

    override fun map(javaResource: Resource): Entry = Entry(
        javaResource as
            com.pulumi.gcp.datacatalog.Entry,
    )
}

/**
 * @see [Entry].
 * @param name The _unique_ name of the resulting resource.
 * @param block Builder for [Entry].
 */
public suspend fun entry(name: String, block: suspend EntryResourceBuilder.() -> Unit): Entry {
    val builder = EntryResourceBuilder()
    builder.name(name)
    block(builder)
    return builder.build()
}

/**
 * @see [Entry].
 * @param name The _unique_ name of the resulting resource.
 */
public fun entry(name: String): Entry {
    val builder = EntryResourceBuilder()
    builder.name(name)
    return builder.build()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy