import { Value } from '../../../cloudformation/Value';
/**
  A serializer to use for converting data to the ORC format before storing it in Amazon S3. For more information, see <a href="https://orc.apache.org/docs/">Apache ORC</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html">the AWS Docs</a>
*/
export interface OrcSerDeProps {
    /** <code>PaddingTolerance</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-paddingtolerance"></a>
  A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size. The default value is 0.05, which means 5 percent of stripe size.<br />
  For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default block padding tolerance of 5 percent reserves a maximum of 3.2 MiB for padding within the 256 MiB block. In such a case, if the available size within the block is more than 3.2 MiB, a new, smaller stripe is inserted to fit within that space. This ensures that no stripe crosses block boundaries and causes remote reads within a node-local task.<br />
  Kinesis Data Firehose ignores this parameter when <code>EnablePadding</code> is <code>false</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> */
    paddingTolerance?: Value<number>;
    /** <code>Compression</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-compression"></a>
  The compression code to use over data blocks. The default is <code>SNAPPY</code>.<br />
  
  Required: No<br />
  
  Allowed values: <code>NONE | SNAPPY | ZLIB</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> */
    compression?: Value<'NONE' | 'SNAPPY' | 'ZLIB'>;
    /** <code>StripeSizeBytes</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-stripesizebytes"></a>
  The number of bytes in each stripe. The default is 64 MiB and the minimum is 8 MiB.<br />
  
  Required: No<br />
  
  Minimum: <code>8388608</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> */
    stripeSizeBytes?: Value<number>;
    /** <code>BloomFilterColumns</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-bloomfiltercolumns"></a>
  The column names for which you want Kinesis Data Firehose to create bloom filters. The default is <code>null</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> */
    bloomFilterColumns?: Value<Value<string>[]>;
    /** <code>BloomFilterFalsePositiveProbability</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-bloomfilterfalsepositiveprobability"></a>
  The Bloom filter false positive probability (FPP). The lower the FPP, the bigger the Bloom filter. The default value is 0.05, the minimum is 0, and the maximum is 1.<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> */
    bloomFilterFalsePositiveProbability?: Value<number>;
    /** <code>EnablePadding</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-enablepadding"></a>
  Set this to <code>true</code> to indicate that you want stripes to be padded to the HDFS block boundaries. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is <code>false</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> */
    enablePadding?: Value<boolean>;
    /** <code>FormatVersion</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-formatversion"></a>
  The version of the file to write. The possible values are <code>V0_11</code> and <code>V0_12</code>. The default is <code>V0_12</code>.<br />
  
  Required: No<br />
  
  Allowed values: <code>V0_11 | V0_12</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> */
    formatVersion?: Value<'V0_11' | 'V0_12'>;
    /** <code>RowIndexStride</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-rowindexstride"></a>
  The number of rows between index entries. The default is 10,000 and the minimum is 1,000.<br />
  
  Required: No<br />
  
  Minimum: <code>1000</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> */
    rowIndexStride?: Value<number>;
    /** <code>BlockSizeBytes</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-blocksizebytes"></a>
  The Hadoop Distributed File System (HDFS) block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value for padding calculations.<br />
  
  Required: No<br />
  
  Minimum: <code>67108864</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> */
    blockSizeBytes?: Value<number>;
    /** <code>DictionaryKeyThreshold</code>  <a name="cfn-kinesisfirehose-deliverystream-orcserde-dictionarykeythreshold"></a>
  Represents the fraction of the total number of non-null rows. To turn off dictionary encoding, set this fraction to a number that is less than the number of distinct keys in a dictionary. To always use dictionary encoding, set this threshold to 1.<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> */
    dictionaryKeyThreshold?: Value<number>;
}
