import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class S3 { Bucket ? : Value < string > ; Enabled ! : Value < boolean > ; Prefix ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CloudWatchLogs { LogGroup ? : Value < string > ; Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EncryptionAtRest { DataVolumeKMSKeyId ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BrokerLogs { S3 ? : S3 ; Firehose ? : Firehose ; CloudWatchLogs ? : CloudWatchLogs ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EncryptionInTransit { ClientBroker ? : Value < string > ; InCluster ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Prometheus { JmxExporter ? : JmxExporter ; NodeExporter ? : NodeExporter ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LoggingInfo { BrokerLogs ! : BrokerLogs ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EncryptionInfo { EncryptionAtRest ? : EncryptionAtRest ; EncryptionInTransit ? : EncryptionInTransit ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Iam { Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Sasl { Iam ? : Iam ; Scram ? : Scram ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ConfigurationInfo { Revision ! : Value < number > ; Arn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BrokerNodeGroupInfo { SecurityGroups ? : List < Value < string > > ; ClientSubnets ! : List < Value < string > > ; StorageInfo ? : StorageInfo ; BrokerAZDistribution ? : Value < string > ; InstanceType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Scram { Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class JmxExporter { EnabledInBroker ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StorageInfo { EBSStorageInfo ? : EBSStorageInfo ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NodeExporter { EnabledInBroker ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EBSStorageInfo { VolumeSize ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Firehose { DeliveryStream ? : Value < string > ; Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ClientAuthentication { Sasl ? : Sasl ; Tls ? : Tls ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Tls { CertificateAuthorityArnList ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OpenMonitoring { Prometheus ! : Prometheus ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ClusterProperties { BrokerNodeGroupInfo : BrokerNodeGroupInfo ; EnhancedMonitoring ? : Value < string > ; KafkaVersion : Value < string > ; NumberOfBrokerNodes : Value < number > ; EncryptionInfo ? : EncryptionInfo ; OpenMonitoring ? : OpenMonitoring ; ClusterName : Value < string > ; ClientAuthentication ? : ClientAuthentication ; LoggingInfo ? : LoggingInfo ; Tags ? : { [ key ] : any ; } ; ConfigurationInfo ? : ConfigurationInfo ; } export default class Cluster extends ResourceBase < ClusterProperties > { static S3 = S3 ; static CloudWatchLogs = CloudWatchLogs ; static EncryptionAtRest = EncryptionAtRest ; static BrokerLogs = BrokerLogs ; static EncryptionInTransit = EncryptionInTransit ; static Prometheus = Prometheus ; static LoggingInfo = LoggingInfo ; static EncryptionInfo = EncryptionInfo ; static Iam = Iam ; static Sasl = Sasl ; static ConfigurationInfo = ConfigurationInfo ; static BrokerNodeGroupInfo = BrokerNodeGroupInfo ; static Scram = Scram ; static JmxExporter = JmxExporter ; static StorageInfo = StorageInfo ; static NodeExporter = NodeExporter ; static EBSStorageInfo = EBSStorageInfo ; static Firehose = Firehose ; static ClientAuthentication = ClientAuthentication ; static Tls = Tls ; static OpenMonitoring = OpenMonitoring ; constructor ( properties ) { super ( 'AWS::MSK::Cluster' , properties ) ; } }