import * as core from "@terrascript/core"; export interface CloudwatchLoggingOptionsArgs extends core.SchemaArgs { cloudwatchLoggingOptionId: string | core.StringOut; logStreamArn: string | core.StringOut; } export class CloudwatchLoggingOptions extends core.Schema { @core.attr(String, { computed: true }) public cloudwatchLoggingOptionId!: string | core.StringOut; @core.attr(String) public logStreamArn!: string | core.StringOut; } export interface ApplicationRestoreConfigurationArgs extends core.SchemaArgs { applicationRestoreType?: string | core.StringOut; snapshotName?: string | core.StringOut; } export class ApplicationRestoreConfiguration extends core.Schema { @core.attr(String, { computed: true }) public applicationRestoreType?: string | core.StringOut; @core.attr(String) public snapshotName?: string | core.StringOut; } export interface FlinkRunConfigurationArgs extends core.SchemaArgs { allowNonRestoredState?: boolean | core.BooleanOut; } export class FlinkRunConfiguration extends core.Schema { @core.attr(Boolean, { computed: true }) public allowNonRestoredState?: boolean | core.BooleanOut; } export interface RunConfigurationArgs extends core.SchemaArgs { applicationRestoreConfiguration?: ApplicationRestoreConfiguration; flinkRunConfiguration?: FlinkRunConfiguration; } export class RunConfiguration extends core.Schema { @core.attr(ApplicationRestoreConfiguration, { computed: true }) public applicationRestoreConfiguration?: ApplicationRestoreConfiguration; @core.attr(FlinkRunConfiguration, { computed: true }) public flinkRunConfiguration?: FlinkRunConfiguration; } export interface InputParallelismArgs extends core.SchemaArgs { count?: number | core.NumberOut; } export class InputParallelism extends core.Schema { @core.attr(Number, { computed: true }) public count?: number | core.NumberOut; } export interface KinesisFirehoseInputArgs extends core.SchemaArgs { resourceArn: string | core.StringOut; } export class KinesisFirehoseInput extends core.Schema { @core.attr(String) public resourceArn!: string | core.StringOut; } export interface KinesisStreamsInputArgs extends core.SchemaArgs { resourceArn: string | core.StringOut; } export class KinesisStreamsInput extends core.Schema { @core.attr(String) public resourceArn!: string | core.StringOut; } export interface InputLambdaProcessorArgs extends core.SchemaArgs { resourceArn: string | core.StringOut; } export class InputLambdaProcessor extends core.Schema { @core.attr(String) public resourceArn!: string | core.StringOut; } export interface InputProcessingConfigurationArgs extends core.SchemaArgs { inputLambdaProcessor: InputLambdaProcessor; } export class InputProcessingConfiguration extends core.Schema { @core.attr(InputLambdaProcessor) public inputLambdaProcessor!: InputLambdaProcessor; } export interface RecordColumnArgs extends core.SchemaArgs { mapping?: string | core.StringOut; name: string | core.StringOut; sqlType: string | core.StringOut; } export class RecordColumn extends core.Schema { @core.attr(String) public mapping?: string | core.StringOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(String) public sqlType!: string | core.StringOut; } export interface CsvMappingParametersArgs extends core.SchemaArgs { recordColumnDelimiter: string | core.StringOut; recordRowDelimiter: string | core.StringOut; } export class CsvMappingParameters extends core.Schema { @core.attr(String) public recordColumnDelimiter!: string | core.StringOut; @core.attr(String) public recordRowDelimiter!: string | core.StringOut; } export interface JsonMappingParametersArgs extends core.SchemaArgs { recordRowPath: string | core.StringOut; } export class JsonMappingParameters extends core.Schema { @core.attr(String) public recordRowPath!: string | core.StringOut; } export interface MappingParametersArgs extends core.SchemaArgs { csvMappingParameters?: CsvMappingParameters; jsonMappingParameters?: JsonMappingParameters; } export class MappingParameters extends core.Schema { @core.attr(CsvMappingParameters) public csvMappingParameters?: CsvMappingParameters; @core.attr(JsonMappingParameters) public jsonMappingParameters?: JsonMappingParameters; } export interface RecordFormatArgs extends core.SchemaArgs { mappingParameters: MappingParameters; recordFormatType: string | core.StringOut; } export class RecordFormat extends core.Schema { @core.attr(MappingParameters) public mappingParameters!: MappingParameters; @core.attr(String) public recordFormatType!: string | core.StringOut; } export interface InputSchemaArgs extends core.SchemaArgs { recordColumn: core.Array | core.ArrayOut; recordEncoding?: string | core.StringOut; recordFormat: RecordFormat; } export class InputSchema extends core.Schema { @core.attr(RecordColumn, { kind: "array" }) public recordColumn!: core.Array | core.ArrayOut; @core.attr(String) public recordEncoding?: string | core.StringOut; @core.attr(RecordFormat) public recordFormat!: RecordFormat; } export interface InputStartingPositionConfigurationArgs extends core.SchemaArgs { inputStartingPosition?: string | core.StringOut; } export class InputStartingPositionConfiguration extends core.Schema { @core.attr(String, { computed: true }) public inputStartingPosition?: string | core.StringOut; } export interface InputArgs extends core.SchemaArgs { inAppStreamNames: core.Array | core.ArrayOut; inputId: string | core.StringOut; inputParallelism?: InputParallelism; inputProcessingConfiguration?: InputProcessingConfiguration; inputSchema: InputSchema; inputStartingPositionConfiguration?: | core.Array | core.ArrayOut; kinesisFirehoseInput?: KinesisFirehoseInput; kinesisStreamsInput?: KinesisStreamsInput; namePrefix: string | core.StringOut; } export class Input extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public inAppStreamNames!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public inputId!: string | core.StringOut; @core.attr(InputParallelism, { computed: true }) public inputParallelism?: InputParallelism; @core.attr(InputProcessingConfiguration) public inputProcessingConfiguration?: InputProcessingConfiguration; @core.attr(InputSchema) public inputSchema!: InputSchema; @core.attr(InputStartingPositionConfiguration, { computed: true, kind: "array", }) public inputStartingPositionConfiguration?: | core.Array | core.ArrayOut; @core.attr(KinesisFirehoseInput) public kinesisFirehoseInput?: KinesisFirehoseInput; @core.attr(KinesisStreamsInput) public kinesisStreamsInput?: KinesisStreamsInput; @core.attr(String) public namePrefix!: string | core.StringOut; } export interface LambdaOutputArgs extends core.SchemaArgs { resourceArn: string | core.StringOut; } export class LambdaOutput extends core.Schema { @core.attr(String) public resourceArn!: string | core.StringOut; } export interface DestinationSchemaArgs extends core.SchemaArgs { recordFormatType: string | core.StringOut; } export class DestinationSchema extends core.Schema { @core.attr(String) public recordFormatType!: string | core.StringOut; } export interface KinesisFirehoseOutputArgs extends core.SchemaArgs { resourceArn: string | core.StringOut; } export class KinesisFirehoseOutput extends core.Schema { @core.attr(String) public resourceArn!: string | core.StringOut; } export interface KinesisStreamsOutputArgs extends core.SchemaArgs { resourceArn: string | core.StringOut; } export class KinesisStreamsOutput extends core.Schema { @core.attr(String) public resourceArn!: string | core.StringOut; } export interface OutputArgs extends core.SchemaArgs { destinationSchema: DestinationSchema; kinesisFirehoseOutput?: KinesisFirehoseOutput; kinesisStreamsOutput?: KinesisStreamsOutput; lambdaOutput?: LambdaOutput; name: string | core.StringOut; outputId: string | core.StringOut; } export class Output extends core.Schema { @core.attr(DestinationSchema) public destinationSchema!: DestinationSchema; @core.attr(KinesisFirehoseOutput) public kinesisFirehoseOutput?: KinesisFirehoseOutput; @core.attr(KinesisStreamsOutput) public kinesisStreamsOutput?: KinesisStreamsOutput; @core.attr(LambdaOutput) public lambdaOutput?: LambdaOutput; @core.attr(String) public name!: string | core.StringOut; @core.attr(String, { computed: true }) public outputId!: string | core.StringOut; } export interface ReferenceSchemaArgs extends core.SchemaArgs { recordColumn: core.Array | core.ArrayOut; recordEncoding?: string | core.StringOut; recordFormat: RecordFormat; } export class ReferenceSchema extends core.Schema { @core.attr(RecordColumn, { kind: "array" }) public recordColumn!: core.Array | core.ArrayOut; @core.attr(String) public recordEncoding?: string | core.StringOut; @core.attr(RecordFormat) public recordFormat!: RecordFormat; } export interface S3ReferenceDataSourceArgs extends core.SchemaArgs { bucketArn: string | core.StringOut; fileKey: string | core.StringOut; } export class S3ReferenceDataSource extends core.Schema { @core.attr(String) public bucketArn!: string | core.StringOut; @core.attr(String) public fileKey!: string | core.StringOut; } export interface ReferenceDataSourceArgs extends core.SchemaArgs { referenceId: string | core.StringOut; referenceSchema: ReferenceSchema; s3ReferenceDataSource: S3ReferenceDataSource; tableName: string | core.StringOut; } export class ReferenceDataSource extends core.Schema { @core.attr(String, { computed: true }) public referenceId!: string | core.StringOut; @core.attr(ReferenceSchema) public referenceSchema!: ReferenceSchema; @core.attr(S3ReferenceDataSource) public s3ReferenceDataSource!: S3ReferenceDataSource; @core.attr(String) public tableName!: string | core.StringOut; } export interface SqlApplicationConfigurationArgs extends core.SchemaArgs { input?: Input; output?: core.Array | core.ArrayOut; referenceDataSource?: ReferenceDataSource; } export class SqlApplicationConfiguration extends core.Schema { @core.attr(Input) public input?: Input; @core.attr(Output, { kind: "array" }) public output?: core.Array | core.ArrayOut; @core.attr(ReferenceDataSource) public referenceDataSource?: ReferenceDataSource; } export interface VpcConfigurationArgs extends core.SchemaArgs { securityGroupIds: core.Array | core.ArrayOut; subnetIds: core.Array | core.ArrayOut; vpcConfigurationId: string | core.StringOut; vpcId: string | core.StringOut; } export class VpcConfiguration extends core.Schema { @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 vpcConfigurationId!: string | core.StringOut; @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; } export interface S3ContentLocationArgs extends core.SchemaArgs { bucketArn: string | core.StringOut; fileKey: string | core.StringOut; objectVersion?: string | core.StringOut; } export class S3ContentLocation extends core.Schema { @core.attr(String) public bucketArn!: string | core.StringOut; @core.attr(String) public fileKey!: string | core.StringOut; @core.attr(String) public objectVersion?: string | core.StringOut; } export interface CodeContentArgs extends core.SchemaArgs { s3ContentLocation?: S3ContentLocation; textContent?: string | core.StringOut; } export class CodeContent extends core.Schema { @core.attr(S3ContentLocation) public s3ContentLocation?: S3ContentLocation; @core.attr(String) public textContent?: string | core.StringOut; } export interface ApplicationCodeConfigurationArgs extends core.SchemaArgs { codeContent?: CodeContent; codeContentType: string | core.StringOut; } export class ApplicationCodeConfiguration extends core.Schema { @core.attr(CodeContent) public codeContent?: CodeContent; @core.attr(String) public codeContentType!: string | core.StringOut; } export interface ApplicationSnapshotConfigurationArgs extends core.SchemaArgs { snapshotsEnabled: boolean | core.BooleanOut; } export class ApplicationSnapshotConfiguration extends core.Schema { @core.attr(Boolean) public snapshotsEnabled!: boolean | core.BooleanOut; } export interface PropertyGroupArgs extends core.SchemaArgs { propertyGroupId: string | core.StringOut; propertyMap: core.Map | core.MapOut; } export class PropertyGroup extends core.Schema { @core.attr(String) public propertyGroupId!: string | core.StringOut; @core.attr(String, { kind: "map" }) public propertyMap!: core.Map | core.MapOut; } export interface EnvironmentPropertiesArgs extends core.SchemaArgs { propertyGroup: core.Array | core.ArrayOut; } export class EnvironmentProperties extends core.Schema { @core.attr(PropertyGroup, { kind: "array" }) public propertyGroup!: | core.Array | core.ArrayOut; } export interface CheckpointConfigurationArgs extends core.SchemaArgs { checkpointInterval?: number | core.NumberOut; checkpointingEnabled?: boolean | core.BooleanOut; configurationType: string | core.StringOut; minPauseBetweenCheckpoints?: number | core.NumberOut; } export class CheckpointConfiguration extends core.Schema { @core.attr(Number, { computed: true }) public checkpointInterval?: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public checkpointingEnabled?: boolean | core.BooleanOut; @core.attr(String) public configurationType!: string | core.StringOut; @core.attr(Number, { computed: true }) public minPauseBetweenCheckpoints?: number | core.NumberOut; } export interface MonitoringConfigurationArgs extends core.SchemaArgs { configurationType: string | core.StringOut; logLevel?: string | core.StringOut; metricsLevel?: string | core.StringOut; } export class MonitoringConfiguration extends core.Schema { @core.attr(String) public configurationType!: string | core.StringOut; @core.attr(String, { computed: true }) public logLevel?: string | core.StringOut; @core.attr(String, { computed: true }) public metricsLevel?: string | core.StringOut; } export interface ParallelismConfigurationArgs extends core.SchemaArgs { autoScalingEnabled?: boolean | core.BooleanOut; configurationType: string | core.StringOut; parallelism?: number | core.NumberOut; parallelismPerKpu?: number | core.NumberOut; } export class ParallelismConfiguration extends core.Schema { @core.attr(Boolean, { computed: true }) public autoScalingEnabled?: boolean | core.BooleanOut; @core.attr(String) public configurationType!: string | core.StringOut; @core.attr(Number, { computed: true }) public parallelism?: number | core.NumberOut; @core.attr(Number, { computed: true }) public parallelismPerKpu?: number | core.NumberOut; } export interface FlinkApplicationConfigurationArgs extends core.SchemaArgs { checkpointConfiguration?: CheckpointConfiguration; monitoringConfiguration?: MonitoringConfiguration; parallelismConfiguration?: ParallelismConfiguration; } export class FlinkApplicationConfiguration extends core.Schema { @core.attr(CheckpointConfiguration, { computed: true }) public checkpointConfiguration?: CheckpointConfiguration; @core.attr(MonitoringConfiguration, { computed: true }) public monitoringConfiguration?: MonitoringConfiguration; @core.attr(ParallelismConfiguration, { computed: true }) public parallelismConfiguration?: ParallelismConfiguration; } export interface ApplicationConfigurationArgs extends core.SchemaArgs { applicationCodeConfiguration: ApplicationCodeConfiguration; applicationSnapshotConfiguration?: ApplicationSnapshotConfiguration; environmentProperties?: EnvironmentProperties; flinkApplicationConfiguration?: FlinkApplicationConfiguration; runConfiguration?: RunConfiguration; sqlApplicationConfiguration?: SqlApplicationConfiguration; vpcConfiguration?: VpcConfiguration; } export class ApplicationConfiguration extends core.Schema { @core.attr(ApplicationCodeConfiguration) public applicationCodeConfiguration!: ApplicationCodeConfiguration; @core.attr(ApplicationSnapshotConfiguration, { computed: true }) public applicationSnapshotConfiguration?: ApplicationSnapshotConfiguration; @core.attr(EnvironmentProperties) public environmentProperties?: EnvironmentProperties; @core.attr(FlinkApplicationConfiguration, { computed: true }) public flinkApplicationConfiguration?: FlinkApplicationConfiguration; @core.attr(RunConfiguration, { computed: true }) public runConfiguration?: RunConfiguration; @core.attr(SqlApplicationConfiguration) public sqlApplicationConfiguration?: SqlApplicationConfiguration; @core.attr(VpcConfiguration) public vpcConfiguration?: VpcConfiguration; } export interface ApplicationArgs extends core.ResourceArgs { /** * (Optional) The application's configuration */ applicationConfiguration?: ApplicationConfiguration; /** * (Optional) A [CloudWatch log stream](/docs/providers/aws/r/cloudwatch_log_stream.html) to monitor ap * plication configuration errors. */ cloudwatchLoggingOptions?: CloudwatchLoggingOptions; /** * (Optional) A summary description of the application. */ description?: string | core.StringOut; /** * (Optional) Whether to force stop an unresponsive Flink-based application. */ forceStop?: boolean | core.BooleanOut; /** * (Required) The name of the application. */ name: string | core.StringOut; /** * (Required) The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK * 1_8`, `FLINK-1_11`, `FLINK-1_13`. */ runtimeEnvironment: string | core.StringOut; /** * (Required) The ARN of the [IAM role](/docs/providers/aws/r/iam_role.html) used by the application to * access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other e * xternal resources. */ serviceExecutionRole: string | core.StringOut; /** * (Optional) Whether to start or stop the application. */ startApplication?: boolean | core.BooleanOut; /** * (Optional) A map of tags to assign to the application. If configured with a provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags * configuration-block) present, tags with matching keys will overwrite those defined at the provider- * level. */ 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; } export class Application extends core.Resource { /** * (Optional) The application's configuration */ @core.attr(ApplicationConfiguration, { computed: true }) public applicationConfiguration?: ApplicationConfiguration; /** * The ARN of the application. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) A [CloudWatch log stream](/docs/providers/aws/r/cloudwatch_log_stream.html) to monitor ap * plication configuration errors. */ @core.attr(CloudwatchLoggingOptions) public cloudwatchLoggingOptions?: CloudwatchLoggingOptions; /** * The current timestamp when the application was created. */ @core.attr(String, { computed: true }) public createTimestamp!: string | core.StringOut; /** * (Optional) A summary description of the application. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) Whether to force stop an unresponsive Flink-based application. */ @core.attr(Boolean) public forceStop?: boolean | core.BooleanOut; /** * The application identifier. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The current timestamp when the application was last updated. */ @core.attr(String, { computed: true }) public lastUpdateTimestamp!: string | core.StringOut; /** * (Required) The name of the application. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK * 1_8`, `FLINK-1_11`, `FLINK-1_13`. */ @core.attr(String) public runtimeEnvironment!: string | core.StringOut; /** * (Required) The ARN of the [IAM role](/docs/providers/aws/r/iam_role.html) used by the application to * access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other e * xternal resources. */ @core.attr(String) public serviceExecutionRole!: string | core.StringOut; /** * (Optional) Whether to start or stop the application. */ @core.attr(Boolean) public startApplication?: boolean | core.BooleanOut; /** * The status of the application. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * (Optional) A map of tags to assign to the application. If configured with a provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags * configuration-block) present, tags with matching keys will overwrite those defined at the provider- * level. */ @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; /** * The current application version. Kinesis Data Analytics updates the `version_id` each time the appli * cation is updated. */ @core.attr(Number, { computed: true }) public versionId!: number | core.NumberOut; constructor(name: string, args?: ApplicationArgs) { super(name, "aws_kinesisanalyticsv2_application", args); } public override getNamespace(): string { return "aws_kinesisanalyticsv2"; } }