{
 "Description": "(SO8025-alarm) - Centralized Logging with OpenSearch alarm-for-opensearch-stack Template. Template version v2.4.10",
 "Metadata": {
  "AWS::CloudFormation::Interface": {
   "ParameterGroups": [
    {
     "Label": {
      "default": "OpenSearch Information"
     },
     "Parameters": [
      "endpoint",
      "domainName"
     ]
    },
    {
     "Label": {
      "default": "SNS Information"
     },
     "Parameters": [
      "email"
     ]
    },
    {
     "Label": {
      "default": "Alarm Options"
     },
     "Parameters": [
      "clusterStatusRed",
      "clusterStatusYellow",
      "freeStorageSpace",
      "clusterIndexWritesBlocked",
      "unreachableNodeNumber",
      "automatedSnapshotFailure",
      "cpuUtilization",
      "jvmMemoryPressure",
      "masterCPUUtilization",
      "masterJVMMemoryPressure",
      "kmsKeyError",
      "kmsKeyInaccessible"
     ]
    }
   ],
   "ParameterLabels": {
    "endpoint": {
     "default": "Endpoint"
    },
    "domainName": {
     "default": "DomainName"
    },
    "clusterStatusRed": {
     "default": "ClusterStatusRed"
    },
    "clusterStatusYellow": {
     "default": "ClusterStatusYellow"
    },
    "freeStorageSpace": {
     "default": "FreeStorageSpace"
    },
    "clusterIndexWritesBlocked": {
     "default": "ClusterIndexWritesBlocked"
    },
    "unreachableNodeNumber": {
     "default": "UnreachableNodeNumber"
    },
    "automatedSnapshotFailure": {
     "default": "AutomatedSnapshotFailure"
    },
    "cpuUtilization": {
     "default": "CPUUtilization"
    },
    "jvmMemoryPressure": {
     "default": "JVMMemoryPressure"
    },
    "masterCPUUtilization": {
     "default": "MasterCPUUtilization"
    },
    "masterJVMMemoryPressure": {
     "default": "MasterJVMMemoryPressure"
    },
    "kmsKeyError": {
     "default": "KMSKeyError"
    },
    "kmsKeyInaccessible": {
     "default": "KMSKeyInaccessible"
    },
    "email": {
     "default": "Email"
    }
   }
  }
 },
 "Parameters": {
  "endpoint": {
   "Type": "String",
   "Default": "",
   "Description": "The endpoint of the OpenSearch domain. e.g. vpc-your_opensearch_domain_name-xcvgw6uu2o6zafsiefxubwuohe.us-east-1.es.amazonaws.com"
  },
  "domainName": {
   "Type": "String",
   "Default": "",
   "Description": "The name of the OpenSearch domain"
  },
  "clusterStatusRed": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when at least one primary shard and its replicas are not allocated to a node"
  },
  "clusterStatusYellow": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when at least one replica shard is not allocated to a node"
  },
  "freeStorageSpace": {
   "Type": "Number",
   "Default": 10,
   "Description": "Whether to enable alarm when a node in your cluster is down to the free storage space you typed in GiB, we recommend setting it to 25% of the storage space for each node. 0 means the alarm is disabled"
  },
  "clusterIndexWritesBlocked": {
   "Type": "Number",
   "Default": 1,
   "Description": "Index writes blocked error occurs for >= x times in 5 minutes, 1 consecutive time. Input `0` to disable this alarm.   "
  },
  "unreachableNodeNumber": {
   "Type": "Number",
   "Default": 3,
   "Description": "Nodes minimum is < x for 1 day, 1 consecutive time. 0 means the alarm is disabled"
  },
  "automatedSnapshotFailure": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when automated snapshot failed. AutomatedSnapshotFailure maximum is >= 1 for 1 minute, 1 consecutive time"
  },
  "cpuUtilization": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when sustained high usage of CPU occurred. CPUUtilization or WarmCPUUtilization maximum is >= 80% for 15 minutes, 3 consecutive times"
  },
  "jvmMemoryPressure": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when JVM RAM usage peak occurred. JVMMemoryPressure or WarmJVMMemoryPressure maximum is >= 80% for 5 minutes, 3 consecutive times"
  },
  "masterCPUUtilization": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when sustained high usage of CPU occurred in master nodes. MasterCPUUtilization maximum is >= 50% for 15 minutes, 3 consecutive times"
  },
  "masterJVMMemoryPressure": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when JVM RAM usage peak occurred in master nodes. MasterJVMMemoryPressure maximum is >= 80% for 15 minutes, 1 consecutive time"
  },
  "kmsKeyError": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when KMS encryption key is disabled. KMSKeyError is >= 1 for 1 minute, 1 consecutive time"
  },
  "kmsKeyInaccessible": {
   "Type": "String",
   "Default": "Yes",
   "AllowedValues": [
    "Yes",
    "No"
   ],
   "Description": "Whether to enable alarm when KMS encryption key has been deleted or has revoked its grants to OpenSearch Service. KMSKeyInaccessible is >= 1 for 1 minute, 1 consecutive time"
  },
  "email": {
   "Type": "String",
   "Default": "",
   "Description": "The notification email address. Alarms will be sent to this email address via SNS"
  }
 },
 "Resources": {
  "KmsMasterKeyFF9A2F80": {
   "Type": "AWS::KMS::Key",
   "Properties": {
    "EnableKeyRotation": true,
    "KeyPolicy": {
     "Statement": [
      {
       "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt",
        "kms:Encrypt"
       ],
       "Effect": "Allow",
       "Principal": {
        "Service": [
         "sns.amazonaws.com",
         "cloudwatch.amazonaws.com",
         "events.amazonaws.com"
        ]
       },
       "Resource": "*",
       "Sid": "0"
      },
      {
       "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion",
        "kms:GenerateDataKey",
        "kms:TagResource",
        "kms:UntagResource"
       ],
       "Effect": "Allow",
       "Principal": {
        "AWS": {
         "Fn::Join": [
          "",
          [
           "arn:",
           {
            "Ref": "AWS::Partition"
           },
           ":iam::",
           {
            "Ref": "AWS::AccountId"
           },
           ":root"
          ]
         ]
        }
       },
       "Resource": "*",
       "Sid": "1"
      },
      {
       "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
       ],
       "Effect": "Allow",
       "Principal": {
        "Service": "events.amazonaws.com"
       },
       "Resource": "*",
       "Sid": "2"
      }
     ],
     "Version": "2012-10-17"
    }
   },
   "UpdateReplacePolicy": "Retain",
   "DeletionPolicy": "Retain",
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/KmsMasterKey/Resource"
   }
  },
  "AlarmTopicD01E77F9": {
   "Type": "AWS::SNS::Topic",
   "Properties": {
    "DisplayName": "AWS cloudwatch alarm topic",
    "FifoTopic": false,
    "KmsMasterKeyId": {
     "Fn::GetAtt": [
      "KmsMasterKeyFF9A2F80",
      "Arn"
     ]
    }
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/AlarmTopic/Resource"
   }
  },
  "AlarmTopicPolicy309DB5F8": {
   "Type": "AWS::SNS::TopicPolicy",
   "Properties": {
    "PolicyDocument": {
     "Statement": [
      {
       "Action": "sns:Publish",
       "Effect": "Allow",
       "Principal": {
        "Service": "events.amazonaws.com"
       },
       "Resource": {
        "Ref": "AlarmTopicD01E77F9"
       },
       "Sid": "0"
      }
     ],
     "Version": "2012-10-17"
    },
    "Topics": [
     {
      "Ref": "AlarmTopicD01E77F9"
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/AlarmTopic/Policy/Resource"
   }
  },
  "EmailSubscriptionBC065AF0": {
   "Type": "AWS::SNS::Subscription",
   "Properties": {
    "Endpoint": {
     "Ref": "email"
    },
    "Protocol": "email",
    "Region": {
     "Ref": "AWS::Region"
    },
    "TopicArn": {
     "Ref": "AlarmTopicD01E77F9"
    }
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/EmailSubscription/Resource"
   }
  },
  "ClusterStatusred5C52F327": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "ClusterStatus.red",
    "Namespace": "AWS/ES",
    "Period": 60,
    "Statistic": "Average",
    "Threshold": 1
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/ClusterStatus.red/Resource"
   },
   "Condition": "clusterStatusRedNotEnabled"
  },
  "ClusterStatusredAlarmRuleA029E024": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "ClusterStatus.red Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "ClusterStatusred5C52F327",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"ClusterStatus.red alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/ClusterStatus.redAlarmRule/Resource"
   },
   "Condition": "clusterStatusRedNotEnabled"
  },
  "ClusterStatusyellowB9AB0C68": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "ClusterStatus.yellow",
    "Namespace": "AWS/ES",
    "Period": 60,
    "Statistic": "Average",
    "Threshold": 1
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/ClusterStatus.yellow/Resource"
   },
   "Condition": "clusterStatusYellowNotEnabled"
  },
  "ClusterStatusyellowAlarmRuleD18AFEFC": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "ClusterStatus.yellow Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "ClusterStatusyellowB9AB0C68",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"ClusterStatus.yellow alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/ClusterStatus.yellowAlarmRule/Resource"
   },
   "Condition": "clusterStatusYellowNotEnabled"
  },
  "FreeStorageSpace8BDC3B97": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "LessThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "FreeStorageSpace",
    "Namespace": "AWS/ES",
    "Period": 60,
    "Statistic": "Minimum",
    "Threshold": {
     "Ref": "freeStorageSpace"
    }
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/FreeStorageSpace/Resource"
   },
   "Condition": "freeStorageSpaceNotEnabled"
  },
  "FreeStorageSpaceAlarmRule07943CE2": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "FreeStorageSpace Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "FreeStorageSpace8BDC3B97",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"FreeStorageSpace alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/FreeStorageSpaceAlarmRule/Resource"
   },
   "Condition": "freeStorageSpaceNotEnabled"
  },
  "ClusterIndexWritesBlocked92EB4035": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "ClusterIndexWritesBlocked",
    "Namespace": "AWS/ES",
    "Period": 300,
    "Statistic": "Average",
    "Threshold": {
     "Ref": "clusterIndexWritesBlocked"
    }
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/ClusterIndexWritesBlocked/Resource"
   },
   "Condition": "clusterIndexWritesBlockedNotEnabled"
  },
  "ClusterIndexWritesBlockedAlarmRuleCDC07F6D": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "ClusterIndexWritesBlocked Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "ClusterIndexWritesBlocked92EB4035",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"ClusterIndexWritesBlocked alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/ClusterIndexWritesBlockedAlarmRule/Resource"
   },
   "Condition": "clusterIndexWritesBlockedNotEnabled"
  },
  "Nodes66C30434": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "LessThanThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "Nodes",
    "Namespace": "AWS/ES",
    "Period": 86400,
    "Statistic": "Minimum",
    "Threshold": {
     "Ref": "unreachableNodeNumber"
    }
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/Nodes/Resource"
   },
   "Condition": "nodesNotEnabled"
  },
  "NodesAlarmRuleA56CE426": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "Nodes Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "Nodes66C30434",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"Nodes alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/NodesAlarmRule/Resource"
   },
   "Condition": "nodesNotEnabled"
  },
  "AutomatedSnapshotFailure762DE198": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "AutomatedSnapshotFailure",
    "Namespace": "AWS/ES",
    "Period": 60,
    "Statistic": "Maximum",
    "Threshold": 1
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/AutomatedSnapshotFailure/Resource"
   },
   "Condition": "automatedSnapshotFailureNotEnabled"
  },
  "AutomatedSnapshotFailureAlarmRuleEFF634FB": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "AutomatedSnapshotFailure Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "AutomatedSnapshotFailure762DE198",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"AutomatedSnapshotFailure alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/AutomatedSnapshotFailureAlarmRule/Resource"
   },
   "Condition": "automatedSnapshotFailureNotEnabled"
  },
  "CPUUtilizationD337B8E3": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 3,
    "MetricName": "CPUUtilization",
    "Namespace": "AWS/ES",
    "Period": 300,
    "Statistic": "Average",
    "Threshold": 80
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/CPUUtilization/Resource"
   },
   "Condition": "cpuUtilizationNotEnabled"
  },
  "CPUUtilizationAlarmRuleB01EF961": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "CPUUtilization Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "CPUUtilizationD337B8E3",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"CPUUtilization alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/CPUUtilizationAlarmRule/Resource"
   },
   "Condition": "cpuUtilizationNotEnabled"
  },
  "WarmCPUUtilizationD2B97159": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 3,
    "MetricName": "WarmCPUUtilization",
    "Namespace": "AWS/ES",
    "Period": 900,
    "Statistic": "Average",
    "Threshold": 80
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/WarmCPUUtilization/Resource"
   },
   "Condition": "cpuUtilizationNotEnabled"
  },
  "WarmCPUUtilizationAlarmRuleEE28B8B2": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "WarmCPUUtilization Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "WarmCPUUtilizationD2B97159",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"WarmCPUUtilization alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/WarmCPUUtilizationAlarmRule/Resource"
   },
   "Condition": "cpuUtilizationNotEnabled"
  },
  "JVMMemoryPressure12892039": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 3,
    "MetricName": "JVMMemoryPressure",
    "Namespace": "AWS/ES",
    "Period": 300,
    "Statistic": "Average",
    "Threshold": 80
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/JVMMemoryPressure/Resource"
   },
   "Condition": "jvmMemoryPressureNotEnabled"
  },
  "JVMMemoryPressureAlarmRuleBC8ABA64": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "JVMMemoryPressure Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "JVMMemoryPressure12892039",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"JVMMemoryPressure alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/JVMMemoryPressureAlarmRule/Resource"
   },
   "Condition": "jvmMemoryPressureNotEnabled"
  },
  "WarmJVMMemoryPressure6BCE7919": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 3,
    "MetricName": "WarmJVMMemoryPressure",
    "Namespace": "AWS/ES",
    "Period": 300,
    "Statistic": "Average",
    "Threshold": 80
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/WarmJVMMemoryPressure/Resource"
   },
   "Condition": "jvmMemoryPressureNotEnabled"
  },
  "WarmJVMMemoryPressureAlarmRuleAF1F2B71": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "WarmJVMMemoryPressure Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "WarmJVMMemoryPressure6BCE7919",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"WarmJVMMemoryPressure alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/WarmJVMMemoryPressureAlarmRule/Resource"
   },
   "Condition": "jvmMemoryPressureNotEnabled"
  },
  "MasterCPUUtilization9CE5549E": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 3,
    "MetricName": "MasterCPUUtilization",
    "Namespace": "AWS/ES",
    "Period": 900,
    "Statistic": "Average",
    "Threshold": 50
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/MasterCPUUtilization/Resource"
   },
   "Condition": "masterCPUUtilizationNotEnabled"
  },
  "MasterCPUUtilizationAlarmRule9B28CDB7": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "MasterCPUUtilization Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "MasterCPUUtilization9CE5549E",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"MasterCPUUtilization alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/MasterCPUUtilizationAlarmRule/Resource"
   },
   "Condition": "masterCPUUtilizationNotEnabled"
  },
  "MasterJVMMemoryPressure385C239C": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "MasterJVMMemoryPressure",
    "Namespace": "AWS/ES",
    "Period": 900,
    "Statistic": "Average",
    "Threshold": 80
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/MasterJVMMemoryPressure/Resource"
   },
   "Condition": "masterJVMMemoryPressureNotEnabled"
  },
  "MasterJVMMemoryPressureAlarmRuleED3F4E89": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "MasterJVMMemoryPressure Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "MasterJVMMemoryPressure385C239C",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"MasterJVMMemoryPressure alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/MasterJVMMemoryPressureAlarmRule/Resource"
   },
   "Condition": "masterJVMMemoryPressureNotEnabled"
  },
  "KMSKeyError4C7F24C1": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "KMSKeyError",
    "Namespace": "AWS/ES",
    "Period": 60,
    "Statistic": "Average",
    "Threshold": 1
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/KMSKeyError/Resource"
   },
   "Condition": "kmsKeyErrorNotEnabled"
  },
  "KMSKeyErrorAlarmRule97A81349": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "KMSKeyError Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "KMSKeyError4C7F24C1",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"KMSKeyError alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/KMSKeyErrorAlarmRule/Resource"
   },
   "Condition": "kmsKeyErrorNotEnabled"
  },
  "KMSKeyInaccessibleB4F6641D": {
   "Type": "AWS::CloudWatch::Alarm",
   "Properties": {
    "ComparisonOperator": "GreaterThanOrEqualToThreshold",
    "Dimensions": [
     {
      "Name": "ClientId",
      "Value": {
       "Ref": "AWS::AccountId"
      }
     },
     {
      "Name": "DomainName",
      "Value": {
       "Ref": "domainName"
      }
     }
    ],
    "EvaluationPeriods": 1,
    "MetricName": "KMSKeyInaccessible",
    "Namespace": "AWS/ES",
    "Period": 60,
    "Statistic": "Average",
    "Threshold": 1
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/KMSKeyInaccessible/Resource"
   },
   "Condition": "kmsKeyInaccessibleNotEnabled"
  },
  "KMSKeyInaccessibleAlarmRule923E815C": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "KMSKeyInaccessible Alarm Rule",
    "EventPattern": {
     "source": [
      "aws.cloudwatch"
     ],
     "detail-type": [
      "CloudWatch Alarm State Change"
     ],
     "detail": {
      "state": {
       "value": [
        "ALARM",
        "OK"
       ]
      }
     },
     "resources": [
      {
       "Fn::GetAtt": [
        "KMSKeyInaccessibleB4F6641D",
        "Arn"
       ]
      }
     ]
    },
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Ref": "AlarmTopicD01E77F9"
      },
      "Id": "Target0",
      "InputTransformer": {
       "InputPathsMap": {
        "region": "$.region",
        "detail-alarmName": "$.detail.alarmName",
        "detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName": "$.detail.configuration.metrics[0].metricStat.metric.dimensions.DomainName",
        "detail-previousState-value": "$.detail.previousState.value",
        "detail-state-value": "$.detail.state.value",
        "detail-state-reason": "$.detail.state.reason"
       },
       "InputTemplate": "{\"region\":<region>,\"alarmName\":<detail-alarmName>,\"domainName\":<detail-configuration-metrics-0--metricStat-metric-dimensions-DomainName>,\"description\":\"KMSKeyInaccessible alarm status changed from <detail-previousState-value> to <detail-state-value>\",\"reason\":<detail-state-reason>}"
      }
     }
    ]
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/KMSKeyInaccessibleAlarmRule/Resource"
   },
   "Condition": "kmsKeyInaccessibleNotEnabled"
  },
  "CDKMetadata": {
   "Type": "AWS::CDK::Metadata",
   "Properties": {
    "Analytics": "v2:deflate64:H4sIAAAAAAAA/02MwQrCMBBEv8V7upaAHyA9epHWu6TpimvTpGSTlhLy7xIr4mVn5u0wEuSphvqgVq70MFaGekhdUHoUzcNelVcTBvSiRXbRaxRq5XsaJ4Z0wa10LrhlwZYh3dxMuqDdfO7VGdLbD35jF3vWnuZAzpbff85CGxeHVQX9hHQ2yk+l8jFZ4II2MKQ2Giy4aM7FNc4OtA9YNyC8+LhICVJCfXgxUeWjDTQhtLu+AR3SOw/6AAAA"
   },
   "Metadata": {
    "aws:cdk:path": "AlarmForOpenSearch/CDKMetadata/Default"
   },
   "Condition": "CDKMetadataAvailable"
  }
 },
 "Conditions": {
  "clusterStatusRedNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "clusterStatusRed"
      }
     ]
    }
   ]
  },
  "clusterStatusYellowNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "clusterStatusYellow"
      }
     ]
    }
   ]
  },
  "freeStorageSpaceNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      0,
      {
       "Ref": "freeStorageSpace"
      }
     ]
    }
   ]
  },
  "clusterIndexWritesBlockedNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      0,
      {
       "Ref": "clusterIndexWritesBlocked"
      }
     ]
    }
   ]
  },
  "nodesNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      0,
      {
       "Ref": "unreachableNodeNumber"
      }
     ]
    }
   ]
  },
  "automatedSnapshotFailureNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "automatedSnapshotFailure"
      }
     ]
    }
   ]
  },
  "cpuUtilizationNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "cpuUtilization"
      }
     ]
    }
   ]
  },
  "jvmMemoryPressureNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "jvmMemoryPressure"
      }
     ]
    }
   ]
  },
  "masterCPUUtilizationNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "masterCPUUtilization"
      }
     ]
    }
   ]
  },
  "masterJVMMemoryPressureNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "kmsKeyError"
      }
     ]
    }
   ]
  },
  "kmsKeyErrorNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "kmsKeyError"
      }
     ]
    }
   ]
  },
  "kmsKeyInaccessibleNotEnabled": {
   "Fn::Not": [
    {
     "Fn::Equals": [
      "No",
      {
       "Ref": "kmsKeyInaccessible"
      }
     ]
    }
   ]
  },
  "CDKMetadataAvailable": {
   "Fn::Or": [
    {
     "Fn::Or": [
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "af-south-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-east-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-northeast-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-northeast-2"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-northeast-3"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-south-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-south-2"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-southeast-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-southeast-2"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-southeast-3"
       ]
      }
     ]
    },
    {
     "Fn::Or": [
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-southeast-4"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ca-central-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ca-west-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "cn-north-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "cn-northwest-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-central-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-central-2"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-north-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-south-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-south-2"
       ]
      }
     ]
    },
    {
     "Fn::Or": [
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-west-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-west-2"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-west-3"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "il-central-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "me-central-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "me-south-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "sa-east-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "us-east-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "us-east-2"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "us-west-1"
       ]
      }
     ]
    },
    {
     "Fn::Equals": [
      {
       "Ref": "AWS::Region"
      },
      "us-west-2"
     ]
    }
   ]
  }
 },
 "Rules": {}
}