import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class SubComponentConfigurationDetails { AlarmMetrics ? : List < AlarmMetric > ; Logs ? : List < Log > ; WindowsEvents ? : List < WindowsEvent > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ComponentMonitoringSetting { ComponentName ? : Value < string > ; ComponentARN ? : Value < string > ; Tier ! : Value < string > ; ComponentConfigurationMode ! : Value < string > ; DefaultOverwriteComponentConfiguration ? : ComponentConfiguration ; CustomComponentConfiguration ? : ComponentConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LogPattern { PatternName ! : Value < string > ; Pattern ! : Value < string > ; Rank ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LogPatternSet { PatternSetName ! : Value < string > ; LogPatterns ! : List < LogPattern > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Alarm { AlarmName ! : Value < string > ; Severity ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class WindowsEvent { LogGroupName ! : Value < string > ; EventName ! : Value < string > ; EventLevels ! : List < Value < string > > ; PatternSet ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ComponentConfiguration { ConfigurationDetails ? : ConfigurationDetails ; SubComponentTypeConfigurations ? : List < SubComponentTypeConfiguration > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CustomComponent { ComponentName ! : Value < string > ; ResourceList ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class JMXPrometheusExporter { JMXURL ? : Value < string > ; HostPort ? : Value < string > ; PrometheusPort ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AlarmMetric { AlarmMetricName ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ConfigurationDetails { AlarmMetrics ? : List < AlarmMetric > ; Logs ? : List < Log > ; WindowsEvents ? : List < WindowsEvent > ; Alarms ? : List < Alarm > ; JMXPrometheusExporter ? : JMXPrometheusExporter ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Log { LogGroupName ? : Value < string > ; LogPath ? : Value < string > ; LogType ! : Value < string > ; Encoding ? : Value < string > ; PatternSet ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SubComponentTypeConfiguration { SubComponentType ! : Value < string > ; SubComponentConfigurationDetails ! : SubComponentConfigurationDetails ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ApplicationProperties { ResourceGroupName : Value < string > ; CWEMonitorEnabled ? : Value < boolean > ; OpsCenterEnabled ? : Value < boolean > ; OpsItemSNSTopicArn ? : Value < string > ; Tags ? : List < ResourceTag > ; CustomComponents ? : List < CustomComponent > ; LogPatternSets ? : List < LogPatternSet > ; AutoConfigurationEnabled ? : Value < boolean > ; ComponentMonitoringSettings ? : List < ComponentMonitoringSetting > ; } export default class Application extends ResourceBase < ApplicationProperties > { static SubComponentConfigurationDetails = SubComponentConfigurationDetails ; static ComponentMonitoringSetting = ComponentMonitoringSetting ; static LogPattern = LogPattern ; static LogPatternSet = LogPatternSet ; static Alarm = Alarm ; static WindowsEvent = WindowsEvent ; static ComponentConfiguration = ComponentConfiguration ; static CustomComponent = CustomComponent ; static JMXPrometheusExporter = JMXPrometheusExporter ; static AlarmMetric = AlarmMetric ; static ConfigurationDetails = ConfigurationDetails ; static Log = Log ; static SubComponentTypeConfiguration = SubComponentTypeConfiguration ; constructor ( properties ) { super ( 'AWS::ApplicationInsights::Application' , properties ) ; } }