import * as core from "@terrascript/core"; export interface VpcConfigArgs extends core.SchemaArgs { roleArn: string | core.StringOut; securityGroupIds: core.Array | core.ArrayOut; subnetIds: core.Array | core.ArrayOut; vpcId: string | core.StringOut; } export class VpcConfig extends core.Schema { @core.attr(String) public roleArn!: string | core.StringOut; @core.attr(String, { kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; } export interface CloudwatchLoggingOptionsArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; logGroupName?: string | core.StringOut; logStreamName?: string | core.StringOut; } export class CloudwatchLoggingOptions extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(String) public logGroupName?: string | core.StringOut; @core.attr(String) public logStreamName?: string | core.StringOut; } export interface ParametersArgs extends core.SchemaArgs { parameterName: string | core.StringOut; parameterValue: string | core.StringOut; } export class Parameters extends core.Schema { @core.attr(String) public parameterName!: string | core.StringOut; @core.attr(String) public parameterValue!: string | core.StringOut; } export interface ProcessorsArgs extends core.SchemaArgs { parameters?: core.Array | core.ArrayOut; type: string | core.StringOut; } export class Processors extends core.Schema { @core.attr(Parameters, { kind: "array" }) public parameters?: core.Array | core.ArrayOut; @core.attr(String) public type!: string | core.StringOut; } export interface ProcessingConfigurationArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; processors?: core.Array | core.ArrayOut; } export class ProcessingConfiguration extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(Processors, { kind: "array" }) public processors?: core.Array | core.ArrayOut; } export interface ElasticsearchConfigurationArgs extends core.SchemaArgs { bufferingInterval?: number | core.NumberOut; bufferingSize?: number | core.NumberOut; cloudwatchLoggingOptions?: CloudwatchLoggingOptions; clusterEndpoint?: string | core.StringOut; domainArn?: string | core.StringOut; indexName: string | core.StringOut; indexRotationPeriod?: string | core.StringOut; processingConfiguration?: ProcessingConfiguration; retryDuration?: number | core.NumberOut; roleArn: string | core.StringOut; s3BackupMode?: string | core.StringOut; typeName?: string | core.StringOut; vpcConfig?: VpcConfig; } export class ElasticsearchConfiguration extends core.Schema { @core.attr(Number) public bufferingInterval?: number | core.NumberOut; @core.attr(Number) public bufferingSize?: number | core.NumberOut; @core.attr(CloudwatchLoggingOptions, { computed: true }) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; @core.attr(String) public clusterEndpoint?: string | core.StringOut; @core.attr(String) public domainArn?: string | core.StringOut; @core.attr(String) public indexName!: string | core.StringOut; @core.attr(String) public indexRotationPeriod?: string | core.StringOut; @core.attr(ProcessingConfiguration) public processingConfiguration?: ProcessingConfiguration; @core.attr(Number) public retryDuration?: number | core.NumberOut; @core.attr(String) public roleArn!: string | core.StringOut; @core.attr(String) public s3BackupMode?: string | core.StringOut; @core.attr(String) public typeName?: string | core.StringOut; @core.attr(VpcConfig) public vpcConfig?: VpcConfig; } export interface S3ConfigurationArgs extends core.SchemaArgs { bucketArn: string | core.StringOut; bufferInterval?: number | core.NumberOut; bufferSize?: number | core.NumberOut; cloudwatchLoggingOptions?: CloudwatchLoggingOptions; compressionFormat?: string | core.StringOut; errorOutputPrefix?: string | core.StringOut; kmsKeyArn?: string | core.StringOut; prefix?: string | core.StringOut; roleArn: string | core.StringOut; } export class S3Configuration extends core.Schema { @core.attr(String) public bucketArn!: string | core.StringOut; @core.attr(Number) public bufferInterval?: number | core.NumberOut; @core.attr(Number) public bufferSize?: number | core.NumberOut; @core.attr(CloudwatchLoggingOptions, { computed: true }) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; @core.attr(String) public compressionFormat?: string | core.StringOut; @core.attr(String) public errorOutputPrefix?: string | core.StringOut; @core.attr(String) public kmsKeyArn?: string | core.StringOut; @core.attr(String) public prefix?: string | core.StringOut; @core.attr(String) public roleArn!: string | core.StringOut; } export interface CommonAttributesArgs extends core.SchemaArgs { name: string | core.StringOut; value: string | core.StringOut; } export class CommonAttributes extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(String) public value!: string | core.StringOut; } export interface RequestConfigurationArgs extends core.SchemaArgs { commonAttributes?: | core.Array | core.ArrayOut; contentEncoding?: string | core.StringOut; } export class RequestConfiguration extends core.Schema { @core.attr(CommonAttributes, { kind: "array" }) public commonAttributes?: | core.Array | core.ArrayOut; @core.attr(String) public contentEncoding?: string | core.StringOut; } export interface HttpEndpointConfigurationArgs extends core.SchemaArgs { accessKey?: string | core.StringOut; bufferingInterval?: number | core.NumberOut; bufferingSize?: number | core.NumberOut; cloudwatchLoggingOptions?: CloudwatchLoggingOptions; name?: string | core.StringOut; processingConfiguration?: ProcessingConfiguration; requestConfiguration?: RequestConfiguration; retryDuration?: number | core.NumberOut; roleArn?: string | core.StringOut; s3BackupMode?: string | core.StringOut; url: string | core.StringOut; } export class HttpEndpointConfiguration extends core.Schema { @core.attr(String) public accessKey?: string | core.StringOut; @core.attr(Number) public bufferingInterval?: number | core.NumberOut; @core.attr(Number) public bufferingSize?: number | core.NumberOut; @core.attr(CloudwatchLoggingOptions, { computed: true }) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; @core.attr(String) public name?: string | core.StringOut; @core.attr(ProcessingConfiguration) public processingConfiguration?: ProcessingConfiguration; @core.attr(RequestConfiguration, { computed: true }) public requestConfiguration?: RequestConfiguration; @core.attr(Number) public retryDuration?: number | core.NumberOut; @core.attr(String) public roleArn?: string | core.StringOut; @core.attr(String) public s3BackupMode?: string | core.StringOut; @core.attr(String) public url!: string | core.StringOut; } export interface KinesisSourceConfigurationArgs extends core.SchemaArgs { kinesisStreamArn: string | core.StringOut; roleArn: string | core.StringOut; } export class KinesisSourceConfiguration extends core.Schema { @core.attr(String) public kinesisStreamArn!: string | core.StringOut; @core.attr(String) public roleArn!: string | core.StringOut; } export interface S3BackupConfigurationArgs extends core.SchemaArgs { bucketArn: string | core.StringOut; bufferInterval?: number | core.NumberOut; bufferSize?: number | core.NumberOut; cloudwatchLoggingOptions?: CloudwatchLoggingOptions; compressionFormat?: string | core.StringOut; errorOutputPrefix?: string | core.StringOut; kmsKeyArn?: string | core.StringOut; prefix?: string | core.StringOut; roleArn: string | core.StringOut; } export class S3BackupConfiguration extends core.Schema { @core.attr(String) public bucketArn!: string | core.StringOut; @core.attr(Number) public bufferInterval?: number | core.NumberOut; @core.attr(Number) public bufferSize?: number | core.NumberOut; @core.attr(CloudwatchLoggingOptions, { computed: true }) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; @core.attr(String) public compressionFormat?: string | core.StringOut; @core.attr(String) public errorOutputPrefix?: string | core.StringOut; @core.attr(String) public kmsKeyArn?: string | core.StringOut; @core.attr(String) public prefix?: string | core.StringOut; @core.attr(String) public roleArn!: string | core.StringOut; } export interface DynamicPartitioningConfigurationArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; retryDuration?: number | core.NumberOut; } export class DynamicPartitioningConfiguration extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(Number) public retryDuration?: number | core.NumberOut; } export interface SchemaConfigurationArgs extends core.SchemaArgs { catalogId?: string | core.StringOut; databaseName: string | core.StringOut; region?: string | core.StringOut; roleArn: string | core.StringOut; tableName: string | core.StringOut; versionId?: string | core.StringOut; } export class SchemaConfiguration extends core.Schema { @core.attr(String, { computed: true }) public catalogId?: string | core.StringOut; @core.attr(String) public databaseName!: string | core.StringOut; @core.attr(String, { computed: true }) public region?: string | core.StringOut; @core.attr(String) public roleArn!: string | core.StringOut; @core.attr(String) public tableName!: string | core.StringOut; @core.attr(String) public versionId?: string | core.StringOut; } export interface HiveJsonSerDeArgs extends core.SchemaArgs { timestampFormats?: core.Array | core.ArrayOut; } export class HiveJsonSerDe extends core.Schema { @core.attr(String, { kind: "array" }) public timestampFormats?: core.Array | core.ArrayOut; } export interface OpenXJsonSerDeArgs extends core.SchemaArgs { caseInsensitive?: boolean | core.BooleanOut; columnToJsonKeyMappings?: | core.Map | core.MapOut; convertDotsInJsonKeysToUnderscores?: boolean | core.BooleanOut; } export class OpenXJsonSerDe extends core.Schema { @core.attr(Boolean) public caseInsensitive?: boolean | core.BooleanOut; @core.attr(String, { kind: "map" }) public columnToJsonKeyMappings?: | core.Map | core.MapOut; @core.attr(Boolean) public convertDotsInJsonKeysToUnderscores?: boolean | core.BooleanOut; } export interface DeserializerArgs extends core.SchemaArgs { hiveJsonSerDe?: HiveJsonSerDe; openXJsonSerDe?: OpenXJsonSerDe; } export class Deserializer extends core.Schema { @core.attr(HiveJsonSerDe) public hiveJsonSerDe?: HiveJsonSerDe; @core.attr(OpenXJsonSerDe) public openXJsonSerDe?: OpenXJsonSerDe; } export interface InputFormatConfigurationArgs extends core.SchemaArgs { deserializer: Deserializer; } export class InputFormatConfiguration extends core.Schema { @core.attr(Deserializer) public deserializer!: Deserializer; } export interface ParquetSerDeArgs extends core.SchemaArgs { blockSizeBytes?: number | core.NumberOut; compression?: string | core.StringOut; enableDictionaryCompression?: boolean | core.BooleanOut; maxPaddingBytes?: number | core.NumberOut; pageSizeBytes?: number | core.NumberOut; writerVersion?: string | core.StringOut; } export class ParquetSerDe extends core.Schema { @core.attr(Number) public blockSizeBytes?: number | core.NumberOut; @core.attr(String) public compression?: string | core.StringOut; @core.attr(Boolean) public enableDictionaryCompression?: boolean | core.BooleanOut; @core.attr(Number) public maxPaddingBytes?: number | core.NumberOut; @core.attr(Number) public pageSizeBytes?: number | core.NumberOut; @core.attr(String) public writerVersion?: string | core.StringOut; } export interface OrcSerDeArgs extends core.SchemaArgs { blockSizeBytes?: number | core.NumberOut; bloomFilterColumns?: core.Array | core.ArrayOut; bloomFilterFalsePositiveProbability?: number | core.NumberOut; compression?: string | core.StringOut; dictionaryKeyThreshold?: number | core.NumberOut; enablePadding?: boolean | core.BooleanOut; formatVersion?: string | core.StringOut; paddingTolerance?: number | core.NumberOut; rowIndexStride?: number | core.NumberOut; stripeSizeBytes?: number | core.NumberOut; } export class OrcSerDe extends core.Schema { @core.attr(Number) public blockSizeBytes?: number | core.NumberOut; @core.attr(String, { kind: "array" }) public bloomFilterColumns?: | core.Array | core.ArrayOut; @core.attr(Number) public bloomFilterFalsePositiveProbability?: number | core.NumberOut; @core.attr(String) public compression?: string | core.StringOut; @core.attr(Number) public dictionaryKeyThreshold?: number | core.NumberOut; @core.attr(Boolean) public enablePadding?: boolean | core.BooleanOut; @core.attr(String) public formatVersion?: string | core.StringOut; @core.attr(Number) public paddingTolerance?: number | core.NumberOut; @core.attr(Number) public rowIndexStride?: number | core.NumberOut; @core.attr(Number) public stripeSizeBytes?: number | core.NumberOut; } export interface SerializerArgs extends core.SchemaArgs { orcSerDe?: OrcSerDe; parquetSerDe?: ParquetSerDe; } export class Serializer extends core.Schema { @core.attr(OrcSerDe) public orcSerDe?: OrcSerDe; @core.attr(ParquetSerDe) public parquetSerDe?: ParquetSerDe; } export interface OutputFormatConfigurationArgs extends core.SchemaArgs { serializer: Serializer; } export class OutputFormatConfiguration extends core.Schema { @core.attr(Serializer) public serializer!: Serializer; } export interface DataFormatConversionConfigurationArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; inputFormatConfiguration: InputFormatConfiguration; outputFormatConfiguration: OutputFormatConfiguration; schemaConfiguration: SchemaConfiguration; } export class DataFormatConversionConfiguration extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(InputFormatConfiguration) public inputFormatConfiguration!: InputFormatConfiguration; @core.attr(OutputFormatConfiguration) public outputFormatConfiguration!: OutputFormatConfiguration; @core.attr(SchemaConfiguration) public schemaConfiguration!: SchemaConfiguration; } export interface ExtendedS3ConfigurationArgs extends core.SchemaArgs { bucketArn: string | core.StringOut; bufferInterval?: number | core.NumberOut; bufferSize?: number | core.NumberOut; cloudwatchLoggingOptions?: CloudwatchLoggingOptions; compressionFormat?: string | core.StringOut; dataFormatConversionConfiguration?: DataFormatConversionConfiguration; dynamicPartitioningConfiguration?: DynamicPartitioningConfiguration; errorOutputPrefix?: string | core.StringOut; kmsKeyArn?: string | core.StringOut; prefix?: string | core.StringOut; processingConfiguration?: ProcessingConfiguration; roleArn: string | core.StringOut; s3BackupConfiguration?: S3BackupConfiguration; s3BackupMode?: string | core.StringOut; } export class ExtendedS3Configuration extends core.Schema { @core.attr(String) public bucketArn!: string | core.StringOut; @core.attr(Number) public bufferInterval?: number | core.NumberOut; @core.attr(Number) public bufferSize?: number | core.NumberOut; @core.attr(CloudwatchLoggingOptions, { computed: true }) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; @core.attr(String) public compressionFormat?: string | core.StringOut; @core.attr(DataFormatConversionConfiguration) public dataFormatConversionConfiguration?: DataFormatConversionConfiguration; @core.attr(DynamicPartitioningConfiguration) public dynamicPartitioningConfiguration?: DynamicPartitioningConfiguration; @core.attr(String) public errorOutputPrefix?: string | core.StringOut; @core.attr(String) public kmsKeyArn?: string | core.StringOut; @core.attr(String) public prefix?: string | core.StringOut; @core.attr(ProcessingConfiguration) public processingConfiguration?: ProcessingConfiguration; @core.attr(String) public roleArn!: string | core.StringOut; @core.attr(S3BackupConfiguration) public s3BackupConfiguration?: S3BackupConfiguration; @core.attr(String) public s3BackupMode?: string | core.StringOut; } export interface ServerSideEncryptionArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; keyArn?: string | core.StringOut; keyType?: string | core.StringOut; } export class ServerSideEncryption extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(String) public keyArn?: string | core.StringOut; @core.attr(String) public keyType?: string | core.StringOut; } export interface SplunkConfigurationArgs extends core.SchemaArgs { cloudwatchLoggingOptions?: CloudwatchLoggingOptions; hecAcknowledgmentTimeout?: number | core.NumberOut; hecEndpoint: string | core.StringOut; hecEndpointType?: string | core.StringOut; hecToken: string | core.StringOut; processingConfiguration?: ProcessingConfiguration; retryDuration?: number | core.NumberOut; s3BackupMode?: string | core.StringOut; } export class SplunkConfiguration extends core.Schema { @core.attr(CloudwatchLoggingOptions, { computed: true }) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; @core.attr(Number) public hecAcknowledgmentTimeout?: number | core.NumberOut; @core.attr(String) public hecEndpoint!: string | core.StringOut; @core.attr(String) public hecEndpointType?: string | core.StringOut; @core.attr(String) public hecToken!: string | core.StringOut; @core.attr(ProcessingConfiguration) public processingConfiguration?: ProcessingConfiguration; @core.attr(Number) public retryDuration?: number | core.NumberOut; @core.attr(String) public s3BackupMode?: string | core.StringOut; } export interface RedshiftConfigurationArgs extends core.SchemaArgs { cloudwatchLoggingOptions?: CloudwatchLoggingOptions; clusterJdbcurl: string | core.StringOut; copyOptions?: string | core.StringOut; dataTableColumns?: string | core.StringOut; dataTableName: string | core.StringOut; password: string | core.StringOut; processingConfiguration?: ProcessingConfiguration; retryDuration?: number | core.NumberOut; roleArn: string | core.StringOut; s3BackupConfiguration?: S3BackupConfiguration; s3BackupMode?: string | core.StringOut; username: string | core.StringOut; } export class RedshiftConfiguration extends core.Schema { @core.attr(CloudwatchLoggingOptions, { computed: true }) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; @core.attr(String) public clusterJdbcurl!: string | core.StringOut; @core.attr(String) public copyOptions?: string | core.StringOut; @core.attr(String) public dataTableColumns?: string | core.StringOut; @core.attr(String) public dataTableName!: string | core.StringOut; @core.attr(String) public password!: string | core.StringOut; @core.attr(ProcessingConfiguration) public processingConfiguration?: ProcessingConfiguration; @core.attr(Number) public retryDuration?: number | core.NumberOut; @core.attr(String) public roleArn!: string | core.StringOut; @core.attr(S3BackupConfiguration) public s3BackupConfiguration?: S3BackupConfiguration; @core.attr(String) public s3BackupMode?: string | core.StringOut; @core.attr(String) public username!: string | core.StringOut; } export interface DeliveryStreamArgs extends core.ResourceArgs { /** * The Amazon Resource Name (ARN) specifying the Stream */ arn?: string | core.StringOut; destination: string | core.StringOut; destinationId?: string | core.StringOut; /** * (Optional) Configuration options if elasticsearch is the destination. More details are given below. */ elasticsearchConfiguration?: ElasticsearchConfiguration; /** * (Optional, only Required when `destination` is `extended_s3`) Enhanced configuration options for the * s3 destination. More details are given below. */ extendedS3Configuration?: ExtendedS3Configuration; /** * (Optional) Configuration options if http_endpoint is the destination. requires the user to also spec * ify a `s3_configuration` block. More details are given below. */ httpEndpointConfiguration?: HttpEndpointConfiguration; /** * (Optional) Allows the ability to specify the kinesis stream that is used as the source of the fireho * se delivery stream. */ kinesisSourceConfiguration?: KinesisSourceConfiguration; /** * (Required) A name to identify the stream. This is unique to the */ name: string | core.StringOut; /** * (Optional) Configuration options if redshift is the destination. */ redshiftConfiguration?: RedshiftConfiguration; /** * (Optional) Required for non-S3 destinations. For S3 destination, use `extended_s3_configuration` ins * tead. Configuration options for the s3 destination (or the intermediate bucket if the destination */ s3Configuration?: S3Configuration; /** * (Optional) Encrypt at rest options. */ serverSideEncryption?: ServerSideEncryption; /** * (Optional) Configuration options if splunk is the destination. More details are given below. */ splunkConfiguration?: SplunkConfiguration; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) Specifies the table version for the output data schema. Defaults to `LATEST`. */ versionId?: string | core.StringOut; } export class DeliveryStream extends core.Resource { /** * The Amazon Resource Name (ARN) specifying the Stream */ @core.attr(String, { computed: true }) public arn?: string | core.StringOut; @core.attr(String) public destination!: string | core.StringOut; @core.attr(String, { computed: true }) public destinationId?: string | core.StringOut; /** * (Optional) Configuration options if elasticsearch is the destination. More details are given below. */ @core.attr(ElasticsearchConfiguration) public elasticsearchConfiguration?: ElasticsearchConfiguration; /** * (Optional, only Required when `destination` is `extended_s3`) Enhanced configuration options for the * s3 destination. More details are given below. */ @core.attr(ExtendedS3Configuration) public extendedS3Configuration?: ExtendedS3Configuration; /** * (Optional) Configuration options if http_endpoint is the destination. requires the user to also spec * ify a `s3_configuration` block. More details are given below. */ @core.attr(HttpEndpointConfiguration) public httpEndpointConfiguration?: HttpEndpointConfiguration; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Allows the ability to specify the kinesis stream that is used as the source of the fireho * se delivery stream. */ @core.attr(KinesisSourceConfiguration) public kinesisSourceConfiguration?: KinesisSourceConfiguration; /** * (Required) A name to identify the stream. This is unique to the */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Configuration options if redshift is the destination. */ @core.attr(RedshiftConfiguration) public redshiftConfiguration?: RedshiftConfiguration; /** * (Optional) Required for non-S3 destinations. For S3 destination, use `extended_s3_configuration` ins * tead. Configuration options for the s3 destination (or the intermediate bucket if the destination */ @core.attr(S3Configuration) public s3Configuration?: S3Configuration; /** * (Optional) Encrypt at rest options. */ @core.attr(ServerSideEncryption) public serverSideEncryption?: ServerSideEncryption; /** * (Optional) Configuration options if splunk is the destination. More details are given below. */ @core.attr(SplunkConfiguration) public splunkConfiguration?: SplunkConfiguration; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) Specifies the table version for the output data schema. Defaults to `LATEST`. */ @core.attr(String, { computed: true }) public versionId?: string | core.StringOut; constructor(name: string, args?: DeliveryStreamArgs) { super(name, "aws_kinesis_firehose_delivery_stream", args); } public override getNamespace(): string { return "aws_kinesis_firehose"; } }