import { Value } from '../../../cloudformation/Value';
import { StorageDescriptorProps } from './StorageDescriptorProps';
import { TableIdentifierProps } from './TableIdentifierProps';
import { ColumnProps } from './ColumnProps';
/**
  A structure used to define a table.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html">the AWS Docs</a>
*/
export interface TableInputProps {
    /** <code>Owner</code>  <a name="cfn-glue-table-tableinput-owner"></a>
  The table owner. Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>255</code><br />
  
  Pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    owner?: Value<string>;
    /** <code>ViewOriginalText</code>  <a name="cfn-glue-table-tableinput-vieworiginaltext"></a>
  Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations. If the table is a <code>VIRTUAL_VIEW</code>, certain Athena configuration encoded in base64.<br />
  
  Required: No<br />
  
  Maximum: <code>409600</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    viewOriginalText?: Value<string>;
    /** <code>Description</code>  <a name="cfn-glue-table-tableinput-description"></a>
  A description of the table.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>2048</code><br />
  
  Pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>TableType</code>  <a name="cfn-glue-table-tableinput-tabletype"></a>
  The type of this table. AWS Glue will create tables with the <code>EXTERNAL_TABLE</code> type. Other services, such as Athena, may create tables with additional table types.<br />
  AWS Glue related table types:<br />
  EXTERNAL_TABLE<br />
  Hive compatible attribute - indicates a non-Hive managed table.<br />
  GOVERNED<br />
  Used by AWS Lake Formation. The AWS Glue Data Catalog understands <code>GOVERNED</code>.
  
  Required: No<br />
  
  Maximum: <code>255</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tableType?: Value<string>;
    /** <code>Parameters</code>  <a name="cfn-glue-table-tableinput-parameters"></a>
  These key-value pairs define properties associated with the table.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    parameters?: Value<any>;
    /** <code>ViewExpandedText</code>  <a name="cfn-glue-table-tableinput-viewexpandedtext"></a>
  Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations.<br />
  
  Required: No<br />
  
  Maximum: <code>409600</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    viewExpandedText?: Value<string>;
    /** <code>StorageDescriptor</code>  <a name="cfn-glue-table-tableinput-storagedescriptor"></a>
  A storage descriptor containing information about the physical storage of this table.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    storageDescriptor?: StorageDescriptorProps;
    /** <code>TargetTable</code>  <a name="cfn-glue-table-tableinput-targettable"></a>
  A <code>TableIdentifier</code> structure that describes a target table for resource linking.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    targetTable?: TableIdentifierProps;
    /** <code>PartitionKeys</code>  <a name="cfn-glue-table-tableinput-partitionkeys"></a>
  A list of columns by which the table is partitioned. Only primitive types are supported as partition keys.<br />
  When you create a table used by Amazon Athena, and you do not specify any <code>partitionKeys</code>, you must at least set the value of <code>partitionKeys</code> to an empty list. For example:<br />
  <code>&quot;PartitionKeys&quot;: []</code><br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    partitionKeys?: ColumnProps[];
    /** <code>Retention</code>  <a name="cfn-glue-table-tableinput-retention"></a>
  The retention time for this table.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    retention?: Value<number>;
    /** <code>Name</code>  <a name="cfn-glue-table-tableinput-name"></a>
  The table name. For Hive compatibility, this is folded to lowercase when it is stored.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>255</code><br />
  
  Pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name?: Value<string>;
}
