import * as core from "@terrascript/core"; export interface PrincipalArgs extends core.SchemaArgs { dataLakePrincipalIdentifier?: string | core.StringOut; } export class Principal extends core.Schema { @core.attr(String) public dataLakePrincipalIdentifier?: string | core.StringOut; } export interface CreateTableDefaultPermissionArgs extends core.SchemaArgs { permissions?: core.Array | core.ArrayOut; principal?: Principal; } export class CreateTableDefaultPermission extends core.Schema { @core.attr(String, { kind: "array" }) public permissions?: core.Array | core.ArrayOut; @core.attr(Principal) public principal?: Principal; } export interface TargetDatabaseArgs extends core.SchemaArgs { catalogId: string | core.StringOut; databaseName: string | core.StringOut; } export class TargetDatabase extends core.Schema { @core.attr(String) public catalogId!: string | core.StringOut; @core.attr(String) public databaseName!: string | core.StringOut; } export interface CatalogDatabaseArgs extends core.ResourceArgs { /** * (Optional) ID of the Glue Catalog to create the database in. If omitted, this defaults to the AWS Ac * count ID. */ catalogId?: string | core.StringOut; /** * (Optional) Creates a set of default permissions on the table for principals. See [`create_table_defa * ult_permission`](#create_table_default_permission) below. */ createTableDefaultPermission?: | core.Array | core.ArrayOut; /** * (Optional) Description of the database. */ description?: string | core.StringOut; /** * (Optional) Location of the database (for example, an HDFS path). */ locationUri?: string | core.StringOut; /** * (Required) Name of the database. The acceptable characters are lowercase letters, numbers, and the u * nderscore character. */ name: string | core.StringOut; /** * (Optional) List of key-value pairs that define parameters and properties of the database. */ parameters?: core.Map | core.MapOut; /** * (Optional) Configuration block for a target database for resource linking. See [`target_database`](# * target_database) below. */ targetDatabase?: TargetDatabase; } export class CatalogDatabase extends core.Resource { /** * ARN of the Glue Catalog Database. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) ID of the Glue Catalog to create the database in. If omitted, this defaults to the AWS Ac * count ID. */ @core.attr(String, { computed: true }) public catalogId?: string | core.StringOut; /** * (Optional) Creates a set of default permissions on the table for principals. See [`create_table_defa * ult_permission`](#create_table_default_permission) below. */ @core.attr(CreateTableDefaultPermission, { computed: true, kind: "array" }) public createTableDefaultPermission?: | core.Array | core.ArrayOut; /** * (Optional) Description of the database. */ @core.attr(String) public description?: string | core.StringOut; /** * Catalog ID and name of the database */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Location of the database (for example, an HDFS path). */ @core.attr(String, { computed: true }) public locationUri?: string | core.StringOut; /** * (Required) Name of the database. The acceptable characters are lowercase letters, numbers, and the u * nderscore character. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) List of key-value pairs that define parameters and properties of the database. */ @core.attr(String, { kind: "map" }) public parameters?: core.Map | core.MapOut; /** * (Optional) Configuration block for a target database for resource linking. See [`target_database`](# * target_database) below. */ @core.attr(TargetDatabase) public targetDatabase?: TargetDatabase; constructor(name: string, args?: CatalogDatabaseArgs) { super(name, "aws_glue_catalog_database", args); } public override getNamespace(): string { return "aws_glue"; } }