{
  "Description": "(SO0241-CMS.25) connected-mobility-solution-on-aws - cms-fleetwise-connector. Version v2.1.5",
  "Mappings": {
    "Solution": {
      "AssetsConfig": {
        "S3AssetBucketBaseName": "solutions",
        "S3AssetKeyPrefix": "connected-mobility-solution-on-aws/v2.1.5/cms-fleetwise-connector"
      }
    }
  },
  "Resources": {
    "appregistryconstructappregistryapplicationAC1A319B": {
      "Type": "AWS::ServiceCatalogAppRegistry::Application",
      "Properties": {
        "Name": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AWS::StackName"
              },
              "-",
              {
                "Ref": "AWS::Region"
              },
              "-",
              {
                "Ref": "AWS::AccountId"
              }
            ]
          ]
        },
        "Tags": {
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/app-registry-construct/app-registry-application"
      }
    },
    "appregistryconstructdefaultapplicationattributes8FF6B3DB": {
      "Type": "AWS::ServiceCatalogAppRegistry::AttributeGroup",
      "Properties": {
        "Attributes": {
          "ApplicationType": "AWS-Solutions",
          "Version": "v2.1.5",
          "SolutionID": "SO0241",
          "SolutionName": "connected-mobility-solution-on-aws"
        },
        "Description": "Attribute group for solution information",
        "Name": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AWS::StackName"
              },
              "-",
              {
                "Ref": "AWS::Region"
              },
              "-",
              {
                "Ref": "AWS::AccountId"
              }
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/app-registry-construct/default-application-attributes"
      }
    },
    "appregistryconstructappregistryapplicationattributeassociation802A10B5": {
      "Type": "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation",
      "Properties": {
        "Application": {
          "Fn::GetAtt": [
            "appregistryconstructappregistryapplicationAC1A319B",
            "Id"
          ]
        },
        "AttributeGroup": {
          "Fn::GetAtt": [
            "appregistryconstructdefaultapplicationattributes8FF6B3DB",
            "Id"
          ]
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/app-registry-construct/app-registry-application-attribute-association"
      }
    },
    "moduleinputsvpcnamecustomresource1E63A8E7": {
      "Type": "Custom::SsmParameters",
      "Properties": {
        "ServiceToken": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/config/aws-resource-lookup-lambda/arn}}"
            ]
          ]
        },
        "Resource": "SsmParameters",
        "ParameterName": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/config/vpc/name"
            ]
          ]
        }
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/module-inputs/vpc-name-custom-resource/Default"
      }
    },
    "ssmappuniqueidregistermodule9C5C2C5D": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "SSM parameter to register a module with an app unique ID.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "}}"
            ]
          ]
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/ssm-app-unique-id-register-module/Resource"
      }
    },
    "cdklambdasvpcconstructsecuritygroupF9971F98": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "cms-fleetwise-connector/cdk-lambdas-vpc-construct/security-group",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "Allow all outbound traffic by default",
            "IpProtocol": "-1"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsvpcnamecustomresource1E63A8E7",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cdk-lambdas-vpc-construct/security-group/Resource"
      }
    },
    "cmsfleetwiseconnectortimestreamtimestreamcmkkey147DF4C0": {
      "Type": "AWS::KMS::Key",
      "Properties": {
        "EnableKeyRotation": true,
        "KeyPolicy": {
          "Statement": [
            {
              "Action": "kms:*",
              "Effect": "Allow",
              "Principal": {
                "AWS": {
                  "Fn::Join": [
                    "",
                    [
                      "arn:",
                      {
                        "Ref": "AWS::Partition"
                      },
                      ":iam::",
                      {
                        "Ref": "AWS::AccountId"
                      },
                      ":root"
                    ]
                  ]
                }
              },
              "Resource": "*"
            }
          ],
          "Version": "2012-10-17"
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/timestream/timestream-cmk-key/Resource"
      }
    },
    "cmsfleetwiseconnectortimestreamtimestreamdatabase51C3291C": {
      "Type": "AWS::Timestream::Database",
      "Properties": {
        "DatabaseName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector"
            ]
          ]
        },
        "KmsKeyId": {
          "Ref": "cmsfleetwiseconnectortimestreamtimestreamcmkkey147DF4C0"
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/timestream/timestream-database"
      }
    },
    "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863": {
      "Type": "AWS::Timestream::Table",
      "Properties": {
        "DatabaseName": {
          "Ref": "cmsfleetwiseconnectortimestreamtimestreamdatabase51C3291C"
        },
        "RetentionProperties": {
          "MemoryStoreRetentionPeriodInHours": "24",
          "MagneticStoreRetentionPeriodInDays": "14"
        },
        "TableName": "fleetwise-cms-store",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/timestream/timestream-table"
      }
    },
    "cmsfleetwiseconnectorfleetwiseconfigfleetwiseexecutionrole37A6A869": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "iotfleetwise.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "timestream:Select",
                    "timestream:WriteRecords"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
                      "Arn"
                    ]
                  }
                },
                {
                  "Action": "timestream:DescribeEndpoints",
                  "Effect": "Allow",
                  "Resource": "*"
                },
                {
                  "Action": [
                    "kms:Decrypt",
                    "kms:Encrypt",
                    "kms:GenerateDataKey"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "cmsfleetwiseconnectortimestreamtimestreamcmkkey147DF4C0",
                      "Arn"
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "timestream-policy"
          }
        ],
        "RoleName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-",
              {
                "Ref": "AWS::Region"
              },
              "-fw-execution-role"
            ]
          ]
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-config/fleetwise-execution-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::*"
              ],
              "reason": "Timestream endpoint must be referenced as *"
            },
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:*:log-stream:*"
              ],
              "reason": "Log stream has to be a wildcard"
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectordependencylayerlambdadependencylayerversion1F9BFED9": {
      "Type": "AWS::Lambda::LayerVersion",
      "Properties": {
        "CompatibleArchitectures": [
          "x86_64",
          "arm64"
        ],
        "CompatibleRuntimes": [
          "python3.12"
        ],
        "Content": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "asset0913e30c375a4c21e598a83b25dd4771ebf7a8d5f8371cab1f9fa5f1afb1117e.zip"
              ]
            ]
          }
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/dependency-layer/lambda-dependency-layer-version/Resource",
        "aws:asset:path": "asset.0913e30c375a4c21e598a83b25dd4771ebf7a8d5f8371cab1f9fa5f1afb1117e",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Content"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3ssmlastunloadendtimeparametername9B99E2EE": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "ISO Timestamp representing the last successful Timestream Unload Query end time",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/step-function/last-successful-execution/unload-end-timestamp"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": "UNSET"
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/ssm-last-unload-end-time-parameter-name/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamtimerangehandlerrole2C70D851": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Path": "/",
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "ssm:GetParameter",
                    "ssm:PutParameter"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ssm:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":parameter/solution/",
                        {
                          "Ref": "AppUniqueId"
                        },
                        "/fleetwise-connector/step-function/last-successful-execution/unload-end-timestamp"
                      ]
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ssm-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "timestream:DescribeEndpoints",
                    "timestream:SelectValues"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "timestream-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-time-handler"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-time-handler:log-stream:*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "lambda-logs-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "ec2:CreateNetworkInterfacePermission",
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/1}}"
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/2}}"
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "lambda.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface",
                    "ec2:DescribeNetworkInterfaces"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-vpc-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/fleetwise-timestream-time-range-handler-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::*",
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:/aws/lambda/<AppUniqueId>-fleetwise-connector-time-handler:log-stream:*",
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:/aws/lambda/<AppUniqueId>-fleetwise-connector-time-handler:log-stream:*",
                "Resource::arn:<AWS::Partition>:ec2:<AWS::Region>:<AWS::AccountId>:network-interface/*"
              ],
              "reason": "Timestream endpoint and cloudwatch log resources must be a wildcard"
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlersecuritygroup85F3FDFA": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/time-range-handler-security-group",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "Allow all outbound traffic by default",
            "IpProtocol": "-1"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsvpcnamecustomresource1E63A8E7",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/time-range-handler-security-group/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlerlambdaBB27E6F8": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Code": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "asset12463b5c24440aaaa9e51f377480ca611febaf404e1fe4a9aa7a44bbe7df695f.zip"
              ]
            ]
          }
        },
        "Description": "CMS FleetWise Connector - Time Range Handler",
        "Environment": {
          "Variables": {
            "REPORT_METRICS_ENABLED": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/metrics/enabled}}"
                ]
              ]
            },
            "METRICS_SOLUTION_URL": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/metrics/url}}"
                ]
              ]
            },
            "DEPLOYMENT_UUID": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            },
            "SOLUTION_ID": "SO0241",
            "SOLUTION_VERSION": "v2.1.5",
            "USER_AGENT_STRING": "AWSSOLUTION/SO0241/v2.1.5 AWSSOLUTION-CAPABILITY/CMS.25/v2.1.5",
            "AWS_ACCOUNT_ID": {
              "Ref": "AWS::AccountId"
            },
            "UNLOAD_END_TIME_PARAMETER_NAME": {
              "Ref": "cmsfleetwiseconnectorfleetwisetimestreamtos3ssmlastunloadendtimeparametername9B99E2EE"
            }
          }
        },
        "FunctionName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-time-handler"
            ]
          ]
        },
        "Handler": "function.main.handler",
        "Layers": [
          {
            "Ref": "cmsfleetwiseconnectordependencylayerlambdadependencylayerversion1F9BFED9"
          }
        ],
        "Role": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamtimerangehandlerrole2C70D851",
            "Arn"
          ]
        },
        "Runtime": "python3.12",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "Timeout": 900,
        "VpcConfig": {
          "SecurityGroupIds": [
            {
              "Fn::GetAtt": [
                "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlersecuritygroup85F3FDFA",
                "GroupId"
              ]
            }
          ],
          "SubnetIds": [
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            },
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/2}}"
                ]
              ]
            }
          ]
        }
      },
      "DependsOn": [
        "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamtimerangehandlerrole2C70D851",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/time-range-handler-lambda/Resource",
        "aws:asset:path": "asset.12463b5c24440aaaa9e51f377480ca611febaf404e1fe4a9aa7a44bbe7df695f.zip",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Code",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-L1",
              "reason": "The non-container Lambda function is not configured to use the latest runtime version."
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlerlambdaLogRetention6E433977": {
      "Type": "Custom::LogRetention",
      "Properties": {
        "ServiceToken": {
          "Fn::GetAtt": [
            "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A",
            "Arn"
          ]
        },
        "LogGroupName": {
          "Fn::Join": [
            "",
            [
              "/aws/lambda/",
              {
                "Ref": "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlerlambdaBB27E6F8"
              }
            ]
          ]
        },
        "RetentionInDays": 90
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/time-range-handler-lambda/LogRetention/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamqueryvinslambdarole06BCD0F6": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Path": "/",
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "timestream:ListMeasures",
                    "timestream:Select"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
                      "Arn"
                    ]
                  }
                },
                {
                  "Action": "timestream:DescribeEndpoints",
                  "Effect": "Allow",
                  "Resource": "*"
                },
                {
                  "Action": [
                    "kms:Decrypt",
                    "kms:DescribeKey",
                    "kms:Encrypt",
                    "kms:GenerateDataKey"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "cmsfleetwiseconnectortimestreamtimestreamcmkkey147DF4C0",
                      "Arn"
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "timestream-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-timestream-vin-query"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-timestream-vin-query:log-stream:*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "lambda-logs-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "ec2:CreateNetworkInterfacePermission",
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/1}}"
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/2}}"
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "lambda.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface",
                    "ec2:DescribeNetworkInterfaces"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-vpc-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/fleetwise-timestream-query-vins-lambda-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::*"
              ],
              "reason": "Timestream endpoint must be referenced as *"
            },
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:*:log-stream:*",
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:/aws/lambda/<AppUniqueId>-fleetwise-connector-timestream-vin-query:log-stream:*"
              ],
              "reason": "Log stream has to be a wildcard"
            },
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:ec2:<AWS::Region>:<AWS::AccountId>:network-interface/*"
              ],
              "reason": "VPC items must be accessed as * resource"
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamqueryvinssecuritygroup88FCAE8F": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-query-vins-security-group",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "Allow all outbound traffic by default",
            "IpProtocol": "-1"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsvpcnamecustomresource1E63A8E7",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-query-vins-security-group/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamqueryvinslambda742EB725": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Code": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "asset3b2932cdce58736d2e1d526bcea611893c1e424aaa894a189c4eca9fa75f95e8.zip"
              ]
            ]
          }
        },
        "Description": "CMS FleetWise Connector - Query Timestream VINs",
        "Environment": {
          "Variables": {
            "REPORT_METRICS_ENABLED": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/metrics/enabled}}"
                ]
              ]
            },
            "METRICS_SOLUTION_URL": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/metrics/url}}"
                ]
              ]
            },
            "DEPLOYMENT_UUID": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            },
            "SOLUTION_ID": "SO0241",
            "SOLUTION_VERSION": "v2.1.5",
            "USER_AGENT_STRING": "AWSSOLUTION/SO0241/v2.1.5 AWSSOLUTION-CAPABILITY/CMS.25/v2.1.5",
            "AWS_ACCOUNT_ID": {
              "Ref": "AWS::AccountId"
            }
          }
        },
        "FunctionName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-timestream-vin-query"
            ]
          ]
        },
        "Handler": "function.main.handler",
        "Role": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamqueryvinslambdarole06BCD0F6",
            "Arn"
          ]
        },
        "Runtime": "python3.12",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "Timeout": 900,
        "VpcConfig": {
          "SecurityGroupIds": [
            {
              "Fn::GetAtt": [
                "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamqueryvinssecuritygroup88FCAE8F",
                "GroupId"
              ]
            }
          ],
          "SubnetIds": [
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            },
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/2}}"
                ]
              ]
            }
          ]
        }
      },
      "DependsOn": [
        "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamqueryvinslambdarole06BCD0F6",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-query-vins-lambda/Resource",
        "aws:asset:path": "asset.3b2932cdce58736d2e1d526bcea611893c1e424aaa894a189c4eca9fa75f95e8.zip",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Code",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-L1",
              "reason": "The non-container Lambda function is not configured to use the latest runtime version."
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamqueryvinslambdaLogRetentionF0DD0CBE": {
      "Type": "Custom::LogRetention",
      "Properties": {
        "ServiceToken": {
          "Fn::GetAtt": [
            "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A",
            "Arn"
          ]
        },
        "LogGroupName": {
          "Fn::Join": [
            "",
            [
              "/aws/lambda/",
              {
                "Ref": "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamqueryvinslambda742EB725"
              }
            ]
          ]
        },
        "RetentionInDays": 90
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-query-vins-lambda/LogRetention/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamunloadlambdaroleF172142A": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Path": "/",
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "timestream:DescribeTable",
                    "timestream:ListMeasures",
                    "timestream:Select",
                    "timestream:Unload"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
                      "Arn"
                    ]
                  }
                },
                {
                  "Action": "timestream:DescribeEndpoints",
                  "Effect": "Allow",
                  "Resource": "*"
                },
                {
                  "Action": [
                    "kms:Decrypt",
                    "kms:DescribeKey",
                    "kms:Encrypt",
                    "kms:GenerateDataKey"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "cmsfleetwiseconnectortimestreamtimestreamcmkkey147DF4C0",
                      "Arn"
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "timestream-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "s3:AbortMultipartUpload",
                    "s3:GetBucketAcl",
                    "s3:GetBucketLocation",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:ListBucketMultipartUploads",
                    "s3:PutObject"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "{{resolve:ssm:/solution/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "/connect-store/s3-storage-bucket/arn}}"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "{{resolve:ssm:/solution/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "/connect-store/s3-storage-bucket/arn}}/fleetwise_timestream_to_s3/*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "s3-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-timestream-unload-to-s3"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-timestream-unload-to-s3:log-stream:*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "lambda-logs-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "ec2:CreateNetworkInterfacePermission",
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/1}}"
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/2}}"
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "lambda.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface",
                    "ec2:DescribeNetworkInterfaces"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-vpc-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/fleetwise-timestream-unload-lambda-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::*"
              ],
              "reason": "Timestream endpoint must be referenced as *"
            },
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:*:log-stream:*",
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:/aws/lambda/<AppUniqueId>-fleetwise-connector-timestream-unload-to-s3:log-stream:*"
              ],
              "reason": "Log stream has to be a wildcard"
            },
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::<cmsfleetwiseconnectormoduleinputsssmrootbucketarnParameter8795A630>/*",
                "Resource::{{resolve:ssm:/solution/<AppUniqueId>/connect-store/s3-storage-bucket/arn>>/*",
                "Resource::{{resolve:ssm:/solution/<AppUniqueId>/connect-store/s3-storage-bucket/arn>>/fleetwise_timestream_to_s3/*"
              ],
              "reason": "Intentional sub-tree of ssm parameters is accessible"
            },
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:ec2:<AWS::Region>:<AWS::AccountId>:network-interface/*"
              ],
              "reason": "VPC items must be accessed as * resource"
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamunloadsecuritygroup04BE0CA9": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-unload-security-group",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "Allow all outbound traffic by default",
            "IpProtocol": "-1"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsvpcnamecustomresource1E63A8E7",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-unload-security-group/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamunloadtos3lambdaF2A09E9C": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Code": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "assetff8960af1e2aa76c0c796fee90cc032e518cef9b52045ca71f6329f80773cd17.zip"
              ]
            ]
          }
        },
        "Description": "CMS FleetWise Connector - Unload Timestream Data to S3",
        "Environment": {
          "Variables": {
            "REPORT_METRICS_ENABLED": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/metrics/enabled}}"
                ]
              ]
            },
            "METRICS_SOLUTION_URL": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/metrics/url}}"
                ]
              ]
            },
            "DEPLOYMENT_UUID": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            },
            "SOLUTION_ID": "SO0241",
            "SOLUTION_VERSION": "v2.1.5",
            "USER_AGENT_STRING": "AWSSOLUTION/SO0241/v2.1.5 AWSSOLUTION-CAPABILITY/CMS.25/v2.1.5",
            "AWS_ACCOUNT_ID": {
              "Ref": "AWS::AccountId"
            }
          }
        },
        "FunctionName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-timestream-unload-to-s3"
            ]
          ]
        },
        "Handler": "function.main.handler",
        "Role": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamunloadlambdaroleF172142A",
            "Arn"
          ]
        },
        "Runtime": "python3.12",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "Timeout": 900,
        "VpcConfig": {
          "SecurityGroupIds": [
            {
              "Fn::GetAtt": [
                "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamunloadsecuritygroup04BE0CA9",
                "GroupId"
              ]
            }
          ],
          "SubnetIds": [
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            },
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/2}}"
                ]
              ]
            }
          ]
        }
      },
      "DependsOn": [
        "cmsfleetwiseconnectorfleetwisetimestreamtos3fleetwisetimestreamunloadlambdaroleF172142A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-unload-to-s3-lambda/Resource",
        "aws:asset:path": "asset.ff8960af1e2aa76c0c796fee90cc032e518cef9b52045ca71f6329f80773cd17.zip",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Code",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-L1",
              "reason": "The non-container Lambda function is not configured to use the latest runtime version."
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamunloadtos3lambdaLogRetentionE62BE046": {
      "Type": "Custom::LogRetention",
      "Properties": {
        "ServiceToken": {
          "Fn::GetAtt": [
            "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A",
            "Arn"
          ]
        },
        "LogGroupName": {
          "Fn::Join": [
            "",
            [
              "/aws/lambda/",
              {
                "Ref": "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamunloadtos3lambdaF2A09E9C"
              }
            ]
          ]
        },
        "RetentionInDays": 90
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/timestream-unload-to-s3-lambda/LogRetention/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionsloggroupEE4C8DFB": {
      "Type": "AWS::Logs::LogGroup",
      "Properties": {
        "LogGroupName": {
          "Fn::Join": [
            "",
            [
              "/aws/vendedlogs/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/step-function-",
              {
                "Fn::Select": [
                  2,
                  {
                    "Fn::Split": [
                      "/",
                      {
                        "Ref": "AWS::StackId"
                      }
                    ]
                  }
                ]
              }
            ]
          ]
        },
        "RetentionInDays": 90,
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain",
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/step-functions-log-group/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3statemachineroleA1CA66ED": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "states.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Path": "/",
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:CreateLogDelivery",
                    "logs:DeleteLogDelivery",
                    "logs:GetLogDelivery",
                    "logs:ListLogDeliveries",
                    "logs:UpdateLogDelivery"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "cloudwatch-logs-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:DescribeLogGroups",
                    "logs:DescribeResourcePolicies",
                    "logs:PutResourcePolicy"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":logs:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":*"
                      ]
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "cloudwatch-logs-policy2"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "xray:GetSamplingRules",
                    "xray:GetSamplingTargets",
                    "xray:PutTelemetryRecords",
                    "xray:PutTraceSegments"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "xray-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "Lambda:InvokeFunction",
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::GetAtt": [
                        "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlerlambdaBB27E6F8",
                        "Arn"
                      ]
                    },
                    {
                      "Fn::GetAtt": [
                        "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamqueryvinslambda742EB725",
                        "Arn"
                      ]
                    },
                    {
                      "Fn::GetAtt": [
                        "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamunloadtos3lambdaF2A09E9C",
                        "Arn"
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "lambda-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "states:StartExecution",
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":states:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":stateMachine:",
                        {
                          "Ref": "AppUniqueId"
                        },
                        "-fleetwise-connector-timestream-to-s3"
                      ]
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "step-function-execution-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/state-machine-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::*",
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:*"
              ],
              "reason": "Log group unknown at deploy time"
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachine35718297": {
      "Type": "AWS::StepFunctions::StateMachine",
      "Properties": {
        "DefinitionString": {
          "Fn::Join": [
            "",
            [
              "{\"StartAt\":\"Generate Unload Query Time Range\",\"States\":{\"Generate Unload Query Time Range\":{\"Next\":\"Get Batches of Available VINs in Time Range\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"ResultSelector\":{\"timeInfo.$\":\"$.Payload\"},\"Resource\":\"arn:",
              {
                "Ref": "AWS::Partition"
              },
              ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",
              {
                "Fn::GetAtt": [
                  "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlerlambdaBB27E6F8",
                  "Arn"
                ]
              },
              "\",\"Payload\":{\"requestType\":\"Get\"}}},\"Get Batches of Available VINs in Time Range\":{\"Next\":\"Check for Existence of Data in Query Range\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"ResultPath\":\"$.getVinsResult\",\"ResultSelector\":{\"vinBatches.$\":\"$.Payload.vin_batches\"},\"Resource\":\"arn:",
              {
                "Ref": "AWS::Partition"
              },
              ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",
              {
                "Fn::GetAtt": [
                  "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamqueryvinslambda742EB725",
                  "Arn"
                ]
              },
              "\",\"Payload\":{\"timestream\":{\"databaseName\":\"",
              {
                "Ref": "cmsfleetwiseconnectortimestreamtimestreamdatabase51C3291C"
              },
              "\",\"tableName\":\"",
              {
                "Fn::GetAtt": [
                  "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
                  "Name"
                ]
              },
              "\"},\"cmsConnectStore\":{\"telemetryBucketName\":\"{{resolve:ssm:/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/s3-storage-bucket/name}}\",\"telemetryPrefixPath\":\"fleetwise_timestream_to_s3/\"},\"timeInfo.$\":\"$.timeInfo\"}}},\"Check for Existence of Data in Query Range\":{\"Type\":\"Choice\",\"Choices\":[{\"Variable\":\"$.getVinsResult.vinBatches[0][0]\",\"IsPresent\":false,\"Next\":\"Skipping Unload: No New Data\"}],\"Default\":\"Process Each VIN Batch\"},\"Process Each VIN Batch\":{\"Type\":\"Map\",\"ResultPath\":\"$.vin_batch\",\"Next\":\"Update Last Unload Query End Time\",\"Parameters\":{\"vinBatch.$\":\"$$.Map.Item.Value\",\"timestream\":{\"databaseName\":\"",
              {
                "Ref": "cmsfleetwiseconnectortimestreamtimestreamdatabase51C3291C"
              },
              "\",\"tableName\":\"",
              {
                "Fn::GetAtt": [
                  "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
                  "Name"
                ]
              },
              "\"},\"cmsConnectStore\":{\"telemetryBucketName\":\"{{resolve:ssm:/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/s3-storage-bucket/name}}\",\"telemetryPrefixPath\":\"fleetwise_timestream_to_s3/\"},\"fleetwise\":{\"vehicleVinAttributeName\":\"",
              {
                "Ref": "FleetwiseVehicleVinAttributeName"
              },
              "\"},\"timeInfo.$\":\"$.timeInfo\"},\"ItemsPath\":\"$.getVinsResult.vinBatches\",\"ItemProcessor\":{\"ProcessorConfig\":{\"Mode\":\"DISTRIBUTED\",\"ExecutionType\":\"STANDARD\"},\"StartAt\":\"Unload Data to S3 Per Batch of VINs\",\"States\":{\"Unload Data to S3 Per Batch of VINs\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"OutputPath\":\"$.Payload\",\"Resource\":\"arn:",
              {
                "Ref": "AWS::Partition"
              },
              ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",
              {
                "Fn::GetAtt": [
                  "cmsfleetwiseconnectorfleetwisetimestreamtos3timestreamunloadtos3lambdaF2A09E9C",
                  "Arn"
                ]
              },
              "\",\"Payload.$\":\"$\"}}}},\"MaxConcurrency\":1},\"Update Last Unload Query End Time\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"ResultPath\":\"$.timeInfo\",\"Resource\":\"arn:",
              {
                "Ref": "AWS::Partition"
              },
              ":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",
              {
                "Fn::GetAtt": [
                  "cmsfleetwiseconnectorfleetwisetimestreamtos3timerangehandlerlambdaBB27E6F8",
                  "Arn"
                ]
              },
              "\",\"Payload\":{\"requestType\":\"Set\",\"timeInfo.$\":\"$.timeInfo\"}}},\"Skipping Unload: No New Data\":{\"Type\":\"Succeed\"}}}"
            ]
          ]
        },
        "LoggingConfiguration": {
          "Destinations": [
            {
              "CloudWatchLogsLogGroup": {
                "LogGroupArn": {
                  "Fn::GetAtt": [
                    "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionsloggroupEE4C8DFB",
                    "Arn"
                  ]
                }
              }
            }
          ],
          "IncludeExecutionData": false,
          "Level": "ALL"
        },
        "RoleArn": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectorfleetwisetimestreamtos3statemachineroleA1CA66ED",
            "Arn"
          ]
        },
        "StateMachineName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-timestream-to-s3"
            ]
          ]
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "TracingConfiguration": {
          "Enabled": true
        }
      },
      "DependsOn": [
        "cmsfleetwiseconnectorfleetwisetimestreamtos3statemachineroleA1CA66ED",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/step-function-state-machine/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachineEventsRoleD90095E1": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "events.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/step-function-state-machine/EventsRole/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachineEventsRoleDefaultPolicy43BB7137": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": "states:StartExecution",
              "Effect": "Allow",
              "Resource": {
                "Ref": "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachine35718297"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachineEventsRoleDefaultPolicy43BB7137",
        "Roles": [
          {
            "Ref": "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachineEventsRoleD90095E1"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/step-function-state-machine/EventsRole/DefaultPolicy/Resource"
      }
    },
    "cmsfleetwiseconnectorfleetwisetimestreamtos3cmsfleetwisestepfunctioncronrule23CCA4A4": {
      "Type": "AWS::Events::Rule",
      "Properties": {
        "ScheduleExpression": {
          "Fn::Join": [
            "",
            [
              "rate(",
              {
                "Ref": "TimestreamToS3UnloadIntervalMinutes"
              },
              " minutes)"
            ]
          ]
        },
        "State": "ENABLED",
        "Targets": [
          {
            "Arn": {
              "Ref": "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachine35718297"
            },
            "Id": "Target0",
            "RoleArn": {
              "Fn::GetAtt": [
                "cmsfleetwiseconnectorfleetwisetimestreamtos3stepfunctionstatemachineEventsRoleD90095E1",
                "Arn"
              ]
            }
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/fleetwise-timestream-to-s3/cms-fleetwise-step-function-cron-rule/Resource"
      }
    },
    "cmsfleetwiseconnectors3glueathenasecurityconfiguration153F4C06": {
      "Type": "AWS::Glue::SecurityConfiguration",
      "Properties": {
        "EncryptionConfiguration": {
          "CloudWatchEncryption": {
            "CloudWatchEncryptionMode": "DISABLED"
          },
          "S3Encryptions": [
            {
              "S3EncryptionMode": "SSE-S3"
            }
          ]
        },
        "Name": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-data-security"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/security-configuration"
      }
    },
    "cmsfleetwiseconnectors3glueathenagluecrawlerroleF5FBC778": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "glue.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "s3:GetBucketAcl",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:PutObject"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "{{resolve:ssm:/solution/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "/connect-store/s3-storage-bucket/arn}}"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "{{resolve:ssm:/solution/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "/connect-store/s3-storage-bucket/arn}}/fleetwise_timestream_to_s3/*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "s3-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "glue:GetConnection",
                    "glue:GetConnections",
                    "glue:GetSecurityConfiguration",
                    "glue:GetSecurityConfigurations"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "glue-security-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "glue:BatchCreatePartition",
                    "glue:BatchDeletePartition",
                    "glue:BatchDeleteTable",
                    "glue:BatchDeleteTableVersion",
                    "glue:BatchGetPartition",
                    "glue:CreateDatabase",
                    "glue:CreatePartition",
                    "glue:CreatePartitionIndex",
                    "glue:CreateTable",
                    "glue:DeletePartition",
                    "glue:DeleteTable",
                    "glue:GetDatabase",
                    "glue:GetDatabases",
                    "glue:GetSecurityConfiguration",
                    "glue:GetSecurityConfigurations",
                    "glue:GetTable",
                    "glue:GetTables",
                    "glue:UpdateDatabase",
                    "glue:UpdatePartition",
                    "glue:UpdateTable"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":catalog"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":database/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":security-configuration/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-data-security"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":table/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector/fleetwise-data-*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "glue-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "ec2:CreateNetworkInterfacePermission",
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/1}}"
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/2}}"
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "glue.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface",
                    "ec2:DescribeNetworkInterfaces"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-vpc-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "ec2:CreateTags",
                    "ec2:DescribeAvailabilityZones",
                    "ec2:DescribeNetworkAcls",
                    "ec2:DescribeRouteTables",
                    "ec2:DescribeSecurityGroups",
                    "ec2:DescribeSubnets",
                    "ec2:DescribeVpcEndpoints"
                  ],
                  "Condition": {
                    "StringEquals": {
                      "ec2:Region": [
                        {
                          "Ref": "AWS::Region"
                        }
                      ]
                    }
                  },
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-vpc-policy-glue"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:AssociateKmsKey",
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws-glue/crawlers"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws-glue/crawlers-role/*"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws-glue/crawlers:*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "logs-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/glue-crawler-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::{{resolve:ssm:/solution/<AppUniqueId>/connect-store/s3-storage-bucket/arn>>/fleetwise_timestream_to_s3/*",
                "Resource::arn:<AWS::Partition>:glue:<AWS::Region>:<AWS::AccountId>:table/<AppUniqueId>-fleetwise-connector/fleetwise-data-*",
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:/aws-glue/crawlers:*",
                "Resource::*",
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:/aws-glue/crawlers-role/*"
              ],
              "reason": "Intentional sub-tree of ssm parameters is accessible. Log writing only works with *"
            },
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:ec2:<AWS::Region>:<AWS::AccountId>:network-interface/*"
              ],
              "reason": "VPC items must be accessed as * resource"
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup3A1D9EBA": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "Allow all inbound and outbound traffic as required by Glue.",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsvpcnamecustomresource1E63A8E7",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/glue-crawler-security-group/Resource"
      }
    },
    "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroupfromcmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup739EB5CDALLTRAFFIC0AA853D7": {
      "Type": "AWS::EC2::SecurityGroupIngress",
      "Properties": {
        "Description": "Allow all inbound traffic from the Security Group to itself",
        "GroupId": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup3A1D9EBA",
            "GroupId"
          ]
        },
        "IpProtocol": "-1",
        "SourceSecurityGroupId": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup3A1D9EBA",
            "GroupId"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/glue-crawler-security-group/from cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup739EB5CD:ALL TRAFFIC"
      }
    },
    "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygrouptocmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup739EB5CDALLTRAFFICD3CC7A83": {
      "Type": "AWS::EC2::SecurityGroupEgress",
      "Properties": {
        "Description": "Allow all outbound traffic from the Security Group to itself",
        "DestinationSecurityGroupId": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup3A1D9EBA",
            "GroupId"
          ]
        },
        "GroupId": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup3A1D9EBA",
            "GroupId"
          ]
        },
        "IpProtocol": "-1"
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/glue-crawler-security-group/to cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup739EB5CD:ALL TRAFFIC"
      }
    },
    "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygrouptoIndirectPeerALLPORTS54B4BE93": {
      "Type": "AWS::EC2::SecurityGroupEgress",
      "Properties": {
        "Description": "Allow outbound traffic to the s3 endpoint",
        "DestinationPrefixListId": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenaprefixlistlookupvpcendpointprefixlistcustomresource4D5D4761",
            "PrefixLists.0.PrefixListId"
          ]
        },
        "FromPort": 0,
        "GroupId": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup3A1D9EBA",
            "GroupId"
          ]
        },
        "IpProtocol": "tcp",
        "ToPort": 65535
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/glue-crawler-security-group/to {IndirectPeer}:ALL PORTS"
      }
    },
    "cmsfleetwiseconnectors3glueathenaprefixlistlookupvpcprefixlistcustomresourceroleA1B2E782": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-vpc-prefix-list-lookup"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-fleetwise-connector-vpc-prefix-list-lookup:log-stream:*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "lambda-logs-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "ec2:CreateNetworkInterfacePermission",
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/1}}"
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsvpcnamecustomresource1E63A8E7",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/2}}"
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "lambda.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface",
                    "ec2:DescribeNetworkInterfaces"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "ec2:DescribeManagedPrefixLists",
                  "Condition": {
                    "StringEquals": {
                      "aws:PrincipalAccount": [
                        {
                          "Ref": "AWS::AccountId"
                        }
                      ],
                      "aws:RequestedRegion": [
                        {
                          "Ref": "AWS::Region"
                        }
                      ]
                    }
                  },
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-prefix-list-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/prefix-list-lookup/vpc-prefix-list-custom-resource-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "reason": "Wildcard permissions required to write to log streams."
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectors3glueathenaprefixlistlookupvpcendpointprefixlistcustomresource4D5D4761": {
      "Type": "Custom::AWS",
      "Properties": {
        "ServiceToken": {
          "Fn::GetAtt": [
            "AWS679f53fac002430cb0da5b7982bd22872D164C4C",
            "Arn"
          ]
        },
        "Create": {
          "Fn::Join": [
            "",
            [
              "{\"action\":\"describeManagedPrefixLists\",\"service\":\"EC2\",\"parameters\":{\"Filters\":[{\"Name\":\"prefix-list-name\",\"Values\":[\"com.amazonaws.",
              {
                "Ref": "AWS::Region"
              },
              ".s3\"]}]},\"physicalResourceId\":{\"responsePath\":\"PrefixLists.0.PrefixListId\"}}"
            ]
          ]
        },
        "InstallLatestAwsSdk": false
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/prefix-list-lookup/vpc-endpoint-prefix-list-custom-resource/Resource/Default"
      }
    },
    "cmsfleetwiseconnectors3glueathenacrawlerconnectionA0CE801E": {
      "Type": "AWS::Glue::Connection",
      "Properties": {
        "CatalogId": {
          "Ref": "AWS::AccountId"
        },
        "ConnectionInput": {
          "ConnectionType": "NETWORK",
          "Name": {
            "Fn::Join": [
              "",
              [
                {
                  "Ref": "AppUniqueId"
                },
                "-fleetwise-connector-data-connection"
              ]
            ]
          },
          "PhysicalConnectionRequirements": {
            "AvailabilityZone": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/azs/1}}"
                ]
              ]
            },
            "SecurityGroupIdList": [
              {
                "Fn::GetAtt": [
                  "cmsfleetwiseconnectors3glueathenagluecrawlersecuritygroup3A1D9EBA",
                  "GroupId"
                ]
              }
            ],
            "SubnetId": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            }
          }
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/crawler-connection"
      }
    },
    "cmsfleetwiseconnectors3glueathenacrawler1CFF2B44": {
      "Type": "AWS::Glue::Crawler",
      "Properties": {
        "CrawlerSecurityConfiguration": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-data-security"
            ]
          ]
        },
        "DatabaseName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector"
            ]
          ]
        },
        "Name": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-data"
            ]
          ]
        },
        "RecrawlPolicy": {
          "RecrawlBehavior": "CRAWL_EVERYTHING"
        },
        "Role": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenagluecrawlerroleF5FBC778",
            "Arn"
          ]
        },
        "Schedule": {
          "ScheduleExpression": {
            "Ref": "GlueCrawlerCronExpression"
          }
        },
        "TablePrefix": "fleetwise-data-",
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Targets": {
          "S3Targets": [
            {
              "ConnectionName": {
                "Fn::Join": [
                  "",
                  [
                    {
                      "Ref": "AppUniqueId"
                    },
                    "-fleetwise-connector-data-connection"
                  ]
                ]
              },
              "Path": {
                "Fn::Join": [
                  "",
                  [
                    "s3://{{resolve:ssm:/solution/",
                    {
                      "Ref": "AppUniqueId"
                    },
                    "/connect-store/s3-storage-bucket/name}}/fleetwise_timestream_to_s3/results/"
                  ]
                ]
              }
            }
          ]
        }
      },
      "DependsOn": [
        "cmsfleetwiseconnectors3glueathenacrawlerconnectionA0CE801E",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/s3-glue-athena/crawler",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-GL1",
              "reason": "It does have CloudWatch Log Encryption on. This is a false positive."
            }
          ]
        }
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmtimestreamdatabasename26AEBB20": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "Name of the Timestream Database where FleeWise data is stored",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/timestream/database/name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Ref": "cmsfleetwiseconnectortimestreamtimestreamdatabase51C3291C"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-timestream-database-name/Resource"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmtimestreamdatabasearn64CD1D2F": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "Arn of the Timestream Database where FleeWise data is stored",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/timestream/database/arn"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectortimestreamtimestreamdatabase51C3291C",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-timestream-database-arn/Resource"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmtimestreamtablename714EAC9B": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "Name of the Timestream Table where FleetWise data is stored",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/timestream/table/name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
            "Name"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-timestream-table-name/Resource"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmtimestreamtablearn967E0D2F": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "Arn of the Timestream Table where FleetWise data is stored",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/timestream/table/arn"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-timestream-table-arn/Resource"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmtimestreamdatabaseregionC65864FE": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "Region of the Timestream Service where FleetWise data is stored",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/timestream/region"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Ref": "AWS::Region"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-timestream-database-region/Resource"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmtimestreamdatabasekeyarn36FB51EA": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "Arn of KMS key for the Timestream Database where FleetWise data is stored",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/timestream/database/key-arn"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectortimestreamtimestreamcmkkey147DF4C0",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-timestream-database-key-arn/Resource"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmfleetwiseexecutionrolearnF8A3D081": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "Arn of IAM Role to use for executing FleetWise Campaigns that store data in FleetWise",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/fleetwise/execution-role/arn"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectorfleetwiseconfigfleetwiseexecutionrole37A6A869",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-fleetwise-execution-role-arn/Resource"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsssmfleetwisevehiclevinattributename195D07EA": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "FleetWise Vehicle VIN Attribute Name",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/fleetwise-connector/fleetwise/vehicle/vin-attribute-name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-fleetwise-connector",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Ref": "FleetwiseVehicleVinAttributeName"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/cms-fleetwise-connector/cms-fleetwise-connector-module-outputs/ssm-fleetwise-vehicle-vin-attribute-name/Resource"
      }
    },
    "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": {
      "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"
              ]
            ]
          }
        ],
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "ec2:CreateNetworkInterfacePermission"
                  ],
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/",
                              {
                                "Fn::Join": [
                                  "",
                                  [
                                    "{{resolve:ssm:/solution/vpc/",
                                    {
                                      "Fn::GetAtt": [
                                        "moduleinputsvpcnamecustomresource1E63A8E7",
                                        "parameter_value"
                                      ]
                                    },
                                    "/subnets/private/1}}"
                                  ]
                                ]
                              }
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/",
                              {
                                "Fn::Join": [
                                  "",
                                  [
                                    "{{resolve:ssm:/solution/vpc/",
                                    {
                                      "Fn::GetAtt": [
                                        "moduleinputsvpcnamecustomresource1E63A8E7",
                                        "parameter_value"
                                      ]
                                    },
                                    "/subnets/private/2}}"
                                  ]
                                ]
                              }
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "lambda.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:DescribeNetworkInterfaces",
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM4",
              "appliesTo": [
                "Policy::arn:<AWS::Partition>:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
              ],
              "reason": "Log retention lambda uses managed policies"
            }
          ]
        }
      }
    },
    "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": [
                "logs:DeleteRetentionPolicy",
                "logs:PutRetentionPolicy"
              ],
              "Effect": "Allow",
              "Resource": "*"
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB",
        "Roles": [
          {
            "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::*"
              ],
              "reason": "Log retention lambda uses managed policies"
            }
          ]
        }
      }
    },
    "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Handler": "index.handler",
        "Runtime": "nodejs22.x",
        "Timeout": 900,
        "Code": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "asset2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d.zip"
              ]
            ]
          }
        },
        "Role": {
          "Fn::GetAtt": [
            "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB",
            "Arn"
          ]
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcConfig": {
          "SecurityGroupIds": [
            {
              "Fn::GetAtt": [
                "cdklambdasvpcconstructsecuritygroupF9971F98",
                "GroupId"
              ]
            }
          ],
          "SubnetIds": [
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            },
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/2}}"
                ]
              ]
            }
          ]
        }
      },
      "DependsOn": [
        "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB",
        "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Resource",
        "aws:asset:path": "asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Code"
      }
    },
    "AWS679f53fac002430cb0da5b7982bd2287SecurityGroupBE06FF8C": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "Automatic security group for Lambda Function cmsfleetwiseconnectorAWS679f53fac002430cb0da5b7982bd22878A3A31B9",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "Allow all outbound traffic by default",
            "IpProtocol": "-1"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsvpcnamecustomresource1E63A8E7",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/AWS679f53fac002430cb0da5b7982bd2287/SecurityGroup/Resource"
      }
    },
    "AWS679f53fac002430cb0da5b7982bd22872D164C4C": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Code": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "assetc099eb4e32cbf1c3da9c45a3b280efe2bed38d27d74aa72702b67d86d1b52354.zip"
              ]
            ]
          }
        },
        "FunctionName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-fleetwise-connector-vpc-prefix-list-lookup"
            ]
          ]
        },
        "Handler": "index.handler",
        "Role": {
          "Fn::GetAtt": [
            "cmsfleetwiseconnectors3glueathenaprefixlistlookupvpcprefixlistcustomresourceroleA1B2E782",
            "Arn"
          ]
        },
        "Runtime": "nodejs22.x",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-fleetwise-connector"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "Timeout": 120,
        "VpcConfig": {
          "SecurityGroupIds": [
            {
              "Fn::GetAtt": [
                "cdklambdasvpcconstructsecuritygroupF9971F98",
                "GroupId"
              ]
            }
          ],
          "SubnetIds": [
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            },
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsvpcnamecustomresource1E63A8E7",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/2}}"
                ]
              ]
            }
          ]
        }
      },
      "DependsOn": [
        "cmsfleetwiseconnectors3glueathenaprefixlistlookupvpcprefixlistcustomresourceroleA1B2E782"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/AWS679f53fac002430cb0da5b7982bd2287/Resource",
        "aws:asset:path": "asset.c099eb4e32cbf1c3da9c45a3b280efe2bed38d27d74aa72702b67d86d1b52354",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Code",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-L1",
              "reason": "Lambda created by CDK constructs cannot use a different runtime"
            }
          ]
        }
      }
    },
    "AWS679f53fac002430cb0da5b7982bd2287LogRetentionCE72797A": {
      "Type": "Custom::LogRetention",
      "Properties": {
        "ServiceToken": {
          "Fn::GetAtt": [
            "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A",
            "Arn"
          ]
        },
        "LogGroupName": {
          "Fn::Join": [
            "",
            [
              "/aws/lambda/",
              {
                "Ref": "AWS679f53fac002430cb0da5b7982bd22872D164C4C"
              }
            ]
          ]
        },
        "RetentionInDays": 90
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/AWS679f53fac002430cb0da5b7982bd2287/LogRetention/Resource"
      }
    },
    "CDKMetadata": {
      "Type": "AWS::CDK::Metadata",
      "Properties": {
        "Analytics": "v2:deflate64:H4sIAAAAAAAA/31S247iMAz9lnkPmaF8AdO9aDSgRXS0r8gEE7JNkyp2QFWVf18lQHdGSPvk42P7xDlyJauXSr48wYVm6tDOrNnLsWFQraiPbg19b5wWcKHdSBjORqECBus19H1AbYjDIMf66JZ9b40CNt7lySVzMPvI+DP42D8ySyKvTGlPgqjLjwbj9AYCdMgY8siUJIGqkmODKgbDw6T5f+LN6YBED/z3QifRdiTHdxxywzsOSbDpkDggdOVL34BhD4S5/gF7i0mYXNp6W7gSN94aVSSuKAkL3f4AclzBgOE3BrpZ8iX/EZ26ezXhxjhtkf3EJEGLHRAhk1zmIGghX6NqkV/zYtZrkuPK6y0yuqKx8npy446TIMb+eBOlHQO1JFdlzzd39i1+bZDjGnpRn7xRKJqoFOJBNAyMa1An48rvP+dJ4Bkdkxy38eZNzHZpG7FYefe/9u5odAzTndTeOZycqANcLIaURB2JfbdF8jGoq+In/O9KJrbY0zDofK+qTO/CrUhyeaFHxV+R+8hJbAY+efe8kPNKzudPf8iYWYguX4PcXuNfwlZCoycDAAA="
      },
      "Metadata": {
        "aws:cdk:path": "cms-fleetwise-connector/CDKMetadata/Default"
      },
      "Condition": "CDKMetadataAvailable"
    }
  },
  "Parameters": {
    "AppUniqueId": {
      "Type": "String",
      "AllowedPattern": "^(?!-)[a-z0-9-]+(?<!-)$",
      "ConstraintDescription": "AppUniqueId must contain min 3 and max 10 characters, and contain only lowercase alphanumeric characters and dashes.",
      "Description": "Application unique identifier used to uniquely name resources within the stack.",
      "MaxLength": 10,
      "MinLength": 3
    },
    "FleetwiseVehicleVinAttributeName": {
      "Type": "String",
      "Default": "VehicleVIN",
      "AllowedPattern": "^[a-zA-Z0-9:_]+$",
      "ConstraintDescription": "FleetWise attribute names and path can have up to 150 characters. Valid characters: a-z, A-Z, 0-9, : (colon), and _ (underscore)",
      "Description": "Vehicle Attribute Name for the VIN configured for each vehicle used in FleetWise",
      "MaxLength": 150,
      "MinLength": 1
    },
    "TimestreamToS3UnloadIntervalMinutes": {
      "Type": "Number",
      "Default": "15",
      "ConstraintDescription": "Must be between 1 minute and 10080 minutes (1 week)",
      "Description": "The rate in minutes that the unload step function is run",
      "MaxValue": 10080,
      "MinValue": 1
    },
    "GlueCrawlerCronExpression": {
      "Type": "String",
      "Default": "cron(0 0/1 * * ? *)",
      "Description": "The CRON expression to define how often the Glue Crawler runs."
    }
  },
  "Outputs": {
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsoutputtimestreamdatabasenameDB85A646": {
      "Description": "Timestream Database Name for the FleetWise Connector",
      "Value": {
        "Ref": "cmsfleetwiseconnectortimestreamtimestreamdatabase51C3291C"
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsoutputtimestreamtablename06A1CD8A": {
      "Description": "Timestream Table Name for the FleetWise Connector",
      "Value": {
        "Fn::GetAtt": [
          "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
          "Name"
        ]
      }
    },
    "cmsfleetwiseconnectorcmsfleetwiseconnectormoduleoutputsoutputtimestreamtablearn125D5619": {
      "Description": "Timestream Table ARN for the FleetWise Connector",
      "Value": {
        "Fn::GetAtt": [
          "cmsfleetwiseconnectortimestreamtimestreamtableFD6FC863",
          "Arn"
        ]
      }
    }
  },
  "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-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"
          ]
        }
      ]
    }
  }
}