import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class FileFormatDescriptor { CsvFormatDescriptor ? : CsvFormatDescriptor ; JsonFormatDescriptor ? : JsonFormatDescriptor ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CsvFormatDescriptor { FileCompression ? : Value < string > ; Charset ? : Value < string > ; Delimiter ? : Value < string > ; HeaderList ? : List < Value < string > > ; QuoteSymbol ? : Value < string > ; ContainsHeader ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class VpcConfiguration { SubnetIdList ! : List < Value < string > > ; SecurityGroupIdList ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RDSSourceConfig { DBInstanceIdentifier ! : Value < string > ; DatabaseHost ! : Value < string > ; DatabasePort ! : Value < number > ; SecretManagerArn ! : Value < string > ; DatabaseName ! : Value < string > ; TableName ! : Value < string > ; RoleArn ! : Value < string > ; VpcConfiguration ! : VpcConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TimestampColumn { ColumnName ? : Value < string > ; ColumnFormat ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class JsonFormatDescriptor { FileCompression ? : Value < string > ; Charset ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AppFlowConfig { RoleArn ! : Value < string > ; FlowName ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MetricSource { S3SourceConfig ? : S3SourceConfig ; RDSSourceConfig ? : RDSSourceConfig ; RedshiftSourceConfig ? : RedshiftSourceConfig ; CloudwatchConfig ? : CloudwatchConfig ; AppFlowConfig ? : AppFlowConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RedshiftSourceConfig { ClusterIdentifier ! : Value < string > ; DatabaseHost ! : Value < string > ; DatabasePort ! : Value < number > ; SecretManagerArn ! : Value < string > ; DatabaseName ! : Value < string > ; TableName ! : Value < string > ; RoleArn ! : Value < string > ; VpcConfiguration ! : VpcConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Metric { MetricName ! : Value < string > ; AggregationFunction ! : Value < string > ; Namespace ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MetricSet { MetricSetName ! : Value < string > ; MetricSetDescription ? : Value < string > ; MetricSource ! : MetricSource ; MetricList ! : List < Metric > ; Offset ? : Value < number > ; TimestampColumn ? : TimestampColumn ; DimensionList ? : List < Value < string > > ; MetricSetFrequency ? : Value < string > ; Timezone ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CloudwatchConfig { RoleArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class S3SourceConfig { RoleArn ! : Value < string > ; TemplatedPathList ? : List < Value < string > > ; HistoricalDataPathList ? : List < Value < string > > ; FileFormatDescriptor ! : FileFormatDescriptor ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface AnomalyDetectorProperties { AnomalyDetectorName ? : Value < string > ; AnomalyDetectorDescription ? : Value < string > ; AnomalyDetectorConfig : { [ key ] : any ; } ; MetricSetList : List < MetricSet > ; KmsKeyArn ? : Value < string > ; } export default class AnomalyDetector extends ResourceBase < AnomalyDetectorProperties > { static FileFormatDescriptor = FileFormatDescriptor ; static CsvFormatDescriptor = CsvFormatDescriptor ; static VpcConfiguration = VpcConfiguration ; static RDSSourceConfig = RDSSourceConfig ; static TimestampColumn = TimestampColumn ; static JsonFormatDescriptor = JsonFormatDescriptor ; static AppFlowConfig = AppFlowConfig ; static MetricSource = MetricSource ; static RedshiftSourceConfig = RedshiftSourceConfig ; static Metric = Metric ; static MetricSet = MetricSet ; static CloudwatchConfig = CloudwatchConfig ; static S3SourceConfig = S3SourceConfig ; constructor ( properties ) { super ( 'AWS::LookoutMetrics::AnomalyDetector' , properties ) ; } }