import * as core from "@terrascript/core"; export interface SerDeInfoArgs extends core.SchemaArgs { name?: string | core.StringOut; parameters?: core.Map | core.MapOut; serializationLibrary?: string | core.StringOut; } export class SerDeInfo extends core.Schema { @core.attr(String) public name?: string | core.StringOut; @core.attr(String, { kind: "map" }) public parameters?: core.Map | core.MapOut; @core.attr(String) public serializationLibrary?: string | core.StringOut; } export interface SkewedInfoArgs extends core.SchemaArgs { skewedColumnNames?: core.Array | core.ArrayOut; skewedColumnValueLocationMaps?: | core.Map | core.MapOut; skewedColumnValues?: core.Array | core.ArrayOut; } export class SkewedInfo extends core.Schema { @core.attr(String, { kind: "array" }) public skewedColumnNames?: core.Array | core.ArrayOut; @core.attr(String, { kind: "map" }) public skewedColumnValueLocationMaps?: | core.Map | core.MapOut; @core.attr(String, { kind: "array" }) public skewedColumnValues?: | core.Array | core.ArrayOut; } export interface ColumnsArgs extends core.SchemaArgs { comment?: string | core.StringOut; name: string | core.StringOut; type?: string | core.StringOut; } export class Columns extends core.Schema { @core.attr(String) public comment?: string | core.StringOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(String) public type?: string | core.StringOut; } export interface SortColumnsArgs extends core.SchemaArgs { column: string | core.StringOut; sortOrder: number | core.NumberOut; } export class SortColumns extends core.Schema { @core.attr(String) public column!: string | core.StringOut; @core.attr(Number) public sortOrder!: number | core.NumberOut; } export interface StorageDescriptorArgs extends core.SchemaArgs { bucketColumns?: core.Array | core.ArrayOut; columns?: core.Array | core.ArrayOut; compressed?: boolean | core.BooleanOut; inputFormat?: string | core.StringOut; location?: string | core.StringOut; numberOfBuckets?: number | core.NumberOut; outputFormat?: string | core.StringOut; parameters?: core.Map | core.MapOut; serDeInfo?: SerDeInfo; skewedInfo?: SkewedInfo; sortColumns?: core.Array | core.ArrayOut; storedAsSubDirectories?: boolean | core.BooleanOut; } export class StorageDescriptor extends core.Schema { @core.attr(String, { kind: "array" }) public bucketColumns?: core.Array | core.ArrayOut; @core.attr(Columns, { kind: "array" }) public columns?: core.Array | core.ArrayOut; @core.attr(Boolean) public compressed?: boolean | core.BooleanOut; @core.attr(String) public inputFormat?: string | core.StringOut; @core.attr(String) public location?: string | core.StringOut; @core.attr(Number) public numberOfBuckets?: number | core.NumberOut; @core.attr(String) public outputFormat?: string | core.StringOut; @core.attr(String, { kind: "map" }) public parameters?: core.Map | core.MapOut; @core.attr(SerDeInfo) public serDeInfo?: SerDeInfo; @core.attr(SkewedInfo) public skewedInfo?: SkewedInfo; @core.attr(SortColumns, { kind: "array" }) public sortColumns?: core.Array | core.ArrayOut; @core.attr(Boolean) public storedAsSubDirectories?: boolean | core.BooleanOut; } export interface PartitionArgs extends core.ResourceArgs { /** * (Optional) ID of the Glue Catalog and database to create the table in. If omitted, this defaults to * the AWS Account ID plus the database name. */ catalogId?: string | core.StringOut; /** * (Required) Name of the metadata database where the table metadata resides. For Hive compatibility, t * his must be all lowercase. */ databaseName: string | core.StringOut; /** * (Optional) Properties associated with this table, as a list of key-value pairs. */ parameters?: core.Map | core.MapOut; /** * (Required) The values that define the partition. */ partitionValues: core.Array | core.ArrayOut; /** * (Optional) A [storage descriptor](#storage_descriptor) object containing information about the physi * cal storage of this table. You can refer to the [Glue Developer Guide](https://docs.aws.amazon.com/g * lue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor) for a * full explanation of this object. */ storageDescriptor?: StorageDescriptor; tableName: string | core.StringOut; } export class Partition extends core.Resource { /** * (Optional) ID of the Glue Catalog and database to create the table in. If omitted, this defaults to * the AWS Account ID plus the database name. */ @core.attr(String, { computed: true }) public catalogId?: string | core.StringOut; /** * The time at which the partition was created. */ @core.attr(String, { computed: true }) public creationTime!: string | core.StringOut; /** * (Required) Name of the metadata database where the table metadata resides. For Hive compatibility, t * his must be all lowercase. */ @core.attr(String) public databaseName!: string | core.StringOut; /** * partition id. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The last time at which the partition was accessed. */ @core.attr(String, { computed: true }) public lastAccessedTime!: string | core.StringOut; /** * The last time at which column statistics were computed for this partition. */ @core.attr(String, { computed: true }) public lastAnalyzedTime!: string | core.StringOut; /** * (Optional) Properties associated with this table, as a list of key-value pairs. */ @core.attr(String, { kind: "map" }) public parameters?: core.Map | core.MapOut; /** * (Required) The values that define the partition. */ @core.attr(String, { kind: "array" }) public partitionValues!: core.Array | core.ArrayOut; /** * (Optional) A [storage descriptor](#storage_descriptor) object containing information about the physi * cal storage of this table. You can refer to the [Glue Developer Guide](https://docs.aws.amazon.com/g * lue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor) for a * full explanation of this object. */ @core.attr(StorageDescriptor) public storageDescriptor?: StorageDescriptor; @core.attr(String) public tableName!: string | core.StringOut; constructor(name: string, args?: PartitionArgs) { super(name, "aws_glue_partition", args); } public override getNamespace(): string { return "aws_glue"; } }