// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`IoT Device Simulator stack test 1`] = ` { "AWSTemplateFormatVersion": "2010-09-09", "Mappings": { "ServiceprincipalMap": { "af-south-1": { "states": "states.af-south-1.amazonaws.com", }, "ap-east-1": { "states": "states.ap-east-1.amazonaws.com", }, "ap-northeast-1": { "states": "states.ap-northeast-1.amazonaws.com", }, "ap-northeast-2": { "states": "states.ap-northeast-2.amazonaws.com", }, "ap-northeast-3": { "states": "states.ap-northeast-3.amazonaws.com", }, "ap-south-1": { "states": "states.ap-south-1.amazonaws.com", }, "ap-south-2": { "states": "states.ap-south-2.amazonaws.com", }, "ap-southeast-1": { "states": "states.ap-southeast-1.amazonaws.com", }, "ap-southeast-2": { "states": "states.ap-southeast-2.amazonaws.com", }, "ap-southeast-3": { "states": "states.ap-southeast-3.amazonaws.com", }, "ca-central-1": { "states": "states.ca-central-1.amazonaws.com", }, "cn-north-1": { "states": "states.cn-north-1.amazonaws.com", }, "cn-northwest-1": { "states": "states.cn-northwest-1.amazonaws.com", }, "eu-central-1": { "states": "states.eu-central-1.amazonaws.com", }, "eu-central-2": { "states": "states.eu-central-2.amazonaws.com", }, "eu-north-1": { "states": "states.eu-north-1.amazonaws.com", }, "eu-south-1": { "states": "states.eu-south-1.amazonaws.com", }, "eu-south-2": { "states": "states.eu-south-2.amazonaws.com", }, "eu-west-1": { "states": "states.eu-west-1.amazonaws.com", }, "eu-west-2": { "states": "states.eu-west-2.amazonaws.com", }, "eu-west-3": { "states": "states.eu-west-3.amazonaws.com", }, "me-central-1": { "states": "states.me-central-1.amazonaws.com", }, "me-south-1": { "states": "states.me-south-1.amazonaws.com", }, "sa-east-1": { "states": "states.sa-east-1.amazonaws.com", }, "us-east-1": { "states": "states.us-east-1.amazonaws.com", }, "us-east-2": { "states": "states.us-east-2.amazonaws.com", }, "us-gov-east-1": { "states": "states.us-gov-east-1.amazonaws.com", }, "us-gov-west-1": { "states": "states.us-gov-west-1.amazonaws.com", }, "us-iso-east-1": { "states": "states.amazonaws.com", }, "us-iso-west-1": { "states": "states.amazonaws.com", }, "us-isob-east-1": { "states": "states.amazonaws.com", }, "us-west-1": { "states": "states.us-west-1.amazonaws.com", }, "us-west-2": { "states": "states.us-west-2.amazonaws.com", }, }, "Solution": { "Config": { "KeyPrefix": "SOLUTION_NAME_PLACEHOLDER/VERSION_PLACEHOLDER", "S3Bucket": "BUCKET_NAME_PLACEHOLDER", "SendAnonymousUsage": "Yes", "SolutionId": "SO0041", "SolutionName": "SOLUTION_NAME_PLACEHOLDER", "Version": "VERSION_PLACEHOLDER", }, }, }, "Metadata": { "AWS::CloudFormation::Interface": { "ParameterGroups": [ { "Label": { "default": "Console access", }, "Parameters": [ "UserEmail", ], }, ], "ParameterLabels": { "UserEmail": { "default": "* Console Administrator Email", }, }, }, }, "Outputs": { "APIEndpoint": { "Description": "The API endpoint", "Value": { "Fn::Join": [ "", [ "https://", { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, ".execute-api.", { "Ref": "AWS::Region", }, ".amazonaws.com/prod", ], ], }, }, "APIIoTDeviceSimulatorApiEndpoint38AE6122": { "Value": { "Fn::Join": [ "", [ "https://", { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, ".execute-api.", { "Ref": "AWS::Region", }, ".", { "Ref": "AWS::URLSuffix", }, "/", { "Ref": "APIIoTDeviceSimulatorApiDeploymentStageprodEBDF0099", }, "/", ], ], }, }, "ConsoleClientId": { "Description": "The console client ID", "Value": { "Ref": "ConsoleUserPoolClient72810FD1", }, }, "ConsoleURL": { "Description": "The URL to access the console", "Value": { "Fn::Join": [ "", [ "https://", { "Fn::GetAtt": [ "ConsoleDistributionCloudFrontDistribution725A4837", "DomainName", ], }, ], ], }, }, "DeviceTypesTable": { "Description": "The device types table name.", "Value": { "Ref": "storageIDSDeviceTypesTable01F2060C", }, }, "IdentityPoolId": { "Description": "The ID for the Cognitio Identity Pool", "Value": { "Ref": "ConsoleIdentityPool389115C6", }, }, "SimulationsTable": { "Description": "The simulations table name", "Value": { "Ref": "storageIDSSimulationsTable052FC452", }, }, "UUID": { "Description": "The solution UUID", "Value": { "Fn::GetAtt": [ "CustomResourcesUUID1685434C", "UUID", ], }, }, "UserPoolId": { "Description": "The Cognito User Pool ID", "Value": { "Ref": "ConsoleUserPoolEC556DE1", }, }, }, "Parameters": { "UserEmail": { "AllowedPattern": "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$", "ConstraintDescription": "User E-Mail must be a valid E-Mail address.", "Description": "The user E-Mail to access the UI", "Type": "String", }, }, "Resources": { "APIApiRequestValidatorC6EB6FA1": { "Properties": { "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, "ValidateRequestBody": true, "ValidateRequestParameters": true, }, "Type": "AWS::ApiGateway::RequestValidator", }, "APIIoTDeviceSimulatorApi789EED4C": { "Properties": { "Description": "IoT Device Simulator Rest API", "EndpointConfiguration": { "Types": [ "REGIONAL", ], }, "Name": "IoTDeviceSimulatorApi", "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], }, "Type": "AWS::ApiGateway::RestApi", }, "APIIoTDeviceSimulatorApiAccount46D2BA16": { "DeletionPolicy": "Retain", "DependsOn": [ "APIIoTDeviceSimulatorApi789EED4C", ], "Properties": { "CloudWatchRoleArn": { "Fn::GetAtt": [ "APIIoTDeviceSimulatorApiCloudWatchRole28B7B1FA", "Arn", ], }, }, "Type": "AWS::ApiGateway::Account", "UpdateReplacePolicy": "Retain", }, "APIIoTDeviceSimulatorApiCloudWatchRole28B7B1FA": { "DeletionPolicy": "Retain", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": [ { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", ], ], }, ], "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], }, "Type": "AWS::IAM::Role", "UpdateReplacePolicy": "Retain", }, "APIIoTDeviceSimulatorApiDeployment3C1BA3951db056031fdce112fa315a0dc108e90c": { "DependsOn": [ "APIApiRequestValidatorC6EB6FA1", "APIIoTDeviceSimulatorApidevicetypestypeidANY9009DE71", "APIIoTDeviceSimulatorApidevicetypestypeidOPTIONS2E1262D2", "APIIoTDeviceSimulatorApidevicetypestypeid9C625350", "APIIoTDeviceSimulatorApidevicetypesANY814B7130", "APIIoTDeviceSimulatorApidevicetypesOPTIONS9AA68147", "APIIoTDeviceSimulatorApidevicetypes69DA3CE2", "APIIoTDeviceSimulatorApiOPTIONS4EA20DA2", "APIIoTDeviceSimulatorApisimulationsimidANY7341FEEB", "APIIoTDeviceSimulatorApisimulationsimidOPTIONS3A8ADE0C", "APIIoTDeviceSimulatorApisimulationsimidC20C5A22", "APIIoTDeviceSimulatorApisimulationANY7B648289", "APIIoTDeviceSimulatorApisimulationOPTIONS3B6D882D", "APIIoTDeviceSimulatorApisimulationAB87A18B", ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "W68", "reason": "The solution does not require the usage plan.", }, ], }, }, "Properties": { "Description": "IoT Device Simulator Rest API", "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Deployment", }, "APIIoTDeviceSimulatorApiDeploymentStageprodEBDF0099": { "DependsOn": [ "APIIoTDeviceSimulatorApiAccount46D2BA16", ], "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "W64", "reason": "The solution does not require the usage plan.", }, ], }, }, "Properties": { "AccessLogSetting": { "DestinationArn": { "Fn::GetAtt": [ "APILogsB6A8DF10", "Arn", ], }, "Format": "{"requestId":"$context.requestId","ip":"$context.identity.sourceIp","user":"$context.identity.user","caller":"$context.identity.caller","requestTime":"$context.requestTime","httpMethod":"$context.httpMethod","resourcePath":"$context.resourcePath","status":"$context.status","protocol":"$context.protocol","responseLength":"$context.responseLength"}", }, "DeploymentId": { "Ref": "APIIoTDeviceSimulatorApiDeployment3C1BA3951db056031fdce112fa315a0dc108e90c", }, "MethodSettings": [ { "DataTraceEnabled": false, "HttpMethod": "*", "LoggingLevel": "INFO", "ResourcePath": "/*", }, ], "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, "StageName": "prod", "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], "TracingEnabled": true, }, "Type": "AWS::ApiGateway::Stage", }, "APIIoTDeviceSimulatorApiOPTIONS4EA20DA2": { "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", "Integration": { "IntegrationResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": "'Authorization,Content-Type,X-Amz-Date,X-Amz-Security-Token,X-Api-Key'", "method.response.header.Access-Control-Allow-Methods": "'GET,POST,PUT,DELETE,OPTIONS'", "method.response.header.Access-Control-Allow-Origin": "'*'", }, "StatusCode": "200", }, ], "RequestTemplates": { "application/json": "{ statusCode: 200 }", }, "Type": "MOCK", }, "MethodResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": true, "method.response.header.Access-Control-Allow-Methods": true, "method.response.header.Access-Control-Allow-Origin": true, }, "StatusCode": "200", }, ], "ResourceId": { "Fn::GetAtt": [ "APIIoTDeviceSimulatorApi789EED4C", "RootResourceId", ], }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApidevicetypes69DA3CE2": { "Properties": { "ParentId": { "Fn::GetAtt": [ "APIIoTDeviceSimulatorApi789EED4C", "RootResourceId", ], }, "PathPart": "devicetypes", "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Resource", }, "APIIoTDeviceSimulatorApidevicetypesANY814B7130": { "Properties": { "AuthorizationType": "AWS_IAM", "HttpMethod": "ANY", "Integration": { "ContentHandling": "CONVERT_TO_TEXT", "IntegrationHttpMethod": "POST", "IntegrationResponses": [ { "StatusCode": "200", }, ], "PassthroughBehavior": "WHEN_NO_MATCH", "Type": "AWS_PROXY", "Uri": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":apigateway:", { "Ref": "AWS::Region", }, ":lambda:path/2015-03-31/functions/", { "Fn::GetAtt": [ "simulatormicroservices752C24A5", "Arn", ], }, "/invocations", ], ], }, }, "MethodResponses": [ { "ResponseModels": { "application/json": "Empty", }, "StatusCode": "200", }, ], "RequestParameters": { "method.request.querystring.nextToken": false, }, "RequestValidatorId": { "Ref": "APIApiRequestValidatorC6EB6FA1", }, "ResourceId": { "Ref": "APIIoTDeviceSimulatorApidevicetypes69DA3CE2", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApidevicetypesOPTIONS9AA68147": { "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", "Integration": { "IntegrationResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": "'Authorization,Content-Type,X-Amz-Date,X-Amz-Security-Token,X-Api-Key'", "method.response.header.Access-Control-Allow-Methods": "'GET,POST,PUT,DELETE,OPTIONS'", "method.response.header.Access-Control-Allow-Origin": "'*'", }, "StatusCode": "200", }, ], "RequestTemplates": { "application/json": "{ statusCode: 200 }", }, "Type": "MOCK", }, "MethodResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": true, "method.response.header.Access-Control-Allow-Methods": true, "method.response.header.Access-Control-Allow-Origin": true, }, "StatusCode": "200", }, ], "ResourceId": { "Ref": "APIIoTDeviceSimulatorApidevicetypes69DA3CE2", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApidevicetypestypeid9C625350": { "Properties": { "ParentId": { "Ref": "APIIoTDeviceSimulatorApidevicetypes69DA3CE2", }, "PathPart": "{typeid}", "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Resource", }, "APIIoTDeviceSimulatorApidevicetypestypeidANY9009DE71": { "Properties": { "AuthorizationType": "AWS_IAM", "HttpMethod": "ANY", "Integration": { "ContentHandling": "CONVERT_TO_TEXT", "IntegrationHttpMethod": "POST", "IntegrationResponses": [ { "StatusCode": "200", }, ], "PassthroughBehavior": "WHEN_NO_MATCH", "Type": "AWS_PROXY", "Uri": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":apigateway:", { "Ref": "AWS::Region", }, ":lambda:path/2015-03-31/functions/", { "Fn::GetAtt": [ "simulatormicroservices752C24A5", "Arn", ], }, "/invocations", ], ], }, }, "MethodResponses": [ { "ResponseModels": { "application/json": "Empty", }, "StatusCode": "200", }, ], "RequestParameters": { "method.request.querystring.nextToken": false, }, "RequestValidatorId": { "Ref": "APIApiRequestValidatorC6EB6FA1", }, "ResourceId": { "Ref": "APIIoTDeviceSimulatorApidevicetypestypeid9C625350", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApidevicetypestypeidOPTIONS2E1262D2": { "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", "Integration": { "IntegrationResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": "'Authorization,Content-Type,X-Amz-Date,X-Amz-Security-Token,X-Api-Key'", "method.response.header.Access-Control-Allow-Methods": "'GET,POST,PUT,DELETE,OPTIONS'", "method.response.header.Access-Control-Allow-Origin": "'*'", }, "StatusCode": "200", }, ], "RequestTemplates": { "application/json": "{ statusCode: 200 }", }, "Type": "MOCK", }, "MethodResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": true, "method.response.header.Access-Control-Allow-Methods": true, "method.response.header.Access-Control-Allow-Origin": true, }, "StatusCode": "200", }, ], "ResourceId": { "Ref": "APIIoTDeviceSimulatorApidevicetypestypeid9C625350", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApisimulationAB87A18B": { "Properties": { "ParentId": { "Fn::GetAtt": [ "APIIoTDeviceSimulatorApi789EED4C", "RootResourceId", ], }, "PathPart": "simulation", "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Resource", }, "APIIoTDeviceSimulatorApisimulationANY7B648289": { "Properties": { "AuthorizationType": "AWS_IAM", "HttpMethod": "ANY", "Integration": { "ContentHandling": "CONVERT_TO_TEXT", "IntegrationHttpMethod": "POST", "IntegrationResponses": [ { "StatusCode": "200", }, ], "PassthroughBehavior": "WHEN_NO_MATCH", "Type": "AWS_PROXY", "Uri": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":apigateway:", { "Ref": "AWS::Region", }, ":lambda:path/2015-03-31/functions/", { "Fn::GetAtt": [ "simulatormicroservices752C24A5", "Arn", ], }, "/invocations", ], ], }, }, "MethodResponses": [ { "ResponseModels": { "application/json": "Empty", }, "StatusCode": "200", }, ], "RequestParameters": { "method.request.querystring.nextToken": false, }, "RequestValidatorId": { "Ref": "APIApiRequestValidatorC6EB6FA1", }, "ResourceId": { "Ref": "APIIoTDeviceSimulatorApisimulationAB87A18B", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApisimulationOPTIONS3B6D882D": { "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", "Integration": { "IntegrationResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": "'Authorization,Content-Type,X-Amz-Date,X-Amz-Security-Token,X-Api-Key'", "method.response.header.Access-Control-Allow-Methods": "'GET,POST,PUT,DELETE,OPTIONS'", "method.response.header.Access-Control-Allow-Origin": "'*'", }, "StatusCode": "200", }, ], "RequestTemplates": { "application/json": "{ statusCode: 200 }", }, "Type": "MOCK", }, "MethodResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": true, "method.response.header.Access-Control-Allow-Methods": true, "method.response.header.Access-Control-Allow-Origin": true, }, "StatusCode": "200", }, ], "ResourceId": { "Ref": "APIIoTDeviceSimulatorApisimulationAB87A18B", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApisimulationsimidANY7341FEEB": { "Properties": { "AuthorizationType": "AWS_IAM", "HttpMethod": "ANY", "Integration": { "ContentHandling": "CONVERT_TO_TEXT", "IntegrationHttpMethod": "POST", "IntegrationResponses": [ { "StatusCode": "200", }, ], "PassthroughBehavior": "WHEN_NO_MATCH", "Type": "AWS_PROXY", "Uri": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":apigateway:", { "Ref": "AWS::Region", }, ":lambda:path/2015-03-31/functions/", { "Fn::GetAtt": [ "simulatormicroservices752C24A5", "Arn", ], }, "/invocations", ], ], }, }, "MethodResponses": [ { "ResponseModels": { "application/json": "Empty", }, "StatusCode": "200", }, ], "RequestParameters": { "method.request.querystring.nextToken": false, }, "RequestValidatorId": { "Ref": "APIApiRequestValidatorC6EB6FA1", }, "ResourceId": { "Ref": "APIIoTDeviceSimulatorApisimulationsimidC20C5A22", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APIIoTDeviceSimulatorApisimulationsimidC20C5A22": { "Properties": { "ParentId": { "Ref": "APIIoTDeviceSimulatorApisimulationAB87A18B", }, "PathPart": "{simid}", "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Resource", }, "APIIoTDeviceSimulatorApisimulationsimidOPTIONS3A8ADE0C": { "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", "Integration": { "IntegrationResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": "'Authorization,Content-Type,X-Amz-Date,X-Amz-Security-Token,X-Api-Key'", "method.response.header.Access-Control-Allow-Methods": "'GET,POST,PUT,DELETE,OPTIONS'", "method.response.header.Access-Control-Allow-Origin": "'*'", }, "StatusCode": "200", }, ], "RequestTemplates": { "application/json": "{ statusCode: 200 }", }, "Type": "MOCK", }, "MethodResponses": [ { "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": true, "method.response.header.Access-Control-Allow-Methods": true, "method.response.header.Access-Control-Allow-Origin": true, }, "StatusCode": "200", }, ], "ResourceId": { "Ref": "APIIoTDeviceSimulatorApisimulationsimidC20C5A22", }, "RestApiId": { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, }, "Type": "AWS::ApiGateway::Method", }, "APILogsB6A8DF10": { "DeletionPolicy": "Delete", "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "W84", "reason": "CloudWatch Logs are already encrypted by default.", }, ], }, }, "Properties": { "RetentionInDays": 90, "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], }, "Type": "AWS::Logs::LogGroup", "UpdateReplacePolicy": "Delete", }, "AppRegistryAssociation": { "Properties": { "Application": { "Fn::GetAtt": [ "ApplicationD9CED6CE", "Id", ], }, "Resource": { "Ref": "AWS::StackId", }, "ResourceType": "CFN_STACK", }, "Type": "AWS::ServiceCatalogAppRegistry::ResourceAssociation", }, "ApplicationD9CED6CE": { "Properties": { "Description": { "Fn::Join": [ "", [ "(", { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, ") - ", { "Fn::FindInMap": [ "Solution", "Config", "SolutionName", ], }, " Version ", { "Fn::FindInMap": [ "Solution", "Config", "Version", ], }, ], ], }, "Name": { "Fn::Join": [ "-", [ { "Fn::FindInMap": [ "Solution", "Config", "SolutionName", ], }, { "Ref": "AWS::Region", }, { "Ref": "AWS::AccountId", }, { "Ref": "AWS::StackName", }, ], ], }, "Tags": { "SolutionId": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, "Solutions:ApplicationType": "AWS-Solutions", "Solutions:SolutionID": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, "Solutions:SolutionName": { "Fn::FindInMap": [ "Solution", "Config", "SolutionName", ], }, "Solutions:SolutionVersion": { "Fn::FindInMap": [ "Solution", "Config", "Version", ], }, }, }, "Type": "AWS::ServiceCatalogAppRegistry::Application", }, "CommonResourcesCloudWatchLogsPolicyB8257A4C": { "Properties": { "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/*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "CommonResourcesCloudWatchLogsPolicyB8257A4C", "Roles": [ { "Ref": "CustomResourcesHelperLambdaRole9A7E3677", }, { "Ref": "simulatorEngineLambdaRoleE774CD29", }, { "Ref": "simulatorMicroservicesRole0AC1A17A", }, ], }, "Type": "AWS::IAM::Policy", }, "CommonResourcesLogBucketFC1ABCC9": { "DeletionPolicy": "Retain", "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "W35", "reason": "This bucket is to store S3 logs, so it does not require access logs.", }, { "id": "W51", "reason": "This bucket is to store S3 logs, so it does not require S3 policy.", }, ], }, }, "Properties": { "AccessControl": "LogDeliveryWrite", "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256", }, }, ], }, "OwnershipControls": { "Rules": [ { "ObjectOwnership": "ObjectWriter", }, ], }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, "ConsoleDistributionCloudFrontDistribution725A4837": { "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "W70", "reason": "Since the distribution uses the CloudFront domain name, CloudFront automatically sets the security policy to TLSv1 regardless of the value of MinimumProtocolVersion", }, ], }, }, "Properties": { "DistributionConfig": { "Comment": "IoT Device Simulator Distribution", "CustomErrorResponses": [ { "ErrorCode": 403, "ResponseCode": 200, "ResponsePagePath": "/index.html", }, { "ErrorCode": 404, "ResponseCode": 200, "ResponsePagePath": "/index.html", }, ], "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, "TargetOriginId": "TestDLTStackConsoleDistributionCloudFrontDistributionOrigin1BAEFFEA9", "ViewerProtocolPolicy": "redirect-to-https", }, "DefaultRootObject": "index.html", "Enabled": true, "HttpVersion": "http2", "IPV6Enabled": true, "Logging": { "Bucket": { "Fn::GetAtt": [ "CommonResourcesLogBucketFC1ABCC9", "RegionalDomainName", ], }, "Prefix": "console-cf/", }, "Origins": [ { "DomainName": { "Fn::GetAtt": [ "ConsoleDistributionS3Bucket51F4E4E5", "RegionalDomainName", ], }, "Id": "TestDLTStackConsoleDistributionCloudFrontDistributionOrigin1BAEFFEA9", "S3OriginConfig": { "OriginAccessIdentity": { "Fn::Join": [ "", [ "origin-access-identity/cloudfront/", { "Ref": "ConsoleDistributionCloudFrontDistributionOrigin1S3OriginD5D71BC0", }, ], ], }, }, }, ], }, "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], }, "Type": "AWS::CloudFront::Distribution", }, "ConsoleDistributionCloudFrontDistributionOrigin1S3OriginD5D71BC0": { "Properties": { "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for TestDLTStackConsoleDistributionCloudFrontDistributionOrigin1BAEFFEA9", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, "ConsoleDistributionS3Bucket51F4E4E5": { "DeletionPolicy": "Retain", "Properties": { "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256", }, }, ], }, "LifecycleConfiguration": { "Rules": [ { "NoncurrentVersionTransitions": [ { "StorageClass": "GLACIER", "TransitionInDays": 90, }, ], "Status": "Enabled", }, ], }, "LoggingConfiguration": { "DestinationBucketName": { "Ref": "CommonResourcesLogBucketFC1ABCC9", }, "LogFilePrefix": "console-s3/", }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], "VersioningConfiguration": { "Status": "Enabled", }, }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, "ConsoleDistributionS3BucketPolicy0C20C26B": { "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "F16", "reason": "Public website bucket policy requires a wildcard principal", }, ], }, }, "Properties": { "Bucket": { "Ref": "ConsoleDistributionS3Bucket51F4E4E5", }, "PolicyDocument": { "Statement": [ { "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false", }, }, "Effect": "Deny", "Principal": { "AWS": "*", }, "Resource": [ { "Fn::GetAtt": [ "ConsoleDistributionS3Bucket51F4E4E5", "Arn", ], }, { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "ConsoleDistributionS3Bucket51F4E4E5", "Arn", ], }, "/*", ], ], }, ], }, { "Action": "s3:GetObject", "Effect": "Allow", "Principal": { "CanonicalUser": { "Fn::GetAtt": [ "ConsoleDistributionCloudFrontDistributionOrigin1S3OriginD5D71BC0", "S3CanonicalUserId", ], }, }, "Resource": { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "ConsoleDistributionS3Bucket51F4E4E5", "Arn", ], }, "/*", ], ], }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::S3::BucketPolicy", }, "ConsoleIDSIoTPolicy51CF0454": { "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "W11", "reason": "Cannot specify the resource to attach policy to identity.", }, ], }, }, "Properties": { "PolicyDocument": { "Statement": [ { "Action": "iot:Connect", "Effect": "Allow", "Resource": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":iot:", { "Ref": "AWS::Region", }, ":", { "Ref": "AWS::AccountId", }, ":client/*", ], ], }, }, { "Action": "iot:Subscribe", "Effect": "Allow", "Resource": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":iot:", { "Ref": "AWS::Region", }, ":", { "Ref": "AWS::AccountId", }, ":topicfilter/*", ], ], }, }, { "Action": "iot:Receive", "Effect": "Allow", "Resource": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":iot:", { "Ref": "AWS::Region", }, ":", { "Ref": "AWS::AccountId", }, ":topic/*", ], ], }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::IoT::Policy", }, "ConsoleIdentityPool389115C6": { "Properties": { "AllowUnauthenticatedIdentities": false, "CognitoIdentityProviders": [ { "ClientId": { "Ref": "ConsoleUserPoolClient72810FD1", }, "ProviderName": { "Fn::GetAtt": [ "ConsoleUserPoolEC556DE1", "ProviderName", ], }, "ServerSideTokenCheck": false, }, ], }, "Type": "AWS::Cognito::IdentityPool", }, "ConsoleIdentityPoolAuthenticatedRole8F32DA79": { "Metadata": { "cfn_nag": { "rules_to_suppress": [ { "id": "W11", "reason": "iot:AttachPrincipalPolicy does not allow for resource specification", }, ], }, }, "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated", }, "StringEquals": { "cognito-identity.amazonaws.com:aud": { "Ref": "ConsoleIdentityPool389115C6", }, }, }, "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "Description": { "Fn::Join": [ "", [ { "Ref": "AWS::StackName", }, " Identity Pool authenticated role", ], ], }, "Policies": [ { "PolicyDocument": { "Statement": [ { "Action": "execute-api:Invoke", "Effect": "Allow", "Resource": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":execute-api:", { "Ref": "AWS::Region", }, ":", { "Ref": "AWS::AccountId", }, ":", { "Ref": "APIIoTDeviceSimulatorApi789EED4C", }, "/prod/*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "ExecuteApiPolicy", }, { "PolicyDocument": { "Statement": [ { "Action": [ "geo:SearchPlaceIndexForText", "geo:GetMapGlyphs", "geo:GetMapSprites", "geo:GetMapStyleDescriptor", "geo:SearchPlaceIndexForPosition", "execute-api:Invoke", "geo:GetMapTile", ], "Effect": "Allow", "Resource": [ { "Fn::GetAtt": [ "IotDeviceSimulatorMap", "MapArn", ], }, { "Fn::GetAtt": [ "IotDeviceSimulatorPlaceIndex", "IndexArn", ], }, ], }, ], "Version": "2012-10-17", }, "PolicyName": "LocationServicePolicy", }, { "PolicyDocument": { "Statement": [ { "Action": "iot:AttachPrincipalPolicy", "Effect": "Allow", "Resource": "*", }, { "Action": "iot:Connect", "Effect": "Allow", "Resource": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":iot:", { "Ref": "AWS::Region", }, ":", { "Ref": "AWS::AccountId", }, ":client/*", ], ], }, }, { "Action": "iot:Subscribe", "Effect": "Allow", "Resource": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":iot:", { "Ref": "AWS::Region", }, ":", { "Ref": "AWS::AccountId", }, ":topicfilter/*", ], ], }, }, { "Action": "iot:Receive", "Effect": "Allow", "Resource": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition", }, ":iot:", { "Ref": "AWS::Region", }, ":", { "Ref": "AWS::AccountId", }, ":topic/*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "IoTPolicy", }, ], "Tags": [ { "Key": "SolutionId", "Value": { "Fn::FindInMap": [ "Solution", "Config", "SolutionId", ], }, }, ], }, "Type": "AWS::IAM::Role", }, "ConsoleIdentityPoolRoleAttachement8552A306": { "Properties": { "IdentityPoolId": { "Ref": "ConsoleIdentityPool389115C6", }, "Roles": { "authenticated": { "Fn::GetAtt": [ "ConsoleIdentityPoolAuthenticatedRole8F32DA79", "Arn", ], }, }, }, "Type": "AWS::Cognito::IdentityPoolRoleAttachment", }, "ConsoleUser3BA0F436": { "Properties": { "DesiredDeliveryMediums": [ "EMAIL", ], "ForceAliasCreation": true, "UserAttributes": [ { "Name": "email", "Value": { "Ref": "UserEmail", }, }, { "Name": "email_verified", "Value": "true", }, ], "UserPoolId": { "Ref": "ConsoleUserPoolEC556DE1", }, "Username": { "Ref": "UserEmail", }, }, "Type": "AWS::Cognito::UserPoolUser", }, "ConsoleUserPoolClient72810FD1": { "Properties": { "AllowedOAuthFlows": [ "implicit", "code", ], "AllowedOAuthFlowsUserPoolClient": true, "AllowedOAuthScopes": [ "profile", "phone", "email", "openid", "aws.cognito.signin.user.admin", ], "CallbackURLs": [ "https://example.com", ], "ClientName": { "Fn::Join": [ "", [ { "Ref": "AWS::StackName", }, "-userpool-client", ], ], }, "GenerateSecret": false, "PreventUserExistenceErrors": "ENABLED", "RefreshTokenValidity": 1440, "SupportedIdentityProviders": [ "COGNITO", ], "TokenValidityUnits": { "RefreshToken": "minutes", }, "UserPoolId": { "Ref": "ConsoleUserPoolEC556DE1", }, }, "Type": "AWS::Cognito::UserPoolClient", }, "ConsoleUserPoolEC556DE1": { "DeletionPolicy": "Delete", "Properties": { "AccountRecoverySetting": { "RecoveryMechanisms": [ { "Name": "verified_phone_number", "Priority": 1, }, { "Name": "verified_email", "Priority": 2, }, ], }, "AdminCreateUserConfig": { "AllowAdminCreateUserOnly": true, "InviteMessageTemplate": { "EmailMessage": { "Fn::Join": [ "", [ "
You are invited to join IoT Device Simulator.
https://",
{
"Fn::GetAtt": [
"ConsoleDistributionCloudFrontDistribution725A4837",
"DomainName",
],
},
"
Please sign in to IoT Device Simulator using the temporary credentials below:
Username: {username}
Password: {####}