{
 "Description": "Integration test stack for FSx lifecycle status monitor",
 "Resources": {
  "monitorfsxhealthsnstopic74C15B1B": {
   "Type": "AWS::SNS::Topic",
   "Properties": {
    "DisplayName": "fsx-lifecycle-monitor",
    "KmsMasterKeyId": {
     "Fn::Join": [
      "",
      [
       "arn:",
       {
        "Ref": "AWS::Partition"
       },
       ":kms:",
       {
        "Ref": "AWS::Region"
       },
       ":",
       {
        "Ref": "AWS::AccountId"
       },
       ":alias/aws/sns"
      ]
     ]
    },
    "TopicName": "fsx-lifecycle-monitor"
   }
  },
  "monitorpolicy80A558D1": {
   "Type": "AWS::IAM::Policy",
   "Properties": {
    "PolicyDocument": {
     "Statement": [
      {
       "Action": [
        "fsx:DescribeFileSystems",
        "sns:Publish"
       ],
       "Effect": "Allow",
       "Resource": "*"
      },
      {
       "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
       ],
       "Effect": "Allow",
       "Resource": {
        "Fn::GetAtt": [
         "monitorfsxhealthloggroup9F4B8215",
         "Arn"
        ]
       }
      }
     ],
     "Version": "2012-10-17"
    },
    "PolicyName": "fsx-lambda-sns",
    "Roles": [
     {
      "Ref": "monitorfsxlifecyclemonitorServiceRole29219093"
     }
    ]
   }
  },
  "monitorfsxlifecyclemonitorServiceRole29219093": {
   "Type": "AWS::IAM::Role",
   "Properties": {
    "AssumeRolePolicyDocument": {
     "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
        "Service": "lambda.amazonaws.com"
       }
      }
     ],
     "Version": "2012-10-17"
    },
    "ManagedPolicyArns": [
     {
      "Fn::Join": [
       "",
       [
        "arn:",
        {
         "Ref": "AWS::Partition"
        },
        ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
       ]
      ]
     },
     {
      "Fn::Join": [
       "",
       [
        "arn:",
        {
         "Ref": "AWS::Partition"
        },
        ":iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy"
       ]
      ]
     }
    ]
   }
  },
  "monitorfsxlifecyclemonitor692E6494": {
   "Type": "AWS::Lambda::Function",
   "Properties": {
    "Architectures": [
     "x86_64"
    ],
    "Code": {
     "S3Bucket": {
      "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
     },
     "S3Key": "f98d2a893ca675e9913c5c54241a23418c46c083ddf445621500691e1b3c0790.zip"
    },
    "Environment": {
     "Variables": {
      "LambdaSNSTopic": {
       "Ref": "monitorfsxhealthsnstopic74C15B1B"
      }
     }
    },
    "Handler": "fsx-health.lambda_handler",
    "Layers": [
     {
      "Fn::FindInMap": [
       "CloudwatchlambdainsightsversionMap",
       {
        "Ref": "AWS::Region"
       },
       "1x0x229x0xx86x64"
      ]
     }
    ],
    "Role": {
     "Fn::GetAtt": [
      "monitorfsxlifecyclemonitorServiceRole29219093",
      "Arn"
     ]
    },
    "Runtime": "python3.10"
   },
   "DependsOn": [
    "monitorfsxlifecyclemonitorServiceRole29219093"
   ]
  },
  "monitorfsxhealthloggroup9F4B8215": {
   "Type": "AWS::Logs::LogGroup",
   "Properties": {
    "LogGroupName": {
     "Ref": "monitorfsxlifecyclemonitor692E6494"
    },
    "RetentionInDays": 365
   },
   "UpdateReplacePolicy": "Retain",
   "DeletionPolicy": "Retain"
  },
  "monitorrule99C4CAB4": {
   "Type": "AWS::Events::Rule",
   "Properties": {
    "Description": "Trigger the FSx health check based on the underlying cron expression",
    "Name": "fsx-health-trigger",
    "ScheduleExpression": "cron(0/10 * * * ? *)",
    "State": "ENABLED",
    "Targets": [
     {
      "Arn": {
       "Fn::GetAtt": [
        "monitorfsxlifecyclemonitor692E6494",
        "Arn"
       ]
      },
      "Id": "Target0"
     }
    ]
   }
  },
  "monitorruleAllowEventRulemonitorstackmonitorfsxlifecyclemonitor85E311F1CC964143": {
   "Type": "AWS::Lambda::Permission",
   "Properties": {
    "Action": "lambda:InvokeFunction",
    "FunctionName": {
     "Fn::GetAtt": [
      "monitorfsxlifecyclemonitor692E6494",
      "Arn"
     ]
    },
    "Principal": "events.amazonaws.com",
    "SourceArn": {
     "Fn::GetAtt": [
      "monitorrule99C4CAB4",
      "Arn"
     ]
    }
   }
  },
  "CDKMetadata": {
   "Type": "AWS::CDK::Metadata",
   "Properties": {
    "Analytics": "v2:deflate64:H4sIAAAAAAAA/02QTU/DMAyGfwt312xwAI5sElxAmgr3KUtN5TWNqzoZQlH+O0kpiNP7vLb8eYMPG9xcmU9tbDc0jk+Y3oKxA7SkEmdLUHLHpF4xvcvEFvYffoEMbEZMB3Fsv2p0pVYcVVs1gzPjqTOYnqK3gcXXzH8+0DyyanEZ9PZoVCkoPlYpHnfRDhR2Rgmc9GWHF+mfZ4lTrf3lDHQhX8pSG9fZRXOGpU05p2ff1/CrmaYV/84rvBffcVhW8NIRnvX6sr3H7V35zFmZmzn6wCNh+6Pf8py3HDUBAAA="
   },
   "Condition": "CDKMetadataAvailable"
  }
 },
 "Mappings": {
  "CloudwatchlambdainsightsversionMap": {
   "af-south-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:28"
   },
   "ap-east-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:28"
   },
   "ap-northeast-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:60"
   },
   "ap-northeast-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:37"
   },
   "ap-northeast-3": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:19"
   },
   "ap-south-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:36"
   },
   "ap-south-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:10"
   },
   "ap-southeast-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:38"
   },
   "ap-southeast-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:38"
   },
   "ap-southeast-3": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:14"
   },
   "ca-central-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:37"
   },
   "cn-north-1": {
    "1x0x229x0xx86x64": "arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:29"
   },
   "cn-northwest-1": {
    "1x0x229x0xx86x64": "arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:29"
   },
   "eu-central-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:38"
   },
   "eu-central-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:11"
   },
   "eu-north-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:35"
   },
   "eu-south-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:28"
   },
   "eu-south-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:12"
   },
   "eu-west-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:38"
   },
   "eu-west-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:38"
   },
   "eu-west-3": {
    "1x0x229x0xx86x64": "arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:37"
   },
   "me-central-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:11"
   },
   "me-south-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:28"
   },
   "sa-east-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:37"
   },
   "us-east-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:38"
   },
   "us-east-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:38"
   },
   "us-west-1": {
    "1x0x229x0xx86x64": "arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:38"
   },
   "us-west-2": {
    "1x0x229x0xx86x64": "arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:38"
   }
  }
 },
 "Conditions": {
  "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-south-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-southeast-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ap-southeast-2"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "ca-central-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "cn-north-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "cn-northwest-1"
       ]
      }
     ]
    },
    {
     "Fn::Or": [
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-central-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-north-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "eu-south-1"
       ]
      },
      {
       "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"
        },
        "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::Or": [
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "us-west-1"
       ]
      },
      {
       "Fn::Equals": [
        {
         "Ref": "AWS::Region"
        },
        "us-west-2"
       ]
      }
     ]
    }
   ]
  }
 },
 "Outputs": {
  "ExportsOutputRefmonitorfsxhealthsnstopic74C15B1B4A2D2981": {
   "Value": {
    "Ref": "monitorfsxhealthsnstopic74C15B1B"
   },
   "Export": {
    "Name": "monitor-stack:ExportsOutputRefmonitorfsxhealthsnstopic74C15B1B4A2D2981"
   }
  },
  "ExportsOutputFnGetAttmonitorrule99C4CAB4ArnB28B8588": {
   "Value": {
    "Fn::GetAtt": [
     "monitorrule99C4CAB4",
     "Arn"
    ]
   },
   "Export": {
    "Name": "monitor-stack:ExportsOutputFnGetAttmonitorrule99C4CAB4ArnB28B8588"
   }
  },
  "ExportsOutputRefmonitorrule99C4CAB40309C047": {
   "Value": {
    "Ref": "monitorrule99C4CAB4"
   },
   "Export": {
    "Name": "monitor-stack:ExportsOutputRefmonitorrule99C4CAB40309C047"
   }
  }
 },
 "Parameters": {
  "BootstrapVersion": {
   "Type": "AWS::SSM::Parameter::Value<String>",
   "Default": "/cdk-bootstrap/hnb659fds/version",
   "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
  }
 },
 "Rules": {
  "CheckBootstrapVersion": {
   "Assertions": [
    {
     "Assert": {
      "Fn::Not": [
       {
        "Fn::Contains": [
         [
          "1",
          "2",
          "3",
          "4",
          "5"
         ],
         {
          "Ref": "BootstrapVersion"
         }
        ]
       }
      ]
     },
     "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
    }
   ]
  }
 }
}