import * as core from "@terrascript/core"; export interface KafkaClusterClientAuthenticationArgs extends core.SchemaArgs { authenticationType?: string | core.StringOut; } export class KafkaClusterClientAuthentication extends core.Schema { @core.attr(String) public authenticationType?: string | core.StringOut; } export interface ScaleInPolicyArgs extends core.SchemaArgs { cpuUtilizationPercentage?: number | core.NumberOut; } export class ScaleInPolicy extends core.Schema { @core.attr(Number, { computed: true }) public cpuUtilizationPercentage?: number | core.NumberOut; } export interface ScaleOutPolicyArgs extends core.SchemaArgs { cpuUtilizationPercentage?: number | core.NumberOut; } export class ScaleOutPolicy extends core.Schema { @core.attr(Number, { computed: true }) public cpuUtilizationPercentage?: number | core.NumberOut; } export interface AutoscalingArgs extends core.SchemaArgs { maxWorkerCount: number | core.NumberOut; mcuCount?: number | core.NumberOut; minWorkerCount: number | core.NumberOut; scaleInPolicy?: ScaleInPolicy; scaleOutPolicy?: ScaleOutPolicy; } export class Autoscaling extends core.Schema { @core.attr(Number) public maxWorkerCount!: number | core.NumberOut; @core.attr(Number) public mcuCount?: number | core.NumberOut; @core.attr(Number) public minWorkerCount!: number | core.NumberOut; @core.attr(ScaleInPolicy, { computed: true }) public scaleInPolicy?: ScaleInPolicy; @core.attr(ScaleOutPolicy, { computed: true }) public scaleOutPolicy?: ScaleOutPolicy; } export interface ProvisionedCapacityArgs extends core.SchemaArgs { mcuCount?: number | core.NumberOut; workerCount: number | core.NumberOut; } export class ProvisionedCapacity extends core.Schema { @core.attr(Number) public mcuCount?: number | core.NumberOut; @core.attr(Number) public workerCount!: number | core.NumberOut; } export interface CapacityArgs extends core.SchemaArgs { autoscaling?: Autoscaling; provisionedCapacity?: ProvisionedCapacity; } export class Capacity extends core.Schema { @core.attr(Autoscaling) public autoscaling?: Autoscaling; @core.attr(ProvisionedCapacity) public provisionedCapacity?: ProvisionedCapacity; } export interface WorkerConfigurationArgs extends core.SchemaArgs { arn: string | core.StringOut; revision: number | core.NumberOut; } export class WorkerConfiguration extends core.Schema { @core.attr(String) public arn!: string | core.StringOut; @core.attr(Number) public revision!: number | core.NumberOut; } export interface VpcArgs extends core.SchemaArgs { securityGroups: core.Array | core.ArrayOut; subnets: core.Array | core.ArrayOut; } export class Vpc extends core.Schema { @core.attr(String, { kind: "array" }) public securityGroups!: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public subnets!: core.Array | core.ArrayOut; } export interface ApacheKafkaClusterArgs extends core.SchemaArgs { bootstrapServers: string | core.StringOut; vpc: Vpc; } export class ApacheKafkaCluster extends core.Schema { @core.attr(String) public bootstrapServers!: string | core.StringOut; @core.attr(Vpc) public vpc!: Vpc; } export interface KafkaClusterArgs extends core.SchemaArgs { apacheKafkaCluster: ApacheKafkaCluster; } export class KafkaCluster extends core.Schema { @core.attr(ApacheKafkaCluster) public apacheKafkaCluster!: ApacheKafkaCluster; } export interface CustomPluginArgs extends core.SchemaArgs { arn: string | core.StringOut; revision: number | core.NumberOut; } export class CustomPlugin extends core.Schema { @core.attr(String) public arn!: string | core.StringOut; @core.attr(Number) public revision!: number | core.NumberOut; } export interface PluginArgs extends core.SchemaArgs { customPlugin: CustomPlugin; } export class Plugin extends core.Schema { @core.attr(CustomPlugin) public customPlugin!: CustomPlugin; } export interface KafkaClusterEncryptionInTransitArgs extends core.SchemaArgs { encryptionType?: string | core.StringOut; } export class KafkaClusterEncryptionInTransit extends core.Schema { @core.attr(String) public encryptionType?: string | core.StringOut; } export interface CloudwatchLogsArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; logGroup?: string | core.StringOut; } export class CloudwatchLogs extends core.Schema { @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; @core.attr(String) public logGroup?: string | core.StringOut; } export interface FirehoseArgs extends core.SchemaArgs { deliveryStream?: string | core.StringOut; enabled: boolean | core.BooleanOut; } export class Firehose extends core.Schema { @core.attr(String) public deliveryStream?: string | core.StringOut; @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; } export interface S3Args extends core.SchemaArgs { bucket?: string | core.StringOut; enabled: boolean | core.BooleanOut; prefix?: string | core.StringOut; } export class S3 extends core.Schema { @core.attr(String) public bucket?: string | core.StringOut; @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; @core.attr(String) public prefix?: string | core.StringOut; } export interface WorkerLogDeliveryArgs extends core.SchemaArgs { cloudwatchLogs?: CloudwatchLogs; firehose?: Firehose; s3?: S3; } export class WorkerLogDelivery extends core.Schema { @core.attr(CloudwatchLogs) public cloudwatchLogs?: CloudwatchLogs; @core.attr(Firehose) public firehose?: Firehose; @core.attr(S3) public s3?: S3; } export interface LogDeliveryArgs extends core.SchemaArgs { workerLogDelivery: WorkerLogDelivery; } export class LogDelivery extends core.Schema { @core.attr(WorkerLogDelivery) public workerLogDelivery!: WorkerLogDelivery; } export interface MskconnectConnectorArgs extends core.ResourceArgs { /** * (Required) Information about the capacity allocated to the connector. See below. */ capacity: Capacity; /** * (Required) A map of keys to values that represent the configuration for the connector. */ connectorConfiguration: | core.Map | core.MapOut; /** * (Optional) A summary description of the connector. */ description?: string | core.StringOut; /** * (Required) Specifies which Apache Kafka cluster to connect to. See below. */ kafkaCluster: KafkaCluster; /** * (Required) Details of the client authentication used by the Apache Kafka cluster. See below. */ kafkaClusterClientAuthentication: KafkaClusterClientAuthentication; /** * (Required) Details of encryption in transit to the Apache Kafka cluster. See below. */ kafkaClusterEncryptionInTransit: KafkaClusterEncryptionInTransit; /** * (Required) The version of Kafka Connect. It has to be compatible with both the Apache Kafka cluster' * s version and the plugins. */ kafkaconnectVersion: string | core.StringOut; /** * (Optional) Details about log delivery. See below. */ logDelivery?: LogDelivery; /** * (Required) The name of the connector. */ name: string | core.StringOut; /** * (Required) Specifies which plugins to use for the connector. See below. */ plugin: core.Array | core.ArrayOut; /** * (Required) The Amazon Resource Name (ARN) of the IAM role used by the connector to access the Amazon * Web Services resources that it needs. The types of resources depends on the logic of the connector. * For example, a connector that has Amazon S3 as a destination must have permissions that allow it to * write to the S3 destination bucket. */ serviceExecutionRoleArn: string | core.StringOut; /** * (Optional) Specifies which worker configuration to use with the connector. See below. */ workerConfiguration?: WorkerConfiguration; } export class MskconnectConnector extends core.Resource { /** * (Required) The Amazon Resource Name (ARN) of the custom plugin. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) Information about the capacity allocated to the connector. See below. */ @core.attr(Capacity) public capacity!: Capacity; /** * (Required) A map of keys to values that represent the configuration for the connector. */ @core.attr(String, { kind: "map" }) public connectorConfiguration!: | core.Map | core.MapOut; /** * (Optional) A summary description of the connector. */ @core.attr(String) public description?: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Specifies which Apache Kafka cluster to connect to. See below. */ @core.attr(KafkaCluster) public kafkaCluster!: KafkaCluster; /** * (Required) Details of the client authentication used by the Apache Kafka cluster. See below. */ @core.attr(KafkaClusterClientAuthentication) public kafkaClusterClientAuthentication!: KafkaClusterClientAuthentication; /** * (Required) Details of encryption in transit to the Apache Kafka cluster. See below. */ @core.attr(KafkaClusterEncryptionInTransit) public kafkaClusterEncryptionInTransit!: KafkaClusterEncryptionInTransit; /** * (Required) The version of Kafka Connect. It has to be compatible with both the Apache Kafka cluster' * s version and the plugins. */ @core.attr(String) public kafkaconnectVersion!: string | core.StringOut; /** * (Optional) Details about log delivery. See below. */ @core.attr(LogDelivery) public logDelivery?: LogDelivery; /** * (Required) The name of the connector. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) Specifies which plugins to use for the connector. See below. */ @core.attr(Plugin, { kind: "array" }) public plugin!: core.Array | core.ArrayOut; /** * (Required) The Amazon Resource Name (ARN) of the IAM role used by the connector to access the Amazon * Web Services resources that it needs. The types of resources depends on the logic of the connector. * For example, a connector that has Amazon S3 as a destination must have permissions that allow it to * write to the S3 destination bucket. */ @core.attr(String) public serviceExecutionRoleArn!: string | core.StringOut; /** * The current version of the connector. */ @core.attr(String, { computed: true }) public version!: string | core.StringOut; /** * (Optional) Specifies which worker configuration to use with the connector. See below. */ @core.attr(WorkerConfiguration) public workerConfiguration?: WorkerConfiguration; constructor(name: string, args?: MskconnectConnectorArgs) { super(name, "aws_mskconnect_connector", args); } public override getNamespace(): string { return "aws_managed_streaming_for_kafka_connect"; } }