import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Table resource in Oracle Cloud Infrastructure NoSQL Database service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/nosql-database/latest/Table
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/object_storage
 *
 * Create a new table.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testTable = new oci.nosql.Table("test_table", {
 *     compartmentId: compartmentId,
 *     ddlStatement: tableDdlStatement,
 *     name: tableName,
 *     definedTags: tableDefinedTags,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     isAutoReclaimable: tableIsAutoReclaimable === "true",
 *     tableLimits: {
 *         maxReadUnits: Number(tableTableLimitsMaxReadUnits),
 *         maxStorageInGbs: Number(tableTableLimitsMaxStorageInGbs),
 *         maxWriteUnits: Number(tableTableLimitsMaxWriteUnits),
 *         capacityMode: tableTableLimitsCapacityMode,
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * Tables can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Nosql/table:Table test_table "id"
 * ```
 */
export declare class Table extends pulumi.CustomResource {
    /**
     * Get an existing Table resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TableState, opts?: pulumi.CustomResourceOptions): Table;
    /**
     * Returns true if the given object is an instance of Table.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Table;
    /**
     * (Updatable) Compartment Identifier.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) CREATE TABLE DDL statement. While updating an existing table, note that the column order should not be changed, and new columns can only be appended at the end of the table.
     */
    readonly ddlStatement: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace.  Example: `{"foo-namespace": {"bar-key": "value"}}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * True if table can be reclaimed after an idle period.
     */
    readonly isAutoReclaimable: pulumi.Output<boolean>;
    /**
     * True if this table is currently a member of a replication set.
     */
    readonly isMultiRegion: pulumi.Output<boolean>;
    /**
     * A message describing the current state in more detail.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * If this table is in a replication set, this value represents the progress of the initialization of the replica's data.  A value of 100 indicates that initialization has completed.
     */
    readonly localReplicaInitializationInPercent: pulumi.Output<number>;
    /**
     * Table name.
     */
    readonly name: pulumi.Output<string>;
    /**
     * An array of Replica listing this table's replicas, if any
     */
    readonly replicas: pulumi.Output<outputs.Nosql.TableReplica[]>;
    /**
     * The current state of this table's schema. Available states are MUTABLE - The schema can be changed. The table is not eligible for replication. FROZEN - The schema is immutable. The table is eligible for replication.
     */
    readonly schemaState: pulumi.Output<string>;
    /**
     * The table schema information as a JSON object.
     */
    readonly schemas: pulumi.Output<outputs.Nosql.TableSchema[]>;
    /**
     * The state of a table.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Read-only system tag. These predefined keys are scoped to namespaces.  At present the only supported namespace is `"orcl-cloud"`; and the only key in that namespace is `"free-tier-retained"`. Example: `{"orcl-cloud"": {"free-tier-retained": "true"}}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Throughput and storage limits configuration of a table. It is required for top level table, must be null for child table as child table shares its top parent table's limits.
     */
    readonly tableLimits: pulumi.Output<outputs.Nosql.TableTableLimits>;
    /**
     * The time the the table was created. An RFC3339 formatted datetime string.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * If lifecycleState is INACTIVE, indicates when this table will be automatically removed. An RFC3339 formatted datetime string.
     */
    readonly timeOfExpiration: pulumi.Output<string>;
    /**
     * The time the the table's metadata was last updated. An RFC3339 formatted datetime string.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a Table resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: TableArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Table resources.
 */
export interface TableState {
    /**
     * (Updatable) Compartment Identifier.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) CREATE TABLE DDL statement. While updating an existing table, note that the column order should not be changed, and new columns can only be appended at the end of the table.
     */
    ddlStatement?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace.  Example: `{"foo-namespace": {"bar-key": "value"}}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * True if table can be reclaimed after an idle period.
     */
    isAutoReclaimable?: pulumi.Input<boolean | undefined>;
    /**
     * True if this table is currently a member of a replication set.
     */
    isMultiRegion?: pulumi.Input<boolean | undefined>;
    /**
     * A message describing the current state in more detail.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * If this table is in a replication set, this value represents the progress of the initialization of the replica's data.  A value of 100 indicates that initialization has completed.
     */
    localReplicaInitializationInPercent?: pulumi.Input<number | undefined>;
    /**
     * Table name.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * An array of Replica listing this table's replicas, if any
     */
    replicas?: pulumi.Input<pulumi.Input<inputs.Nosql.TableReplica>[] | undefined>;
    /**
     * The current state of this table's schema. Available states are MUTABLE - The schema can be changed. The table is not eligible for replication. FROZEN - The schema is immutable. The table is eligible for replication.
     */
    schemaState?: pulumi.Input<string | undefined>;
    /**
     * The table schema information as a JSON object.
     */
    schemas?: pulumi.Input<pulumi.Input<inputs.Nosql.TableSchema>[] | undefined>;
    /**
     * The state of a table.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Read-only system tag. These predefined keys are scoped to namespaces.  At present the only supported namespace is `"orcl-cloud"`; and the only key in that namespace is `"free-tier-retained"`. Example: `{"orcl-cloud"": {"free-tier-retained": "true"}}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Throughput and storage limits configuration of a table. It is required for top level table, must be null for child table as child table shares its top parent table's limits.
     */
    tableLimits?: pulumi.Input<inputs.Nosql.TableTableLimits | undefined>;
    /**
     * The time the the table was created. An RFC3339 formatted datetime string.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * If lifecycleState is INACTIVE, indicates when this table will be automatically removed. An RFC3339 formatted datetime string.
     */
    timeOfExpiration?: pulumi.Input<string | undefined>;
    /**
     * The time the the table's metadata was last updated. An RFC3339 formatted datetime string.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Table resource.
 */
export interface TableArgs {
    /**
     * (Updatable) Compartment Identifier.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) CREATE TABLE DDL statement. While updating an existing table, note that the column order should not be changed, and new columns can only be appended at the end of the table.
     */
    ddlStatement: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace.  Example: `{"foo-namespace": {"bar-key": "value"}}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * True if table can be reclaimed after an idle period.
     */
    isAutoReclaimable?: pulumi.Input<boolean | undefined>;
    /**
     * Table name.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Throughput and storage limits configuration of a table. It is required for top level table, must be null for child table as child table shares its top parent table's limits.
     */
    tableLimits?: pulumi.Input<inputs.Nosql.TableTableLimits | undefined>;
}
//# sourceMappingURL=table.d.ts.map