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

com.pulumi.aws.glue.inputs.CatalogTableState Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.glue.inputs;

import com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputArgs;
import com.pulumi.aws.glue.inputs.CatalogTablePartitionIndexArgs;
import com.pulumi.aws.glue.inputs.CatalogTablePartitionKeyArgs;
import com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorArgs;
import com.pulumi.aws.glue.inputs.CatalogTableTargetTableArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class CatalogTableState extends com.pulumi.resources.ResourceArgs {

    public static final CatalogTableState Empty = new CatalogTableState();

    /**
     * The ARN of the Glue Table.
     * 
     */
    @Import(name="arn")
    private @Nullable Output arn;

    /**
     * @return The ARN of the Glue Table.
     * 
     */
    public Optional> arn() {
        return Optional.ofNullable(this.arn);
    }

    /**
     * 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.
     * 
     */
    @Import(name="catalogId")
    private @Nullable Output catalogId;

    /**
     * @return 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.
     * 
     */
    public Optional> catalogId() {
        return Optional.ofNullable(this.catalogId);
    }

    /**
     * Name of the metadata database where the table metadata resides. For Hive compatibility, this must be all lowercase.
     * 
     * The follow arguments are optional:
     * 
     */
    @Import(name="databaseName")
    private @Nullable Output databaseName;

    /**
     * @return Name of the metadata database where the table metadata resides. For Hive compatibility, this must be all lowercase.
     * 
     * The follow arguments are optional:
     * 
     */
    public Optional> databaseName() {
        return Optional.ofNullable(this.databaseName);
    }

    /**
     * Description of the table.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of the table.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Name of the table. For Hive compatibility, this must be entirely lowercase.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name of the table. For Hive compatibility, this must be entirely lowercase.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Configuration block for open table formats. See `open_table_format_input` below.
     * 
     */
    @Import(name="openTableFormatInput")
    private @Nullable Output openTableFormatInput;

    /**
     * @return Configuration block for open table formats. See `open_table_format_input` below.
     * 
     */
    public Optional> openTableFormatInput() {
        return Optional.ofNullable(this.openTableFormatInput);
    }

    /**
     * Owner of the table.
     * 
     */
    @Import(name="owner")
    private @Nullable Output owner;

    /**
     * @return Owner of the table.
     * 
     */
    public Optional> owner() {
        return Optional.ofNullable(this.owner);
    }

    /**
     * Properties associated with this table, as a list of key-value pairs.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output> parameters;

    /**
     * @return Properties associated with this table, as a list of key-value pairs.
     * 
     */
    public Optional>> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * Configuration block for a maximum of 3 partition indexes. See `partition_index` below.
     * 
     */
    @Import(name="partitionIndices")
    private @Nullable Output> partitionIndices;

    /**
     * @return Configuration block for a maximum of 3 partition indexes. See `partition_index` below.
     * 
     */
    public Optional>> partitionIndices() {
        return Optional.ofNullable(this.partitionIndices);
    }

    /**
     * Configuration block of columns by which the table is partitioned. Only primitive types are supported as partition keys. See `partition_keys` below.
     * 
     */
    @Import(name="partitionKeys")
    private @Nullable Output> partitionKeys;

    /**
     * @return Configuration block of columns by which the table is partitioned. Only primitive types are supported as partition keys. See `partition_keys` below.
     * 
     */
    public Optional>> partitionKeys() {
        return Optional.ofNullable(this.partitionKeys);
    }

    /**
     * Retention time for this table.
     * 
     */
    @Import(name="retention")
    private @Nullable Output retention;

    /**
     * @return Retention time for this table.
     * 
     */
    public Optional> retention() {
        return Optional.ofNullable(this.retention);
    }

    /**
     * Configuration block for information about the physical storage of this table. For more information, refer to the [Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor). See `storage_descriptor` below.
     * 
     */
    @Import(name="storageDescriptor")
    private @Nullable Output storageDescriptor;

    /**
     * @return Configuration block for information about the physical storage of this table. For more information, refer to the [Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor). See `storage_descriptor` below.
     * 
     */
    public Optional> storageDescriptor() {
        return Optional.ofNullable(this.storageDescriptor);
    }

    /**
     * Type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.). While optional, some Athena DDL queries such as `ALTER TABLE` and `SHOW CREATE TABLE` will fail if this argument is empty.
     * 
     */
    @Import(name="tableType")
    private @Nullable Output tableType;

    /**
     * @return Type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.). While optional, some Athena DDL queries such as `ALTER TABLE` and `SHOW CREATE TABLE` will fail if this argument is empty.
     * 
     */
    public Optional> tableType() {
        return Optional.ofNullable(this.tableType);
    }

    /**
     * Configuration block of a target table for resource linking. See `target_table` below.
     * 
     */
    @Import(name="targetTable")
    private @Nullable Output targetTable;

    /**
     * @return Configuration block of a target table for resource linking. See `target_table` below.
     * 
     */
    public Optional> targetTable() {
        return Optional.ofNullable(this.targetTable);
    }

    /**
     * If the table is a view, the expanded text of the view; otherwise null.
     * 
     */
    @Import(name="viewExpandedText")
    private @Nullable Output viewExpandedText;

    /**
     * @return If the table is a view, the expanded text of the view; otherwise null.
     * 
     */
    public Optional> viewExpandedText() {
        return Optional.ofNullable(this.viewExpandedText);
    }

    /**
     * If the table is a view, the original text of the view; otherwise null.
     * 
     */
    @Import(name="viewOriginalText")
    private @Nullable Output viewOriginalText;

    /**
     * @return If the table is a view, the original text of the view; otherwise null.
     * 
     */
    public Optional> viewOriginalText() {
        return Optional.ofNullable(this.viewOriginalText);
    }

    private CatalogTableState() {}

    private CatalogTableState(CatalogTableState $) {
        this.arn = $.arn;
        this.catalogId = $.catalogId;
        this.databaseName = $.databaseName;
        this.description = $.description;
        this.name = $.name;
        this.openTableFormatInput = $.openTableFormatInput;
        this.owner = $.owner;
        this.parameters = $.parameters;
        this.partitionIndices = $.partitionIndices;
        this.partitionKeys = $.partitionKeys;
        this.retention = $.retention;
        this.storageDescriptor = $.storageDescriptor;
        this.tableType = $.tableType;
        this.targetTable = $.targetTable;
        this.viewExpandedText = $.viewExpandedText;
        this.viewOriginalText = $.viewOriginalText;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(CatalogTableState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private CatalogTableState $;

        public Builder() {
            $ = new CatalogTableState();
        }

        public Builder(CatalogTableState defaults) {
            $ = new CatalogTableState(Objects.requireNonNull(defaults));
        }

        /**
         * @param arn The ARN of the Glue Table.
         * 
         * @return builder
         * 
         */
        public Builder arn(@Nullable Output arn) {
            $.arn = arn;
            return this;
        }

        /**
         * @param arn The ARN of the Glue Table.
         * 
         * @return builder
         * 
         */
        public Builder arn(String arn) {
            return arn(Output.of(arn));
        }

        /**
         * @param catalogId 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.
         * 
         * @return builder
         * 
         */
        public Builder catalogId(@Nullable Output catalogId) {
            $.catalogId = catalogId;
            return this;
        }

        /**
         * @param catalogId 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.
         * 
         * @return builder
         * 
         */
        public Builder catalogId(String catalogId) {
            return catalogId(Output.of(catalogId));
        }

        /**
         * @param databaseName Name of the metadata database where the table metadata resides. For Hive compatibility, this must be all lowercase.
         * 
         * The follow arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder databaseName(@Nullable Output databaseName) {
            $.databaseName = databaseName;
            return this;
        }

        /**
         * @param databaseName Name of the metadata database where the table metadata resides. For Hive compatibility, this must be all lowercase.
         * 
         * The follow arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder databaseName(String databaseName) {
            return databaseName(Output.of(databaseName));
        }

        /**
         * @param description Description of the table.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of the table.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param name Name of the table. For Hive compatibility, this must be entirely lowercase.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name of the table. For Hive compatibility, this must be entirely lowercase.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param openTableFormatInput Configuration block for open table formats. See `open_table_format_input` below.
         * 
         * @return builder
         * 
         */
        public Builder openTableFormatInput(@Nullable Output openTableFormatInput) {
            $.openTableFormatInput = openTableFormatInput;
            return this;
        }

        /**
         * @param openTableFormatInput Configuration block for open table formats. See `open_table_format_input` below.
         * 
         * @return builder
         * 
         */
        public Builder openTableFormatInput(CatalogTableOpenTableFormatInputArgs openTableFormatInput) {
            return openTableFormatInput(Output.of(openTableFormatInput));
        }

        /**
         * @param owner Owner of the table.
         * 
         * @return builder
         * 
         */
        public Builder owner(@Nullable Output owner) {
            $.owner = owner;
            return this;
        }

        /**
         * @param owner Owner of the table.
         * 
         * @return builder
         * 
         */
        public Builder owner(String owner) {
            return owner(Output.of(owner));
        }

        /**
         * @param parameters Properties associated with this table, as a list of key-value pairs.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output> parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters Properties associated with this table, as a list of key-value pairs.
         * 
         * @return builder
         * 
         */
        public Builder parameters(Map parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param partitionIndices Configuration block for a maximum of 3 partition indexes. See `partition_index` below.
         * 
         * @return builder
         * 
         */
        public Builder partitionIndices(@Nullable Output> partitionIndices) {
            $.partitionIndices = partitionIndices;
            return this;
        }

        /**
         * @param partitionIndices Configuration block for a maximum of 3 partition indexes. See `partition_index` below.
         * 
         * @return builder
         * 
         */
        public Builder partitionIndices(List partitionIndices) {
            return partitionIndices(Output.of(partitionIndices));
        }

        /**
         * @param partitionIndices Configuration block for a maximum of 3 partition indexes. See `partition_index` below.
         * 
         * @return builder
         * 
         */
        public Builder partitionIndices(CatalogTablePartitionIndexArgs... partitionIndices) {
            return partitionIndices(List.of(partitionIndices));
        }

        /**
         * @param partitionKeys Configuration block of columns by which the table is partitioned. Only primitive types are supported as partition keys. See `partition_keys` below.
         * 
         * @return builder
         * 
         */
        public Builder partitionKeys(@Nullable Output> partitionKeys) {
            $.partitionKeys = partitionKeys;
            return this;
        }

        /**
         * @param partitionKeys Configuration block of columns by which the table is partitioned. Only primitive types are supported as partition keys. See `partition_keys` below.
         * 
         * @return builder
         * 
         */
        public Builder partitionKeys(List partitionKeys) {
            return partitionKeys(Output.of(partitionKeys));
        }

        /**
         * @param partitionKeys Configuration block of columns by which the table is partitioned. Only primitive types are supported as partition keys. See `partition_keys` below.
         * 
         * @return builder
         * 
         */
        public Builder partitionKeys(CatalogTablePartitionKeyArgs... partitionKeys) {
            return partitionKeys(List.of(partitionKeys));
        }

        /**
         * @param retention Retention time for this table.
         * 
         * @return builder
         * 
         */
        public Builder retention(@Nullable Output retention) {
            $.retention = retention;
            return this;
        }

        /**
         * @param retention Retention time for this table.
         * 
         * @return builder
         * 
         */
        public Builder retention(Integer retention) {
            return retention(Output.of(retention));
        }

        /**
         * @param storageDescriptor Configuration block for information about the physical storage of this table. For more information, refer to the [Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor). See `storage_descriptor` below.
         * 
         * @return builder
         * 
         */
        public Builder storageDescriptor(@Nullable Output storageDescriptor) {
            $.storageDescriptor = storageDescriptor;
            return this;
        }

        /**
         * @param storageDescriptor Configuration block for information about the physical storage of this table. For more information, refer to the [Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor). See `storage_descriptor` below.
         * 
         * @return builder
         * 
         */
        public Builder storageDescriptor(CatalogTableStorageDescriptorArgs storageDescriptor) {
            return storageDescriptor(Output.of(storageDescriptor));
        }

        /**
         * @param tableType Type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.). While optional, some Athena DDL queries such as `ALTER TABLE` and `SHOW CREATE TABLE` will fail if this argument is empty.
         * 
         * @return builder
         * 
         */
        public Builder tableType(@Nullable Output tableType) {
            $.tableType = tableType;
            return this;
        }

        /**
         * @param tableType Type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.). While optional, some Athena DDL queries such as `ALTER TABLE` and `SHOW CREATE TABLE` will fail if this argument is empty.
         * 
         * @return builder
         * 
         */
        public Builder tableType(String tableType) {
            return tableType(Output.of(tableType));
        }

        /**
         * @param targetTable Configuration block of a target table for resource linking. See `target_table` below.
         * 
         * @return builder
         * 
         */
        public Builder targetTable(@Nullable Output targetTable) {
            $.targetTable = targetTable;
            return this;
        }

        /**
         * @param targetTable Configuration block of a target table for resource linking. See `target_table` below.
         * 
         * @return builder
         * 
         */
        public Builder targetTable(CatalogTableTargetTableArgs targetTable) {
            return targetTable(Output.of(targetTable));
        }

        /**
         * @param viewExpandedText If the table is a view, the expanded text of the view; otherwise null.
         * 
         * @return builder
         * 
         */
        public Builder viewExpandedText(@Nullable Output viewExpandedText) {
            $.viewExpandedText = viewExpandedText;
            return this;
        }

        /**
         * @param viewExpandedText If the table is a view, the expanded text of the view; otherwise null.
         * 
         * @return builder
         * 
         */
        public Builder viewExpandedText(String viewExpandedText) {
            return viewExpandedText(Output.of(viewExpandedText));
        }

        /**
         * @param viewOriginalText If the table is a view, the original text of the view; otherwise null.
         * 
         * @return builder
         * 
         */
        public Builder viewOriginalText(@Nullable Output viewOriginalText) {
            $.viewOriginalText = viewOriginalText;
            return this;
        }

        /**
         * @param viewOriginalText If the table is a view, the original text of the view; otherwise null.
         * 
         * @return builder
         * 
         */
        public Builder viewOriginalText(String viewOriginalText) {
            return viewOriginalText(Output.of(viewOriginalText));
        }

        public CatalogTableState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy