import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class MetricToRetain { Metric ! : Value < string > ; MetricDimension ? : MetricDimension ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MachineLearningDetectionConfig { ConfidenceLevel ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MetricDimension { DimensionName ! : Value < string > ; Operator ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MetricValue { Count ? : Value < string > ; Cidrs ? : List < Value < string > > ; Ports ? : List < Value < number > > ; Number ? : Value < number > ; Numbers ? : List < Value < number > > ; Strings ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AlertTarget { AlertTargetArn ! : Value < string > ; RoleArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Behavior { Name ! : Value < string > ; Metric ? : Value < string > ; MetricDimension ? : MetricDimension ; Criteria ? : BehaviorCriteria ; SuppressAlerts ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BehaviorCriteria { ComparisonOperator ? : Value < string > ; Value ? : MetricValue ; DurationSeconds ? : Value < number > ; ConsecutiveDatapointsToAlarm ? : Value < number > ; ConsecutiveDatapointsToClear ? : Value < number > ; StatisticalThreshold ? : StatisticalThreshold ; MlDetectionConfig ? : MachineLearningDetectionConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StatisticalThreshold { Statistic ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface SecurityProfileProperties { SecurityProfileName ? : Value < string > ; SecurityProfileDescription ? : Value < string > ; Behaviors ? : List < Behavior > ; AlertTargets ? : { [ key ] : AlertTarget ; } ; AdditionalMetricsToRetainV2 ? : List < MetricToRetain > ; Tags ? : List < ResourceTag > ; TargetArns ? : List < Value < string > > ; } export default class SecurityProfile extends ResourceBase < SecurityProfileProperties > { static MetricToRetain = MetricToRetain ; static MachineLearningDetectionConfig = MachineLearningDetectionConfig ; static MetricDimension = MetricDimension ; static MetricValue = MetricValue ; static AlertTarget = AlertTarget ; static Behavior = Behavior ; static BehaviorCriteria = BehaviorCriteria ; static StatisticalThreshold = StatisticalThreshold ; constructor ( properties ? ) { super ( 'AWS::IoT::SecurityProfile' , properties || { } ) ; } }