From 7336490555905941302bcd489aa5e47e856ae59a Mon Sep 17 00:00:00 2001 From: Jonathan Goldwasser Date: Fri, 29 Dec 2023 19:27:38 +0100 Subject: [PATCH] chore(deps): upgrade dependencies (#247) * chore(deps): upgrade dependencies Upgrades project dependencies. See details in [workflow run]. [Workflow Run]: https://github.com/jogold/cloudstructs/actions/runs/7352540313 ------ *Automatically created by projen via the "upgrade-master" workflow* Signed-off-by: github-actions * jest 29 --------- Signed-off-by: github-actions Co-authored-by: github-actions --- .projenrc.js | 4 - package.json | 45 +- .../codecommit-mirror.test.ts.snap | 1066 ++-- .../__snapshots__/dmarc-reporter.test.ts.snap | 398 +- .../ecs-service-roller.test.ts.snap | 1378 ++--- .../__snapshots__/email-receiver.test.ts.snap | 458 +- .../saml-identity-provider.test.ts.snap | 126 +- .../__snapshots__/slack-app.test.ts.snap | 278 +- .../__snapshots__/slack-events.test.ts.snap | 214 +- .../__snapshots__/slack-textract.test.ts.snap | 320 +- .../state-machine-cr-provider.test.ts.snap | 274 +- .../__snapshots__/static-website.test.ts.snap | 756 +-- .../__snapshots__/url-shortener.test.ts.snap | 4448 ++++++++--------- yarn.lock | 2025 ++++---- 14 files changed, 5722 insertions(+), 6068 deletions(-) diff --git a/.projenrc.js b/.projenrc.js index b1e8f52a..45e4daab 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -74,8 +74,4 @@ for (const dirent of fs.readdirSync('./src', { withFileTypes: true })) { } project.tryFindObjectFile('package.json').addOverride('exports', packageExports); -project.tryFindObjectFile('package.json').addOverride('jest.moduleNameMapper', { - axios: 'axios/dist/node/axios.cjs', -}); - project.synth(); diff --git a/package.json b/package.json index 59d836e7..9363c0b1 100644 --- a/package.json +++ b/package.json @@ -90,19 +90,19 @@ "devDependencies": { "@aws-cdk/aws-apigatewayv2-alpha": "2.1.0-alpha.0", "@aws-cdk/aws-apigatewayv2-integrations-alpha": "2.1.0-alpha.0", - "@aws-sdk/client-cloudformation": "^3.478.0", - "@aws-sdk/client-dynamodb": "^3.478.0", - "@aws-sdk/client-ecr": "^3.478.0", - "@aws-sdk/client-ecs": "^3.478.0", - "@aws-sdk/client-eventbridge": "^3.478.0", - "@aws-sdk/client-iam": "^3.478.0", - "@aws-sdk/client-s3": "^3.478.0", - "@aws-sdk/client-secrets-manager": "^3.478.0", - "@aws-sdk/client-sfn": "^3.478.0", - "@aws-sdk/client-textract": "^3.478.0", - "@aws-sdk/lib-dynamodb": "^3.478.0", + "@aws-sdk/client-cloudformation": "^3.481.0", + "@aws-sdk/client-dynamodb": "^3.481.0", + "@aws-sdk/client-ecr": "^3.481.0", + "@aws-sdk/client-ecs": "^3.481.0", + "@aws-sdk/client-eventbridge": "^3.481.0", + "@aws-sdk/client-iam": "^3.481.0", + "@aws-sdk/client-s3": "^3.481.0", + "@aws-sdk/client-secrets-manager": "^3.481.0", + "@aws-sdk/client-sfn": "^3.481.0", + "@aws-sdk/client-textract": "^3.481.0", + "@aws-sdk/lib-dynamodb": "^3.481.0", "@types/aws-lambda": "^8.10.130", - "@types/jest": "^27", + "@types/jest": "^29", "@types/node": "^18", "@types/tsscmp": "^1.0.2", "@typescript-eslint/eslint-plugin": "^6", @@ -116,7 +116,7 @@ "eslint": "^8", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.1", - "jest": "^27", + "jest": "^29", "jest-junit": "^15", "jsii": "5.x", "jsii-diff": "^1.93.0", @@ -124,9 +124,9 @@ "jsii-pacmak": "^1.93.0", "jsii-rosetta": "5.x", "nock": "^13.4.0", - "projen": "^0.78.2", + "projen": "^0.78.4", "standard-version": "^9", - "ts-jest": "^27", + "ts-jest": "^29", "ts-node": "^10.9.2", "typescript": "^5.2.2" }, @@ -183,14 +183,13 @@ } ] ], - "preset": "ts-jest", - "globals": { - "ts-jest": { - "tsconfig": "tsconfig.dev.json" - } - }, - "moduleNameMapper": { - "axios": "axios/dist/node/axios.cjs" + "transform": { + "^.+\\.[t]sx?$": [ + "ts-jest", + { + "tsconfig": "tsconfig.dev.json" + } + ] } }, "types": "lib/index.d.ts", diff --git a/test/codecommit-mirror/__snapshots__/codecommit-mirror.test.ts.snap b/test/codecommit-mirror/__snapshots__/codecommit-mirror.test.ts.snap index 220235da..0b3f57ef 100644 --- a/test/codecommit-mirror/__snapshots__/codecommit-mirror.test.ts.snap +++ b/test/codecommit-mirror/__snapshots__/codecommit-mirror.test.ts.snap @@ -1,26 +1,26 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`CodeCommitMirror with a private GitHub repo 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "ClusterEB0386A7": Object { + "Resources": { + "ClusterEB0386A7": { "Type": "AWS::ECS::Cluster", }, - "ClusterVpcFAA3CEDF": Object { - "Properties": Object { + "ClusterVpcFAA3CEDF": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -28,10 +28,10 @@ Object { }, "Type": "AWS::EC2::VPC", }, - "ClusterVpcIGW1E358A6E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcIGW1E358A6E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -39,164 +39,164 @@ Object { }, "Type": "AWS::EC2::InternetGateway", }, - "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet1NATGateway0693C346", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet1SubnetA4EB481A": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet1SubnetA4EB481A": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.128.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPrivateSubnet2DefaultRoute011666AF": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet2DefaultRoute011666AF": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet2NATGateway00B24686", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet2RouteTable73064A66": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet2RouteTable73064A66": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.192.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet1EIP433C56EE": Object { - "Properties": Object { + "ClusterVpcPublicSubnet1EIP433C56EE": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -204,19 +204,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet1NATGateway0693C346": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet1NATGateway0693C346": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet1EIP433C56EE", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -224,83 +224,83 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet1RouteTable5594A636": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet1RouteTable5594A636": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet1SubnetA9F7E0A5": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet1SubnetA9F7E0A5": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.0.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet2DefaultRoute97446C8A": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet2DefaultRoute97446C8A": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet2EIP203DF3E5": Object { - "Properties": Object { + "ClusterVpcPublicSubnet2EIP203DF3E5": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -308,19 +308,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet2NATGateway00B24686": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet2NATGateway00B24686": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet2EIP203DF3E5", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -328,125 +328,125 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet2RouteTable7B43F18C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet2RouteTable7B43F18C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet2Subnet059113C4": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet2Subnet059113C4": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.64.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcVPCGW47AC17E9": Object { - "Properties": Object { - "InternetGatewayId": Object { + "ClusterVpcVPCGW47AC17E9": { + "Properties": { + "InternetGatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, - "MirrorRepositoryE95A2647": Object { - "Properties": Object { + "MirrorRepositoryE95A2647": { + "Properties": { "RepositoryDescription": "Mirror of private", "RepositoryName": "private", }, "Type": "AWS::CodeCommit::Repository", }, - "MirrorRule1106DA08": Object { - "Properties": Object { + "MirrorRule1106DA08": { + "Properties": { "ScheduleExpression": "rate(6 hours)", "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "ClusterEB0386A7", "Arn", ], }, - "EcsParameters": Object { + "EcsParameters": { "LaunchType": "FARGATE", - "NetworkConfiguration": Object { - "AwsVpcConfiguration": Object { + "NetworkConfiguration": { + "AwsVpcConfiguration": { "AssignPublicIp": "ENABLED", - "SecurityGroups": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroups": [ + { + "Fn::GetAtt": [ "MirrorTaskDefinitionSecurityGroup65F9CFFE", "GroupId", ], }, ], - "Subnets": Array [ - Object { + "Subnets": [ + { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, - Object { + { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, ], }, }, "TaskCount": 1, - "TaskDefinitionArn": Object { + "TaskDefinitionArn": { "Ref": "MirrorTaskDefinitionBBDEF66A", }, }, "Id": "Target0", "Input": "{}", - "RoleArn": Object { - "Fn::GetAtt": Array [ + "RoleArn": { + "Fn::GetAtt": [ "MirrorTaskDefinitionEventsRole3D0F75BD", "Arn", ], @@ -456,28 +456,28 @@ Object { }, "Type": "AWS::Events::Rule", }, - "MirrorTaskDefinitionBBDEF66A": Object { - "Properties": Object { - "ContainerDefinitions": Array [ - Object { - "Environment": Array [ - Object { + "MirrorTaskDefinitionBBDEF66A": { + "Properties": { + "ContainerDefinitions": [ + { + "Environment": [ + { "Name": "NAME", "Value": "private", }, - Object { + { "Name": "DESTINATION", - "Value": Object { - "Fn::Join": Array [ + "Value": { + "Fn::Join": [ "", - Array [ + [ "codecommit::", - Object { + { "Ref": "AWS::Region", }, "://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "MirrorRepositoryE95A2647", "Name", ], @@ -488,39 +488,39 @@ Object { }, ], "Essential": true, - "Image": Object { + "Image": { "Fn::Sub": "\${AWS::AccountId}.dkr.ecr.\${AWS::Region}.\${AWS::URLSuffix}/cdk-hnb659fds-container-assets-\${AWS::AccountId}-\${AWS::Region}:f1f0f73cf085b6c0337d5053dc994125b5aa5e85fd0f0f4408911a51692508da", }, - "LogConfiguration": Object { + "LogConfiguration": { "LogDriver": "awslogs", - "Options": Object { - "awslogs-group": Object { + "Options": { + "awslogs-group": { "Ref": "MirrorTaskDefinitionContainerLogGroup10AB3E0B", }, - "awslogs-region": Object { + "awslogs-region": { "Ref": "AWS::Region", }, "awslogs-stream-prefix": "private", }, }, "Name": "Container", - "Secrets": Array [ - Object { + "Secrets": [ + { "Name": "SOURCE", - "ValueFrom": Object { - "Fn::Join": Array [ + "ValueFrom": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":secretsmanager:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":secret:clone-url", @@ -532,8 +532,8 @@ Object { }, ], "Cpu": "256", - "ExecutionRoleArn": Object { - "Fn::GetAtt": Array [ + "ExecutionRoleArn": { + "Fn::GetAtt": [ "MirrorTaskDefinitionExecutionRole64876923", "Arn", ], @@ -541,11 +541,11 @@ Object { "Family": "MirrorTaskDefinitionA5220156", "Memory": "512", "NetworkMode": "awsvpc", - "RequiresCompatibilities": Array [ + "RequiresCompatibilities": [ "FARGATE", ], - "TaskRoleArn": Object { - "Fn::GetAtt": Array [ + "TaskRoleArn": { + "Fn::GetAtt": [ "MirrorTaskDefinitionTaskRole326A1D46", "Arn", ], @@ -553,22 +553,22 @@ Object { }, "Type": "AWS::ECS::TaskDefinition", }, - "MirrorTaskDefinitionContainerLogGroup10AB3E0B": Object { + "MirrorTaskDefinitionContainerLogGroup10AB3E0B": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "RetentionInDays": 60, }, "Type": "AWS::Logs::LogGroup", "UpdateReplacePolicy": "Retain", }, - "MirrorTaskDefinitionEventsRole3D0F75BD": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionEventsRole3D0F75BD": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "events.amazonaws.com", }, }, @@ -578,16 +578,16 @@ Object { }, "Type": "AWS::IAM::Role", }, - "MirrorTaskDefinitionEventsRoleDefaultPolicy1450513C": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionEventsRoleDefaultPolicy1450513C": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ecs:RunTask", - "Condition": Object { - "ArnEquals": Object { - "ecs:cluster": Object { - "Fn::GetAtt": Array [ + "Condition": { + "ArnEquals": { + "ecs:cluster": { + "Fn::GetAtt": [ "ClusterEB0386A7", "Arn", ], @@ -595,25 +595,25 @@ Object { }, }, "Effect": "Allow", - "Resource": Object { + "Resource": { "Ref": "MirrorTaskDefinitionBBDEF66A", }, }, - Object { + { "Action": "iam:PassRole", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorTaskDefinitionExecutionRole64876923", "Arn", ], }, }, - Object { + { "Action": "iam:PassRole", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorTaskDefinitionTaskRole326A1D46", "Arn", ], @@ -623,22 +623,22 @@ Object { "Version": "2012-10-17", }, "PolicyName": "MirrorTaskDefinitionEventsRoleDefaultPolicy1450513C", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "MirrorTaskDefinitionEventsRole3D0F75BD", }, ], }, "Type": "AWS::IAM::Policy", }, - "MirrorTaskDefinitionExecutionRole64876923": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionExecutionRole64876923": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ecs-tasks.amazonaws.com", }, }, @@ -648,79 +648,79 @@ Object { }, "Type": "AWS::IAM::Role", }, - "MirrorTaskDefinitionExecutionRoleDefaultPolicy40B4E0D8": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "MirrorTaskDefinitionExecutionRoleDefaultPolicy40B4E0D8": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ecr:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":repository/", - Object { + { "Fn::Sub": "cdk-hnb659fds-container-assets-\${AWS::AccountId}-\${AWS::Region}", }, ], ], }, }, - Object { + { "Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", ], "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorTaskDefinitionContainerLogGroup10AB3E0B", "Arn", ], }, }, - Object { - "Action": Array [ + { + "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":secretsmanager:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":secret:clone-url-??????", @@ -732,38 +732,38 @@ Object { "Version": "2012-10-17", }, "PolicyName": "MirrorTaskDefinitionExecutionRoleDefaultPolicy40B4E0D8", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "MirrorTaskDefinitionExecutionRole64876923", }, ], }, "Type": "AWS::IAM::Policy", }, - "MirrorTaskDefinitionSecurityGroup65F9CFFE": Object { - "Properties": Object { + "MirrorTaskDefinitionSecurityGroup65F9CFFE": { + "Properties": { "GroupDescription": "Default/Mirror/TaskDefinition/SecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "MirrorTaskDefinitionTaskRole326A1D46": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionTaskRole326A1D46": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ecs-tasks.amazonaws.com", }, }, @@ -773,15 +773,15 @@ Object { }, "Type": "AWS::IAM::Role", }, - "MirrorTaskDefinitionTaskRoleDefaultPolicy174D916C": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionTaskRoleDefaultPolicy174D916C": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "codecommit:GitPush", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorRepositoryE95A2647", "Arn", ], @@ -791,8 +791,8 @@ Object { "Version": "2012-10-17", }, "PolicyName": "MirrorTaskDefinitionTaskRoleDefaultPolicy174D916C", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "MirrorTaskDefinitionTaskRole326A1D46", }, ], @@ -800,22 +800,22 @@ Object { "Type": "AWS::IAM::Policy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -831,26 +831,26 @@ Object { `; exports[`CodeCommitMirror with a public GitHub repo 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "ClusterEB0386A7": Object { + "Resources": { + "ClusterEB0386A7": { "Type": "AWS::ECS::Cluster", }, - "ClusterVpcFAA3CEDF": Object { - "Properties": Object { + "ClusterVpcFAA3CEDF": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -858,10 +858,10 @@ Object { }, "Type": "AWS::EC2::VPC", }, - "ClusterVpcIGW1E358A6E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcIGW1E358A6E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -869,164 +869,164 @@ Object { }, "Type": "AWS::EC2::InternetGateway", }, - "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet1NATGateway0693C346", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet1SubnetA4EB481A": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet1SubnetA4EB481A": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.128.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPrivateSubnet2DefaultRoute011666AF": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet2DefaultRoute011666AF": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet2NATGateway00B24686", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet2RouteTable73064A66": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet2RouteTable73064A66": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.192.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet1EIP433C56EE": Object { - "Properties": Object { + "ClusterVpcPublicSubnet1EIP433C56EE": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -1034,19 +1034,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet1NATGateway0693C346": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet1NATGateway0693C346": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet1EIP433C56EE", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -1054,83 +1054,83 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet1RouteTable5594A636": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet1RouteTable5594A636": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet1SubnetA9F7E0A5": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet1SubnetA9F7E0A5": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.0.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet2DefaultRoute97446C8A": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet2DefaultRoute97446C8A": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet2EIP203DF3E5": Object { - "Properties": Object { + "ClusterVpcPublicSubnet2EIP203DF3E5": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -1138,19 +1138,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet2NATGateway00B24686": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet2NATGateway00B24686": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet2EIP203DF3E5", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -1158,125 +1158,125 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet2RouteTable7B43F18C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet2RouteTable7B43F18C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet2Subnet059113C4": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet2Subnet059113C4": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.64.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcVPCGW47AC17E9": Object { - "Properties": Object { - "InternetGatewayId": Object { + "ClusterVpcVPCGW47AC17E9": { + "Properties": { + "InternetGatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, - "MirrorRepositoryE95A2647": Object { - "Properties": Object { + "MirrorRepositoryE95A2647": { + "Properties": { "RepositoryDescription": "Mirror of cloudstructs", "RepositoryName": "cloudstructs", }, "Type": "AWS::CodeCommit::Repository", }, - "MirrorRule1106DA08": Object { - "Properties": Object { + "MirrorRule1106DA08": { + "Properties": { "ScheduleExpression": "cron(0 0 * * ? *)", "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "ClusterEB0386A7", "Arn", ], }, - "EcsParameters": Object { + "EcsParameters": { "LaunchType": "FARGATE", - "NetworkConfiguration": Object { - "AwsVpcConfiguration": Object { + "NetworkConfiguration": { + "AwsVpcConfiguration": { "AssignPublicIp": "ENABLED", - "SecurityGroups": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroups": [ + { + "Fn::GetAtt": [ "MirrorTaskDefinitionSecurityGroup65F9CFFE", "GroupId", ], }, ], - "Subnets": Array [ - Object { + "Subnets": [ + { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, - Object { + { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, ], }, }, "TaskCount": 1, - "TaskDefinitionArn": Object { + "TaskDefinitionArn": { "Ref": "MirrorTaskDefinitionBBDEF66A", }, }, "Id": "Target0", "Input": "{}", - "RoleArn": Object { - "Fn::GetAtt": Array [ + "RoleArn": { + "Fn::GetAtt": [ "MirrorTaskDefinitionEventsRole3D0F75BD", "Arn", ], @@ -1286,28 +1286,28 @@ Object { }, "Type": "AWS::Events::Rule", }, - "MirrorTaskDefinitionBBDEF66A": Object { - "Properties": Object { - "ContainerDefinitions": Array [ - Object { - "Environment": Array [ - Object { + "MirrorTaskDefinitionBBDEF66A": { + "Properties": { + "ContainerDefinitions": [ + { + "Environment": [ + { "Name": "NAME", "Value": "cloudstructs", }, - Object { + { "Name": "DESTINATION", - "Value": Object { - "Fn::Join": Array [ + "Value": { + "Fn::Join": [ "", - Array [ + [ "codecommit::", - Object { + { "Ref": "AWS::Region", }, "://", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "MirrorRepositoryE95A2647", "Name", ], @@ -1316,22 +1316,22 @@ Object { ], }, }, - Object { + { "Name": "SOURCE", "Value": "https://github.com/jogold/cloudstructs", }, ], "Essential": true, - "Image": Object { + "Image": { "Fn::Sub": "\${AWS::AccountId}.dkr.ecr.\${AWS::Region}.\${AWS::URLSuffix}/cdk-hnb659fds-container-assets-\${AWS::AccountId}-\${AWS::Region}:f1f0f73cf085b6c0337d5053dc994125b5aa5e85fd0f0f4408911a51692508da", }, - "LogConfiguration": Object { + "LogConfiguration": { "LogDriver": "awslogs", - "Options": Object { - "awslogs-group": Object { + "Options": { + "awslogs-group": { "Ref": "MirrorTaskDefinitionContainerLogGroup10AB3E0B", }, - "awslogs-region": Object { + "awslogs-region": { "Ref": "AWS::Region", }, "awslogs-stream-prefix": "cloudstructs", @@ -1341,8 +1341,8 @@ Object { }, ], "Cpu": "256", - "ExecutionRoleArn": Object { - "Fn::GetAtt": Array [ + "ExecutionRoleArn": { + "Fn::GetAtt": [ "MirrorTaskDefinitionExecutionRole64876923", "Arn", ], @@ -1350,11 +1350,11 @@ Object { "Family": "MirrorTaskDefinitionA5220156", "Memory": "512", "NetworkMode": "awsvpc", - "RequiresCompatibilities": Array [ + "RequiresCompatibilities": [ "FARGATE", ], - "TaskRoleArn": Object { - "Fn::GetAtt": Array [ + "TaskRoleArn": { + "Fn::GetAtt": [ "MirrorTaskDefinitionTaskRole326A1D46", "Arn", ], @@ -1362,22 +1362,22 @@ Object { }, "Type": "AWS::ECS::TaskDefinition", }, - "MirrorTaskDefinitionContainerLogGroup10AB3E0B": Object { + "MirrorTaskDefinitionContainerLogGroup10AB3E0B": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "RetentionInDays": 60, }, "Type": "AWS::Logs::LogGroup", "UpdateReplacePolicy": "Retain", }, - "MirrorTaskDefinitionEventsRole3D0F75BD": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionEventsRole3D0F75BD": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "events.amazonaws.com", }, }, @@ -1387,16 +1387,16 @@ Object { }, "Type": "AWS::IAM::Role", }, - "MirrorTaskDefinitionEventsRoleDefaultPolicy1450513C": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionEventsRoleDefaultPolicy1450513C": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ecs:RunTask", - "Condition": Object { - "ArnEquals": Object { - "ecs:cluster": Object { - "Fn::GetAtt": Array [ + "Condition": { + "ArnEquals": { + "ecs:cluster": { + "Fn::GetAtt": [ "ClusterEB0386A7", "Arn", ], @@ -1404,25 +1404,25 @@ Object { }, }, "Effect": "Allow", - "Resource": Object { + "Resource": { "Ref": "MirrorTaskDefinitionBBDEF66A", }, }, - Object { + { "Action": "iam:PassRole", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorTaskDefinitionExecutionRole64876923", "Arn", ], }, }, - Object { + { "Action": "iam:PassRole", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorTaskDefinitionTaskRole326A1D46", "Arn", ], @@ -1432,22 +1432,22 @@ Object { "Version": "2012-10-17", }, "PolicyName": "MirrorTaskDefinitionEventsRoleDefaultPolicy1450513C", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "MirrorTaskDefinitionEventsRole3D0F75BD", }, ], }, "Type": "AWS::IAM::Policy", }, - "MirrorTaskDefinitionExecutionRole64876923": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionExecutionRole64876923": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ecs-tasks.amazonaws.com", }, }, @@ -1457,54 +1457,54 @@ Object { }, "Type": "AWS::IAM::Role", }, - "MirrorTaskDefinitionExecutionRoleDefaultPolicy40B4E0D8": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "MirrorTaskDefinitionExecutionRoleDefaultPolicy40B4E0D8": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ecr:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":repository/", - Object { + { "Fn::Sub": "cdk-hnb659fds-container-assets-\${AWS::AccountId}-\${AWS::Region}", }, ], ], }, }, - Object { + { "Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", ], "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorTaskDefinitionContainerLogGroup10AB3E0B", "Arn", ], @@ -1514,38 +1514,38 @@ Object { "Version": "2012-10-17", }, "PolicyName": "MirrorTaskDefinitionExecutionRoleDefaultPolicy40B4E0D8", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "MirrorTaskDefinitionExecutionRole64876923", }, ], }, "Type": "AWS::IAM::Policy", }, - "MirrorTaskDefinitionSecurityGroup65F9CFFE": Object { - "Properties": Object { + "MirrorTaskDefinitionSecurityGroup65F9CFFE": { + "Properties": { "GroupDescription": "Default/Mirror/TaskDefinition/SecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "MirrorTaskDefinitionTaskRole326A1D46": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionTaskRole326A1D46": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ecs-tasks.amazonaws.com", }, }, @@ -1555,15 +1555,15 @@ Object { }, "Type": "AWS::IAM::Role", }, - "MirrorTaskDefinitionTaskRoleDefaultPolicy174D916C": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "MirrorTaskDefinitionTaskRoleDefaultPolicy174D916C": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "codecommit:GitPush", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "MirrorRepositoryE95A2647", "Arn", ], @@ -1573,8 +1573,8 @@ Object { "Version": "2012-10-17", }, "PolicyName": "MirrorTaskDefinitionTaskRoleDefaultPolicy174D916C", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "MirrorTaskDefinitionTaskRole326A1D46", }, ], @@ -1582,22 +1582,22 @@ Object { "Type": "AWS::IAM::Policy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/dmarc/__snapshots__/dmarc-reporter.test.ts.snap b/test/dmarc/__snapshots__/dmarc-reporter.test.ts.snap index 43400fc0..07734c10 100644 --- a/test/dmarc/__snapshots__/dmarc-reporter.test.ts.snap +++ b/test/dmarc/__snapshots__/dmarc-reporter.test.ts.snap @@ -1,50 +1,50 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`DmarcReporter 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "DmarcReporterDmarcRecord500F74C9": Object { - "Properties": Object { - "HostedZoneId": Object { + "Resources": { + "DmarcReporterDmarcRecord500F74C9": { + "Properties": { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "_dmarc.example.com.", - "ResourceRecords": Array [ - "\\"v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com,mailto:someaddress@dmarc-service.com,mailto:otheraddress@other-service.com; sp=quarantine; pct=55; adkim=r; aspf=s\\"", + "ResourceRecords": [ + ""v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com,mailto:someaddress@dmarc-service.com,mailto:otheraddress@other-service.com; sp=quarantine; pct=55; adkim=r; aspf=s"", ], "TTL": "1800", "Type": "TXT", }, "Type": "AWS::Route53::RecordSet", }, - "DmarcReporterEmailReceiverBucketF1700F35": Object { + "DmarcReporterEmailReceiverBucketF1700F35": { "DeletionPolicy": "Retain", - "Properties": Object { - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256", }, }, ], }, - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 1, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -54,32 +54,32 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "DmarcReporterEmailReceiverBucketPolicy7E4F847B": Object { - "Properties": Object { - "Bucket": Object { + "DmarcReporterEmailReceiverBucketPolicy7E4F847B": { + "Properties": { + "Bucket": { "Ref": "DmarcReporterEmailReceiverBucketF1700F35", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:PutObject", - "Condition": Object { - "StringEquals": Object { - "aws:Referer": Object { + "Condition": { + "StringEquals": { + "aws:Referer": { "Ref": "AWS::AccountId", }, }, }, "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ses.amazonaws.com", }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "DmarcReporterEmailReceiverBucketF1700F35", "Arn", ], @@ -95,26 +95,26 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "DmarcReporterEmailReceiverReceiptRuleA0500AF6": Object { - "DependsOn": Array [ + "DmarcReporterEmailReceiverReceiptRuleA0500AF6": { + "DependsOn": [ "DmarcReporterEmailReceiverBucketPolicy7E4F847B", ], - "Properties": Object { - "Rule": Object { - "Actions": Array [ - Object { - "S3Action": Object { - "BucketName": Object { + "Properties": { + "Rule": { + "Actions": [ + { + "S3Action": { + "BucketName": { "Ref": "DmarcReporterEmailReceiverBucketF1700F35", }, - "TopicArn": Object { + "TopicArn": { "Ref": "DmarcReporterEmailReceiverTopic85110845", }, }, }, ], "Enabled": true, - "Recipients": Array [ + "Recipients": [ "dmarc-reports@example.com", ], }, @@ -122,46 +122,46 @@ Object { }, "Type": "AWS::SES::ReceiptRule", }, - "DmarcReporterEmailReceiverTopic85110845": Object { + "DmarcReporterEmailReceiverTopic85110845": { "Type": "AWS::SNS::Topic", }, - "DmarcReporterEmailReceivers3AllowInvokeDmarcReporterEmailReceiverTopicB672F6604C5D9E00": Object { - "Properties": Object { + "DmarcReporterEmailReceivers3AllowInvokeDmarcReporterEmailReceiverTopicB672F6604C5D9E00": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "DmarcReporterEmailReceivers3DE5A5BB4", "Arn", ], }, "Principal": "sns.amazonaws.com", - "SourceArn": Object { + "SourceArn": { "Ref": "DmarcReporterEmailReceiverTopic85110845", }, }, "Type": "AWS::Lambda::Permission", }, - "DmarcReporterEmailReceivers3DE5A5BB4": Object { - "DependsOn": Array [ + "DmarcReporterEmailReceivers3DE5A5BB4": { + "DependsOn": [ "DmarcReporterEmailReceivers3ServiceRoleDefaultPolicy3B6AE52A", "DmarcReporterEmailReceivers3ServiceRole17AB0AE4", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "3d78437d64ccf325f4a2ea52c0f2ff10b36acb4bf8d1077b2ad1811284aa4b46.zip", }, "Description": "src/email-receiver/s3.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "DmarcReporterEmailReceivers3ServiceRole17AB0AE4", "Arn", ], @@ -170,24 +170,24 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "DmarcReporterEmailReceivers3EventInvokeConfig7BBE4497": Object { - "Properties": Object { - "DestinationConfig": Object { - "OnSuccess": Object { - "Destination": Object { - "Fn::Join": Array [ + "DmarcReporterEmailReceivers3EventInvokeConfig7BBE4497": { + "Properties": { + "DestinationConfig": { + "OnSuccess": { + "Destination": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":events:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":event-bus/default", @@ -196,25 +196,25 @@ Object { }, }, }, - "FunctionName": Object { + "FunctionName": { "Ref": "DmarcReporterEmailReceivers3DE5A5BB4", }, "Qualifier": "$LATEST", }, "Type": "AWS::Lambda::EventInvokeConfig", }, - "DmarcReporterEmailReceivers3EventInvokeConfigSuccessAllowEventRuleFn9E622E4A": Object { - "Properties": Object { + "DmarcReporterEmailReceivers3EventInvokeConfigSuccessAllowEventRuleFn9E622E4A": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "Fn9270CBC0", "Arn", ], }, "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ + "SourceArn": { + "Fn::GetAtt": [ "DmarcReporterEmailReceivers3EventInvokeConfigSuccessED23FE4E", "Arn", ], @@ -222,19 +222,19 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "DmarcReporterEmailReceivers3EventInvokeConfigSuccessED23FE4E": Object { - "Properties": Object { - "EventPattern": Object { - "detail-type": Array [ + "DmarcReporterEmailReceivers3EventInvokeConfigSuccessED23FE4E": { + "Properties": { + "EventPattern": { + "detail-type": [ "Lambda Function Invocation Result - Success", ], - "resources": Array [ - Object { - "Fn::Join": Array [ + "resources": [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "DmarcReporterEmailReceivers3DE5A5BB4", "Arn", ], @@ -244,15 +244,15 @@ Object { ], }, ], - "source": Array [ + "source": [ "lambda", ], }, "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "Fn9270CBC0", "Arn", ], @@ -264,22 +264,22 @@ Object { }, "Type": "AWS::Events::Rule", }, - "DmarcReporterEmailReceivers3LogRetention16D3E702": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "DmarcReporterEmailReceivers3LogRetention16D3E702": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "DmarcReporterEmailReceivers3DE5A5BB4", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -287,27 +287,27 @@ Object { }, "Type": "Custom::LogRetention", }, - "DmarcReporterEmailReceivers3ServiceRole17AB0AE4": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "DmarcReporterEmailReceivers3ServiceRole17AB0AE4": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -318,27 +318,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "DmarcReporterEmailReceivers3ServiceRoleDefaultPolicy3B6AE52A": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "DmarcReporterEmailReceivers3ServiceRoleDefaultPolicy3B6AE52A": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "events:PutEvents", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":events:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":event-bus/default", @@ -350,41 +350,41 @@ Object { "Version": "2012-10-17", }, "PolicyName": "DmarcReporterEmailReceivers3ServiceRoleDefaultPolicy3B6AE52A", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "DmarcReporterEmailReceivers3ServiceRole17AB0AE4", }, ], }, "Type": "AWS::IAM::Policy", }, - "DmarcReporterEmailReceivers3Topic123953AA": Object { - "Properties": Object { - "Endpoint": Object { - "Fn::GetAtt": Array [ + "DmarcReporterEmailReceivers3Topic123953AA": { + "Properties": { + "Endpoint": { + "Fn::GetAtt": [ "DmarcReporterEmailReceivers3DE5A5BB4", "Arn", ], }, "Protocol": "lambda", - "TopicArn": Object { + "TopicArn": { "Ref": "DmarcReporterEmailReceiverTopic85110845", }, }, "Type": "AWS::SNS::Subscription", }, - "Fn9270CBC0": Object { - "DependsOn": Array [ + "Fn9270CBC0": { + "DependsOn": [ "FnServiceRoleDefaultPolicyC6A839BF", "FnServiceRoleB9001A96", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "ZipFile": "export.handler = () => void;", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "FnServiceRoleB9001A96", "Arn", ], @@ -393,27 +393,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "FnServiceRoleB9001A96": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "FnServiceRoleB9001A96": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -424,30 +424,30 @@ Object { }, "Type": "AWS::IAM::Role", }, - "FnServiceRoleDefaultPolicyC6A839BF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "FnServiceRoleDefaultPolicyC6A839BF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "DmarcReporterEmailReceiverBucketF1700F35", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "DmarcReporterEmailReceiverBucketF1700F35", "Arn", ], @@ -462,35 +462,35 @@ Object { "Version": "2012-10-17", }, "PolicyName": "FnServiceRoleDefaultPolicyC6A839BF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "FnServiceRoleB9001A96", }, ], }, "Type": "AWS::IAM::Policy", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "example.com.", }, "Type": "AWS::Route53::HostedZone", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -499,27 +499,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -530,12 +530,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -546,8 +546,8 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], @@ -555,22 +555,22 @@ Object { "Type": "AWS::IAM::Policy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/ecs-service-roller/__snapshots__/ecs-service-roller.test.ts.snap b/test/ecs-service-roller/__snapshots__/ecs-service-roller.test.ts.snap index 200bf9ad..de212ac5 100644 --- a/test/ecs-service-roller/__snapshots__/ecs-service-roller.test.ts.snap +++ b/test/ecs-service-roller/__snapshots__/ecs-service-roller.test.ts.snap @@ -1,30 +1,30 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`EcsServiceRoller with default 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620": Object { - "DependsOn": Array [ + "Resources": { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620": { + "DependsOn": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1", "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "1de7291df4432bda23037e2ef9f4bc0651aab3c7ce9bf737ac7f2f8c32e99115.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", "Arn", ], @@ -33,27 +33,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -64,36 +64,36 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ecs:UpdateService", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ecs:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":service/", - Object { + { "Ref": "ClusterEB0386A7", }, "/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ServiceD69D759B", "Name", ], @@ -106,25 +106,25 @@ Object { "Version": "2012-10-17", }, "PolicyName": "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", }, ], }, "Type": "AWS::IAM::Policy", }, - "ClusterEB0386A7": Object { + "ClusterEB0386A7": { "Type": "AWS::ECS::Cluster", }, - "ClusterVpcFAA3CEDF": Object { - "Properties": Object { + "ClusterVpcFAA3CEDF": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -132,10 +132,10 @@ Object { }, "Type": "AWS::EC2::VPC", }, - "ClusterVpcIGW1E358A6E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcIGW1E358A6E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -143,164 +143,164 @@ Object { }, "Type": "AWS::EC2::InternetGateway", }, - "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet1NATGateway0693C346", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet1SubnetA4EB481A": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet1SubnetA4EB481A": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.128.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPrivateSubnet2DefaultRoute011666AF": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet2DefaultRoute011666AF": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet2NATGateway00B24686", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet2RouteTable73064A66": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet2RouteTable73064A66": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.192.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet1EIP433C56EE": Object { - "Properties": Object { + "ClusterVpcPublicSubnet1EIP433C56EE": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -308,19 +308,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet1NATGateway0693C346": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet1NATGateway0693C346": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet1EIP433C56EE", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -328,83 +328,83 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet1RouteTable5594A636": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet1RouteTable5594A636": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet1SubnetA9F7E0A5": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet1SubnetA9F7E0A5": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.0.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet2DefaultRoute97446C8A": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet2DefaultRoute97446C8A": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet2EIP203DF3E5": Object { - "Properties": Object { + "ClusterVpcPublicSubnet2EIP203DF3E5": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -412,19 +412,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet2NATGateway00B24686": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet2NATGateway00B24686": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet2EIP203DF3E5", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -432,86 +432,86 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet2RouteTable7B43F18C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet2RouteTable7B43F18C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet2Subnet059113C4": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet2Subnet059113C4": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.64.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcVPCGW47AC17E9": Object { - "Properties": Object { - "InternetGatewayId": Object { + "ClusterVpcVPCGW47AC17E9": { + "Properties": { + "InternetGatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, - "EcsServiceRollerRuleAllowEventRuleEcsServiceRollerRuleRuleTarget0Handler42DA3E676E969203": Object { - "Properties": Object { + "EcsServiceRollerRuleAllowEventRuleEcsServiceRollerRuleRuleTarget0Handler42DA3E676E969203": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620", "Arn", ], }, "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ + "SourceArn": { + "Fn::GetAtt": [ "EcsServiceRollerRuleFD890AC2", "Arn", ], @@ -519,35 +519,35 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "EcsServiceRollerRuleFD890AC2": Object { - "Properties": Object { + "EcsServiceRollerRuleFD890AC2": { + "Properties": { "ScheduleExpression": "cron(0 0 * * ? *)", "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620", "Arn", ], }, "Id": "Target0", - "Input": Object { - "Fn::Join": Array [ + "Input": { + "Fn::Join": [ "", - Array [ - "{\\"service\\":\\"ECS\\",\\"action\\":\\"updateService\\",\\"parameters\\":{\\"service\\":\\"", - Object { - "Fn::GetAtt": Array [ + [ + "{"service":"ECS","action":"updateService","parameters":{"service":"", + { + "Fn::GetAtt": [ "ServiceD69D759B", "Name", ], }, - "\\",\\"cluster\\":\\"", - Object { + "","cluster":"", + { "Ref": "ClusterEB0386A7", }, - "\\",\\"forceNewDeployment\\":true}}", + "","forceNewDeployment":true}}", ], ], }, @@ -556,64 +556,64 @@ Object { }, "Type": "AWS::Events::Rule", }, - "ServiceD69D759B": Object { - "Properties": Object { - "Cluster": Object { + "ServiceD69D759B": { + "Properties": { + "Cluster": { "Ref": "ClusterEB0386A7", }, - "DeploymentConfiguration": Object { + "DeploymentConfiguration": { "MaximumPercent": 200, "MinimumHealthyPercent": 50, }, "EnableECSManagedTags": false, "LaunchType": "FARGATE", - "NetworkConfiguration": Object { - "AwsvpcConfiguration": Object { + "NetworkConfiguration": { + "AwsvpcConfiguration": { "AssignPublicIp": "DISABLED", - "SecurityGroups": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroups": [ + { + "Fn::GetAtt": [ "ServiceSecurityGroupC96ED6A7", "GroupId", ], }, ], - "Subnets": Array [ - Object { + "Subnets": [ + { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, - Object { + { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, ], }, }, - "TaskDefinition": Object { + "TaskDefinition": { "Ref": "TaskDef54694570", }, }, "Type": "AWS::ECS::Service", }, - "ServiceSecurityGroupC96ED6A7": Object { - "Properties": Object { + "ServiceSecurityGroupC96ED6A7": { + "Properties": { "GroupDescription": "Default/Service/SecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "TaskDef54694570": Object { - "Properties": Object { - "ContainerDefinitions": Array [ - Object { + "TaskDef54694570": { + "Properties": { + "ContainerDefinitions": [ + { "Essential": true, "Image": "my-image", "Name": "Container", @@ -623,11 +623,11 @@ Object { "Family": "TaskDef", "Memory": "512", "NetworkMode": "awsvpc", - "RequiresCompatibilities": Array [ + "RequiresCompatibilities": [ "FARGATE", ], - "TaskRoleArn": Object { - "Fn::GetAtt": Array [ + "TaskRoleArn": { + "Fn::GetAtt": [ "TaskDefTaskRole1EDB4A67", "Arn", ], @@ -635,14 +635,14 @@ Object { }, "Type": "AWS::ECS::TaskDefinition", }, - "TaskDefTaskRole1EDB4A67": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "TaskDefTaskRole1EDB4A67": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ecs-tasks.amazonaws.com", }, }, @@ -653,22 +653,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -684,30 +684,30 @@ Object { `; exports[`EcsServiceRoller with rule 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620": Object { - "DependsOn": Array [ + "Resources": { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620": { + "DependsOn": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1", "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "1de7291df4432bda23037e2ef9f4bc0651aab3c7ce9bf737ac7f2f8c32e99115.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", "Arn", ], @@ -716,27 +716,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -747,36 +747,36 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ecs:UpdateService", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ecs:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":service/", - Object { + { "Ref": "ClusterEB0386A7", }, "/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ServiceD69D759B", "Name", ], @@ -789,25 +789,25 @@ Object { "Version": "2012-10-17", }, "PolicyName": "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", }, ], }, "Type": "AWS::IAM::Policy", }, - "ClusterEB0386A7": Object { + "ClusterEB0386A7": { "Type": "AWS::ECS::Cluster", }, - "ClusterVpcFAA3CEDF": Object { - "Properties": Object { + "ClusterVpcFAA3CEDF": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -815,10 +815,10 @@ Object { }, "Type": "AWS::EC2::VPC", }, - "ClusterVpcIGW1E358A6E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcIGW1E358A6E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -826,164 +826,164 @@ Object { }, "Type": "AWS::EC2::InternetGateway", }, - "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet1NATGateway0693C346", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet1SubnetA4EB481A": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet1SubnetA4EB481A": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.128.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPrivateSubnet2DefaultRoute011666AF": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet2DefaultRoute011666AF": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet2NATGateway00B24686", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet2RouteTable73064A66": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet2RouteTable73064A66": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.192.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet1EIP433C56EE": Object { - "Properties": Object { + "ClusterVpcPublicSubnet1EIP433C56EE": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -991,19 +991,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet1NATGateway0693C346": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet1NATGateway0693C346": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet1EIP433C56EE", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -1011,83 +1011,83 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet1RouteTable5594A636": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet1RouteTable5594A636": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet1SubnetA9F7E0A5": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet1SubnetA9F7E0A5": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.0.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet2DefaultRoute97446C8A": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet2DefaultRoute97446C8A": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet2EIP203DF3E5": Object { - "Properties": Object { + "ClusterVpcPublicSubnet2EIP203DF3E5": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -1095,19 +1095,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet2NATGateway00B24686": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet2NATGateway00B24686": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet2EIP203DF3E5", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -1115,107 +1115,107 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet2RouteTable7B43F18C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet2RouteTable7B43F18C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet2Subnet059113C4": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet2Subnet059113C4": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.64.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcVPCGW47AC17E9": Object { - "Properties": Object { - "InternetGatewayId": Object { + "ClusterVpcVPCGW47AC17E9": { + "Properties": { + "InternetGatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, - "Rule4C995B7F": Object { - "Properties": Object { - "EventPattern": Object { - "detail": Array [ + "Rule4C995B7F": { + "Properties": { + "EventPattern": { + "detail": [ "detail", ], }, "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620", "Arn", ], }, "Id": "Target0", - "Input": Object { - "Fn::Join": Array [ + "Input": { + "Fn::Join": [ "", - Array [ - "{\\"service\\":\\"ECS\\",\\"action\\":\\"updateService\\",\\"parameters\\":{\\"service\\":\\"", - Object { - "Fn::GetAtt": Array [ + [ + "{"service":"ECS","action":"updateService","parameters":{"service":"", + { + "Fn::GetAtt": [ "ServiceD69D759B", "Name", ], }, - "\\",\\"cluster\\":\\"", - Object { + "","cluster":"", + { "Ref": "ClusterEB0386A7", }, - "\\",\\"forceNewDeployment\\":true}}", + "","forceNewDeployment":true}}", ], ], }, @@ -1224,18 +1224,18 @@ Object { }, "Type": "AWS::Events::Rule", }, - "RuleAllowEventRuleRuleRuleTarget0Handler2041339A45E733B9": Object { - "Properties": Object { + "RuleAllowEventRuleRuleRuleTarget0Handler2041339A45E733B9": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620", "Arn", ], }, "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ + "SourceArn": { + "Fn::GetAtt": [ "Rule4C995B7F", "Arn", ], @@ -1243,64 +1243,64 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "ServiceD69D759B": Object { - "Properties": Object { - "Cluster": Object { + "ServiceD69D759B": { + "Properties": { + "Cluster": { "Ref": "ClusterEB0386A7", }, - "DeploymentConfiguration": Object { + "DeploymentConfiguration": { "MaximumPercent": 200, "MinimumHealthyPercent": 50, }, "EnableECSManagedTags": false, "LaunchType": "FARGATE", - "NetworkConfiguration": Object { - "AwsvpcConfiguration": Object { + "NetworkConfiguration": { + "AwsvpcConfiguration": { "AssignPublicIp": "DISABLED", - "SecurityGroups": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroups": [ + { + "Fn::GetAtt": [ "ServiceSecurityGroupC96ED6A7", "GroupId", ], }, ], - "Subnets": Array [ - Object { + "Subnets": [ + { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, - Object { + { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, ], }, }, - "TaskDefinition": Object { + "TaskDefinition": { "Ref": "TaskDef54694570", }, }, "Type": "AWS::ECS::Service", }, - "ServiceSecurityGroupC96ED6A7": Object { - "Properties": Object { + "ServiceSecurityGroupC96ED6A7": { + "Properties": { "GroupDescription": "Default/Service/SecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "TaskDef54694570": Object { - "Properties": Object { - "ContainerDefinitions": Array [ - Object { + "TaskDef54694570": { + "Properties": { + "ContainerDefinitions": [ + { "Essential": true, "Image": "my-image", "Name": "Container", @@ -1310,11 +1310,11 @@ Object { "Family": "TaskDef", "Memory": "512", "NetworkMode": "awsvpc", - "RequiresCompatibilities": Array [ + "RequiresCompatibilities": [ "FARGATE", ], - "TaskRoleArn": Object { - "Fn::GetAtt": Array [ + "TaskRoleArn": { + "Fn::GetAtt": [ "TaskDefTaskRole1EDB4A67", "Arn", ], @@ -1322,14 +1322,14 @@ Object { }, "Type": "AWS::ECS::TaskDefinition", }, - "TaskDefTaskRole1EDB4A67": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "TaskDefTaskRole1EDB4A67": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ecs-tasks.amazonaws.com", }, }, @@ -1340,22 +1340,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -1371,30 +1371,30 @@ Object { `; exports[`EcsServiceRoller with schedule 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620": Object { - "DependsOn": Array [ + "Resources": { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620": { + "DependsOn": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1", "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "1de7291df4432bda23037e2ef9f4bc0651aab3c7ce9bf737ac7f2f8c32e99115.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", "Arn", ], @@ -1403,27 +1403,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -1434,36 +1434,36 @@ Object { }, "Type": "AWS::IAM::Role", }, - "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "ecs:UpdateService", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ecs:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":service/", - Object { + { "Ref": "ClusterEB0386A7", }, "/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ServiceD69D759B", "Name", ], @@ -1476,25 +1476,25 @@ Object { "Version": "2012-10-17", }, "PolicyName": "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRoleDefaultPolicy4D43A7C1", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWSb4cf1abd4e4f4bc699441af7ccd9ec37ServiceRole9FFE9C50", }, ], }, "Type": "AWS::IAM::Policy", }, - "ClusterEB0386A7": Object { + "ClusterEB0386A7": { "Type": "AWS::ECS::Cluster", }, - "ClusterVpcFAA3CEDF": Object { - "Properties": Object { + "ClusterVpcFAA3CEDF": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -1502,10 +1502,10 @@ Object { }, "Type": "AWS::EC2::VPC", }, - "ClusterVpcIGW1E358A6E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcIGW1E358A6E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc", }, @@ -1513,164 +1513,164 @@ Object { }, "Type": "AWS::EC2::InternetGateway", }, - "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet1DefaultRoute3B4D40DD": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet1NATGateway0693C346", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet1RouteTableAssociation9B8A88D9": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet1RouteTable5AAEDA3F", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet1SubnetA4EB481A": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet1SubnetA4EB481A": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.128.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPrivateSubnet2DefaultRoute011666AF": Object { - "Properties": Object { + "ClusterVpcPrivateSubnet2DefaultRoute011666AF": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "ClusterVpcPublicSubnet2NATGateway00B24686", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPrivateSubnet2RouteTable73064A66": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPrivateSubnet2RouteTable73064A66": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPrivateSubnet2RouteTableAssociationFB21349E": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPrivateSubnet2RouteTable73064A66", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPrivateSubnet2SubnetBD1ECB6E": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.192.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet1DefaultRoute62DA4B4B": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet1EIP433C56EE": Object { - "Properties": Object { + "ClusterVpcPublicSubnet1EIP433C56EE": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -1678,19 +1678,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet1NATGateway0693C346": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet1NATGateway0693C346": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet1EIP433C56EE", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, @@ -1698,83 +1698,83 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet1RouteTable5594A636": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet1RouteTable5594A636": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet1RouteTableAssociation0FBEF1F4": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet1RouteTable5594A636", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet1SubnetA9F7E0A5", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet1SubnetA9F7E0A5": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet1SubnetA9F7E0A5": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.0.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcPublicSubnet2DefaultRoute97446C8A": Object { - "DependsOn": Array [ + "ClusterVpcPublicSubnet2DefaultRoute97446C8A": { + "DependsOn": [ "ClusterVpcVPCGW47AC17E9", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, }, "Type": "AWS::EC2::Route", }, - "ClusterVpcPublicSubnet2EIP203DF3E5": Object { - "Properties": Object { + "ClusterVpcPublicSubnet2EIP203DF3E5": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -1782,19 +1782,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "ClusterVpcPublicSubnet2NATGateway00B24686": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "ClusterVpcPublicSubnet2NATGateway00B24686": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "ClusterVpcPublicSubnet2EIP203DF3E5", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, @@ -1802,86 +1802,86 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "ClusterVpcPublicSubnet2RouteTable7B43F18C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "ClusterVpcPublicSubnet2RouteTable7B43F18C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::RouteTable", }, - "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": Object { - "Properties": Object { - "RouteTableId": Object { + "ClusterVpcPublicSubnet2RouteTableAssociation8446B27D": { + "Properties": { + "RouteTableId": { "Ref": "ClusterVpcPublicSubnet2RouteTable7B43F18C", }, - "SubnetId": Object { + "SubnetId": { "Ref": "ClusterVpcPublicSubnet2Subnet059113C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "ClusterVpcPublicSubnet2Subnet059113C4": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "ClusterVpcPublicSubnet2Subnet059113C4": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.64.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Default/Cluster/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::Subnet", }, - "ClusterVpcVPCGW47AC17E9": Object { - "Properties": Object { - "InternetGatewayId": Object { + "ClusterVpcVPCGW47AC17E9": { + "Properties": { + "InternetGatewayId": { "Ref": "ClusterVpcIGW1E358A6E", }, - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, - "EcsServiceRollerRuleAllowEventRuleEcsServiceRollerRuleRuleTarget0Handler42DA3E676E969203": Object { - "Properties": Object { + "EcsServiceRollerRuleAllowEventRuleEcsServiceRollerRuleRuleTarget0Handler42DA3E676E969203": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620", "Arn", ], }, "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ + "SourceArn": { + "Fn::GetAtt": [ "EcsServiceRollerRuleFD890AC2", "Arn", ], @@ -1889,35 +1889,35 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "EcsServiceRollerRuleFD890AC2": Object { - "Properties": Object { + "EcsServiceRollerRuleFD890AC2": { + "Properties": { "ScheduleExpression": "rate(5 hours)", "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "AWSb4cf1abd4e4f4bc699441af7ccd9ec371511E620", "Arn", ], }, "Id": "Target0", - "Input": Object { - "Fn::Join": Array [ + "Input": { + "Fn::Join": [ "", - Array [ - "{\\"service\\":\\"ECS\\",\\"action\\":\\"updateService\\",\\"parameters\\":{\\"service\\":\\"", - Object { - "Fn::GetAtt": Array [ + [ + "{"service":"ECS","action":"updateService","parameters":{"service":"", + { + "Fn::GetAtt": [ "ServiceD69D759B", "Name", ], }, - "\\",\\"cluster\\":\\"", - Object { + "","cluster":"", + { "Ref": "ClusterEB0386A7", }, - "\\",\\"forceNewDeployment\\":true}}", + "","forceNewDeployment":true}}", ], ], }, @@ -1926,64 +1926,64 @@ Object { }, "Type": "AWS::Events::Rule", }, - "ServiceD69D759B": Object { - "Properties": Object { - "Cluster": Object { + "ServiceD69D759B": { + "Properties": { + "Cluster": { "Ref": "ClusterEB0386A7", }, - "DeploymentConfiguration": Object { + "DeploymentConfiguration": { "MaximumPercent": 200, "MinimumHealthyPercent": 50, }, "EnableECSManagedTags": false, "LaunchType": "FARGATE", - "NetworkConfiguration": Object { - "AwsvpcConfiguration": Object { + "NetworkConfiguration": { + "AwsvpcConfiguration": { "AssignPublicIp": "DISABLED", - "SecurityGroups": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroups": [ + { + "Fn::GetAtt": [ "ServiceSecurityGroupC96ED6A7", "GroupId", ], }, ], - "Subnets": Array [ - Object { + "Subnets": [ + { "Ref": "ClusterVpcPrivateSubnet1SubnetA4EB481A", }, - Object { + { "Ref": "ClusterVpcPrivateSubnet2SubnetBD1ECB6E", }, ], }, }, - "TaskDefinition": Object { + "TaskDefinition": { "Ref": "TaskDef54694570", }, }, "Type": "AWS::ECS::Service", }, - "ServiceSecurityGroupC96ED6A7": Object { - "Properties": Object { + "ServiceSecurityGroupC96ED6A7": { + "Properties": { "GroupDescription": "Default/Service/SecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "ClusterVpcFAA3CEDF", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "TaskDef54694570": Object { - "Properties": Object { - "ContainerDefinitions": Array [ - Object { + "TaskDef54694570": { + "Properties": { + "ContainerDefinitions": [ + { "Essential": true, "Image": "my-image", "Name": "Container", @@ -1993,11 +1993,11 @@ Object { "Family": "TaskDef", "Memory": "512", "NetworkMode": "awsvpc", - "RequiresCompatibilities": Array [ + "RequiresCompatibilities": [ "FARGATE", ], - "TaskRoleArn": Object { - "Fn::GetAtt": Array [ + "TaskRoleArn": { + "Fn::GetAtt": [ "TaskDefTaskRole1EDB4A67", "Arn", ], @@ -2005,14 +2005,14 @@ Object { }, "Type": "AWS::ECS::TaskDefinition", }, - "TaskDefTaskRole1EDB4A67": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "TaskDefTaskRole1EDB4A67": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ecs-tasks.amazonaws.com", }, }, @@ -2023,22 +2023,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/email-receiver/__snapshots__/email-receiver.test.ts.snap b/test/email-receiver/__snapshots__/email-receiver.test.ts.snap index a9dec462..7b765dc4 100644 --- a/test/email-receiver/__snapshots__/email-receiver.test.ts.snap +++ b/test/email-receiver/__snapshots__/email-receiver.test.ts.snap @@ -1,36 +1,36 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`EmailReceiver 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "EmailReceiverBucketC6897915": Object { + "Resources": { + "EmailReceiverBucketC6897915": { "DeletionPolicy": "Retain", - "Properties": Object { - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256", }, }, ], }, - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 1, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -40,32 +40,32 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "EmailReceiverBucketPolicyDCA90FAB": Object { - "Properties": Object { - "Bucket": Object { + "EmailReceiverBucketPolicyDCA90FAB": { + "Properties": { + "Bucket": { "Ref": "EmailReceiverBucketC6897915", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:PutObject", - "Condition": Object { - "StringEquals": Object { - "aws:Referer": Object { + "Condition": { + "StringEquals": { + "aws:Referer": { "Ref": "AWS::AccountId", }, }, }, "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "ses.amazonaws.com", }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "EmailReceiverBucketC6897915", "Arn", ], @@ -81,18 +81,18 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "EmailReceiverReceiptRule44F9F83D": Object { - "DependsOn": Array [ + "EmailReceiverReceiptRule44F9F83D": { + "DependsOn": [ "EmailReceiverBucketPolicyDCA90FAB", "EmailReceiverwhitelistAllowSesAEC8E5FA", ], - "Properties": Object { - "Rule": Object { - "Actions": Array [ - Object { - "LambdaAction": Object { - "FunctionArn": Object { - "Fn::GetAtt": Array [ + "Properties": { + "Rule": { + "Actions": [ + { + "LambdaAction": { + "FunctionArn": { + "Fn::GetAtt": [ "EmailReceiverwhitelist484EFAE6", "Arn", ], @@ -100,19 +100,19 @@ Object { "InvocationType": "RequestResponse", }, }, - Object { - "S3Action": Object { - "BucketName": Object { + { + "S3Action": { + "BucketName": { "Ref": "EmailReceiverBucketC6897915", }, - "TopicArn": Object { + "TopicArn": { "Ref": "EmailReceiverTopic0009FDF2", }, }, }, ], "Enabled": true, - "Recipients": Array [ + "Recipients": [ "support@cloudstructs.com", ], }, @@ -120,46 +120,46 @@ Object { }, "Type": "AWS::SES::ReceiptRule", }, - "EmailReceiverTopic0009FDF2": Object { + "EmailReceiverTopic0009FDF2": { "Type": "AWS::SNS::Topic", }, - "EmailReceivers3AllowInvokeEmailReceiverTopic8053BC7913DB5DD5": Object { - "Properties": Object { + "EmailReceivers3AllowInvokeEmailReceiverTopic8053BC7913DB5DD5": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "EmailReceivers3E240E67A", "Arn", ], }, "Principal": "sns.amazonaws.com", - "SourceArn": Object { + "SourceArn": { "Ref": "EmailReceiverTopic0009FDF2", }, }, "Type": "AWS::Lambda::Permission", }, - "EmailReceivers3E240E67A": Object { - "DependsOn": Array [ + "EmailReceivers3E240E67A": { + "DependsOn": [ "EmailReceivers3ServiceRoleDefaultPolicy0E58628F", "EmailReceivers3ServiceRoleD73560D7", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "3d78437d64ccf325f4a2ea52c0f2ff10b36acb4bf8d1077b2ad1811284aa4b46.zip", }, "Description": "src/email-receiver/s3.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "EmailReceivers3ServiceRoleD73560D7", "Arn", ], @@ -168,24 +168,24 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "EmailReceivers3EventInvokeConfig0DCB7AB9": Object { - "Properties": Object { - "DestinationConfig": Object { - "OnSuccess": Object { - "Destination": Object { - "Fn::Join": Array [ + "EmailReceivers3EventInvokeConfig0DCB7AB9": { + "Properties": { + "DestinationConfig": { + "OnSuccess": { + "Destination": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":events:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":event-bus/default", @@ -194,25 +194,25 @@ Object { }, }, }, - "FunctionName": Object { + "FunctionName": { "Ref": "EmailReceivers3E240E67A", }, "Qualifier": "$LATEST", }, "Type": "AWS::Lambda::EventInvokeConfig", }, - "EmailReceivers3EventInvokeConfigSuccessAllowEventRuleFnA881C47A": Object { - "Properties": Object { + "EmailReceivers3EventInvokeConfigSuccessAllowEventRuleFnA881C47A": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "Fn9270CBC0", "Arn", ], }, "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ + "SourceArn": { + "Fn::GetAtt": [ "EmailReceivers3EventInvokeConfigSuccessDE8DA36F", "Arn", ], @@ -220,19 +220,19 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "EmailReceivers3EventInvokeConfigSuccessDE8DA36F": Object { - "Properties": Object { - "EventPattern": Object { - "detail-type": Array [ + "EmailReceivers3EventInvokeConfigSuccessDE8DA36F": { + "Properties": { + "EventPattern": { + "detail-type": [ "Lambda Function Invocation Result - Success", ], - "resources": Array [ - Object { - "Fn::Join": Array [ + "resources": [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "EmailReceivers3E240E67A", "Arn", ], @@ -242,15 +242,15 @@ Object { ], }, ], - "source": Array [ + "source": [ "lambda", ], }, "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "Fn9270CBC0", "Arn", ], @@ -262,22 +262,22 @@ Object { }, "Type": "AWS::Events::Rule", }, - "EmailReceivers3LogRetention119F5A8B": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "EmailReceivers3LogRetention119F5A8B": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "EmailReceivers3E240E67A", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -285,27 +285,27 @@ Object { }, "Type": "Custom::LogRetention", }, - "EmailReceivers3ServiceRoleD73560D7": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "EmailReceivers3ServiceRoleD73560D7": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -316,27 +316,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "EmailReceivers3ServiceRoleDefaultPolicy0E58628F": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "EmailReceivers3ServiceRoleDefaultPolicy0E58628F": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "events:PutEvents", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":events:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":event-bus/default", @@ -348,50 +348,50 @@ Object { "Version": "2012-10-17", }, "PolicyName": "EmailReceivers3ServiceRoleDefaultPolicy0E58628F", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "EmailReceivers3ServiceRoleD73560D7", }, ], }, "Type": "AWS::IAM::Policy", }, - "EmailReceivers3Topic1B449381": Object { - "Properties": Object { - "Endpoint": Object { - "Fn::GetAtt": Array [ + "EmailReceivers3Topic1B449381": { + "Properties": { + "Endpoint": { + "Fn::GetAtt": [ "EmailReceivers3E240E67A", "Arn", ], }, "Protocol": "lambda", - "TopicArn": Object { + "TopicArn": { "Ref": "EmailReceiverTopic0009FDF2", }, }, "Type": "AWS::SNS::Subscription", }, - "EmailReceiverwhitelist484EFAE6": Object { - "DependsOn": Array [ + "EmailReceiverwhitelist484EFAE6": { + "DependsOn": [ "EmailReceiverwhitelistServiceRoleBF0A3250", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "2f040bbe2b6a11136d43cd35c29e11397d9f27344f65b7324551fc77410a902e.zip", }, "Description": "src/email-receiver/whitelist.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "SOURCE_WHITELIST": "@amazon.com$", }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "EmailReceiverwhitelistServiceRoleBF0A3250", "Arn", ], @@ -400,38 +400,38 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "EmailReceiverwhitelistAllowSesAEC8E5FA": Object { - "Properties": Object { + "EmailReceiverwhitelistAllowSesAEC8E5FA": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "EmailReceiverwhitelist484EFAE6", "Arn", ], }, "Principal": "ses.amazonaws.com", - "SourceAccount": Object { + "SourceAccount": { "Ref": "AWS::AccountId", }, }, "Type": "AWS::Lambda::Permission", }, - "EmailReceiverwhitelistLogRetention6B34DA74": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "EmailReceiverwhitelistLogRetention6B34DA74": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "EmailReceiverwhitelist484EFAE6", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -439,27 +439,27 @@ Object { }, "Type": "Custom::LogRetention", }, - "EmailReceiverwhitelistServiceRoleBF0A3250": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "EmailReceiverwhitelistServiceRoleBF0A3250": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -470,18 +470,18 @@ Object { }, "Type": "AWS::IAM::Role", }, - "Fn9270CBC0": Object { - "DependsOn": Array [ + "Fn9270CBC0": { + "DependsOn": [ "FnServiceRoleDefaultPolicyC6A839BF", "FnServiceRoleB9001A96", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "ZipFile": "export.handler = () => void;", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "FnServiceRoleB9001A96", "Arn", ], @@ -490,27 +490,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "FnServiceRoleB9001A96": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "FnServiceRoleB9001A96": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -521,30 +521,30 @@ Object { }, "Type": "AWS::IAM::Role", }, - "FnServiceRoleDefaultPolicyC6A839BF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "FnServiceRoleDefaultPolicyC6A839BF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", ], "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "EmailReceiverBucketC6897915", "Arn", ], }, - Object { - "Fn::Join": Array [ + { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "EmailReceiverBucketC6897915", "Arn", ], @@ -559,29 +559,29 @@ Object { "Version": "2012-10-17", }, "PolicyName": "FnServiceRoleDefaultPolicyC6A839BF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "FnServiceRoleB9001A96", }, ], }, "Type": "AWS::IAM::Policy", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -590,27 +590,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -621,12 +621,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -637,8 +637,8 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], @@ -646,22 +646,22 @@ Object { "Type": "AWS::IAM::Policy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/saml-identity-provider/__snapshots__/saml-identity-provider.test.ts.snap b/test/saml-identity-provider/__snapshots__/saml-identity-provider.test.ts.snap index 4f8942c3..1956bd9d 100644 --- a/test/saml-identity-provider/__snapshots__/saml-identity-provider.test.ts.snap +++ b/test/saml-identity-provider/__snapshots__/saml-identity-provider.test.ts.snap @@ -1,29 +1,29 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`SamlIdentityProvider 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "AWS679f53fac002430cb0da5b7982bd22872D164C4C": Object { - "DependsOn": Array [ + "Resources": { + "AWS679f53fac002430cb0da5b7982bd22872D164C4C": { + "DependsOn": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "11d371859e49f3b1a49896583254890801a40beada56e4c84409a179a221e2e2.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", "Arn", ], @@ -33,27 +33,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -64,47 +64,47 @@ Object { }, "Type": "AWS::IAM::Role", }, - "IdentityProviderA00909EA": Object { + "IdentityProviderA00909EA": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "IdentityProviderCustomResourcePolicy3F0F7442", ], - "Properties": Object { - "Create": "{\\"service\\":\\"IAM\\",\\"action\\":\\"createSAMLProvider\\",\\"parameters\\":{\\"Name\\":\\"IdentityProviderIdentityProvider\\",\\"SAMLMetadataDocument\\":\\"\\"},\\"physicalResourceId\\":{\\"responsePath\\":\\"SAMLProviderArn\\"}}", - "Delete": "{\\"service\\":\\"IAM\\",\\"action\\":\\"deleteSAMLProvider\\",\\"parameters\\":{\\"SAMLProviderArn\\":\\"PHYSICAL:RESOURCEID:\\"}}", + "Properties": { + "Create": "{"service":"IAM","action":"createSAMLProvider","parameters":{"Name":"IdentityProviderIdentityProvider","SAMLMetadataDocument":""},"physicalResourceId":{"responsePath":"SAMLProviderArn"}}", + "Delete": "{"service":"IAM","action":"deleteSAMLProvider","parameters":{"SAMLProviderArn":"PHYSICAL:RESOURCEID:"}}", "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": "{\\"service\\":\\"IAM\\",\\"action\\":\\"updateSAMLProvider\\",\\"parameters\\":{\\"SAMLProviderArn\\":\\"PHYSICAL:RESOURCEID:\\",\\"SAMLMetadataDocument\\":\\"\\"},\\"physicalResourceId\\":{\\"responsePath\\":\\"SAMLProviderArn\\"}}", + "Update": "{"service":"IAM","action":"updateSAMLProvider","parameters":{"SAMLProviderArn":"PHYSICAL:RESOURCEID:","SAMLMetadataDocument":""},"physicalResourceId":{"responsePath":"SAMLProviderArn"}}", }, "Type": "Custom::SamlIdentityProvider", "UpdateReplacePolicy": "Delete", }, - "IdentityProviderCustomResourcePolicy3F0F7442": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "IdentityProviderCustomResourcePolicy3F0F7442": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "iam:createSAMLProvider", "iam:updateSAMLProvider", "iam:deleteSAMLProvider", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::", - Object { + { "Ref": "AWS::AccountId", }, ":saml-provider/IdentityProviderIdentityProvider", @@ -116,29 +116,29 @@ Object { "Version": "2012-10-17", }, "PolicyName": "IdentityProviderCustomResourcePolicy3F0F7442", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], }, "Type": "AWS::IAM::Policy", }, - "Role1ABCC5F0": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Role1ABCC5F0": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRoleWithSAML", - "Condition": Object { - "StringEquals": Object { + "Condition": { + "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml", }, }, "Effect": "Allow", - "Principal": Object { - "Federated": Object { - "Fn::GetAtt": Array [ + "Principal": { + "Federated": { + "Fn::GetAtt": [ "IdentityProviderA00909EA", "SAMLProviderArn", ], @@ -152,22 +152,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/slack-app/__snapshots__/slack-app.test.ts.snap b/test/slack-app/__snapshots__/slack-app.test.ts.snap index 02aca903..9f454960 100644 --- a/test/slack-app/__snapshots__/slack-app.test.ts.snap +++ b/test/slack-app/__snapshots__/slack-app.test.ts.snap @@ -1,30 +1,30 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`SlackApp 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "Resources": { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -33,27 +33,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -64,12 +64,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -80,77 +80,77 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "MyApp3CE31C26": Object { + "MyApp3CE31C26": { "DeletionPolicy": "Delete", - "Properties": Object { - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ "SlackAppProviderframeworkonEventF1145A70", "Arn", ], }, - "configurationTokenSecretArn": Object { - "Fn::Join": Array [ + "configurationTokenSecretArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":secretsmanager:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":secret:slack-secret", ], ], }, - "credentialsSecretArn": Object { + "credentialsSecretArn": { "Ref": "MyAppCredentialsA49C5B90", }, - "manifest": "{\\"display_information\\":{\\"name\\":\\"My App\\"}}", + "manifest": "{"display_information":{"name":"My App"}}", }, "Type": "Custom::SlackApp", "UpdateReplacePolicy": "Delete", }, - "MyAppCredentialsA49C5B90": Object { + "MyAppCredentialsA49C5B90": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "Description": "Credentials for Slack App MyApp", - "GenerateSecretString": Object {}, + "GenerateSecretString": {}, }, "Type": "AWS::SecretsManager::Secret", "UpdateReplacePolicy": "Delete", }, - "SlackAppProviderframeworkonEventF1145A70": Object { - "DependsOn": Array [ + "SlackAppProviderframeworkonEventF1145A70": { + "DependsOn": [ "SlackAppProviderframeworkonEventServiceRoleDefaultPolicy494BD6CF", "SlackAppProviderframeworkonEventServiceRoleE93E1666", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "c691172cdeefa2c91b5a2907f9d81118e47597634943344795f1a844192dd49c.zip", }, "Description": "AWS CDK resource provider framework - onEvent (Default/SlackAppProvider/Resource)", - "Environment": Object { - "Variables": Object { - "USER_ON_EVENT_FUNCTION_ARN": Object { - "Fn::GetAtt": Array [ + "Environment": { + "Variables": { + "USER_ON_EVENT_FUNCTION_ARN": { + "Fn::GetAtt": [ "SlackAppProviderhandler547B4993", "Arn", ], @@ -158,8 +158,8 @@ Object { }, }, "Handler": "framework.onEvent", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "SlackAppProviderframeworkonEventServiceRoleE93E1666", "Arn", ], @@ -169,15 +169,15 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "SlackAppProviderframeworkonEventServiceRoleDefaultPolicy494BD6CF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "SlackAppProviderframeworkonEventServiceRoleDefaultPolicy494BD6CF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "lambda:InvokeFunction", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "SlackAppProviderhandler547B4993", "Arn", ], @@ -187,35 +187,35 @@ Object { "Version": "2012-10-17", }, "PolicyName": "SlackAppProviderframeworkonEventServiceRoleDefaultPolicy494BD6CF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "SlackAppProviderframeworkonEventServiceRoleE93E1666", }, ], }, "Type": "AWS::IAM::Policy", }, - "SlackAppProviderframeworkonEventServiceRoleE93E1666": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SlackAppProviderframeworkonEventServiceRoleE93E1666": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -226,27 +226,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "SlackAppProviderhandler547B4993": Object { - "DependsOn": Array [ + "SlackAppProviderhandler547B4993": { + "DependsOn": [ "SlackAppProviderhandlerServiceRoleDefaultPolicyBAEEA75E", "SlackAppProviderhandlerServiceRoleDAC1FDD7", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "ada9251e2af3daf198f52f17e3371cb1a7b8ab4b280eea60518707204911cb61.zip", }, "Description": "src/slack-app/provider.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "SlackAppProviderhandlerServiceRoleDAC1FDD7", "Arn", ], @@ -255,22 +255,22 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "SlackAppProviderhandlerLogRetentionA1560DAA": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "SlackAppProviderhandlerLogRetentionA1560DAA": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "SlackAppProviderhandler547B4993", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -278,27 +278,27 @@ Object { }, "Type": "Custom::LogRetention", }, - "SlackAppProviderhandlerServiceRoleDAC1FDD7": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SlackAppProviderhandlerServiceRoleDAC1FDD7": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -309,30 +309,30 @@ Object { }, "Type": "AWS::IAM::Role", }, - "SlackAppProviderhandlerServiceRoleDefaultPolicyBAEEA75E": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "SlackAppProviderhandlerServiceRoleDefaultPolicyBAEEA75E": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":secretsmanager:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":secret:slack-secret-??????", @@ -340,26 +340,26 @@ Object { ], }, }, - Object { - "Action": Array [ + { + "Action": [ "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":secretsmanager:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":secret:slack-secret-??????", @@ -367,13 +367,13 @@ Object { ], }, }, - Object { - "Action": Array [ + { + "Action": [ "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", ], "Effect": "Allow", - "Resource": Object { + "Resource": { "Ref": "MyAppCredentialsA49C5B90", }, }, @@ -381,8 +381,8 @@ Object { "Version": "2012-10-17", }, "PolicyName": "SlackAppProviderhandlerServiceRoleDefaultPolicyBAEEA75E", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "SlackAppProviderhandlerServiceRoleDAC1FDD7", }, ], @@ -390,22 +390,22 @@ Object { "Type": "AWS::IAM::Policy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/slack-events/__snapshots__/slack-events.test.ts.snap b/test/slack-events/__snapshots__/slack-events.test.ts.snap index 6d281b55..08ff708f 100644 --- a/test/slack-events/__snapshots__/slack-events.test.ts.snap +++ b/test/slack-events/__snapshots__/slack-events.test.ts.snap @@ -1,40 +1,40 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`SlackEvents 1`] = ` -Object { - "Outputs": Object { - "SlackEventsApiEndpoint11A6FA12": Object { - "Value": Object { - "Fn::GetAtt": Array [ +{ + "Outputs": { + "SlackEventsApiEndpoint11A6FA12": { + "Value": { + "Fn::GetAtt": [ "SlackEventsSlackEventsApiE97C93CF", "ApiEndpoint", ], }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "Resources": { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -43,27 +43,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -74,12 +74,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -90,27 +90,27 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "SlackEventsSlackEventsApiDefaultRouteBD062D1A": Object { - "Properties": Object { - "ApiId": Object { + "SlackEventsSlackEventsApiDefaultRouteBD062D1A": { + "Properties": { + "ApiId": { "Ref": "SlackEventsSlackEventsApiE97C93CF", }, "AuthorizationType": "NONE", "RouteKey": "$default", - "Target": Object { - "Fn::Join": Array [ + "Target": { + "Fn::Join": [ "", - Array [ + [ "integrations/", - Object { + { "Ref": "SlackEventsSlackEventsApiDefaultRouteIntegration9014E8DA", }, ], @@ -119,14 +119,14 @@ Object { }, "Type": "AWS::ApiGatewayV2::Route", }, - "SlackEventsSlackEventsApiDefaultRouteIntegration9014E8DA": Object { - "Properties": Object { - "ApiId": Object { + "SlackEventsSlackEventsApiDefaultRouteIntegration9014E8DA": { + "Properties": { + "ApiId": { "Ref": "SlackEventsSlackEventsApiE97C93CF", }, "IntegrationType": "AWS_PROXY", - "IntegrationUri": Object { - "Fn::GetAtt": Array [ + "IntegrationUri": { + "Fn::GetAtt": [ "SlackEventshandler0D367EF7", "Arn", ], @@ -135,34 +135,34 @@ Object { }, "Type": "AWS::ApiGatewayV2::Integration", }, - "SlackEventsSlackEventsApiDefaultRouteIntegrationPermissionF390614C": Object { - "Properties": Object { + "SlackEventsSlackEventsApiDefaultRouteIntegrationPermissionF390614C": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "SlackEventshandler0D367EF7", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "SlackEventsSlackEventsApiE97C93CF", }, "/*/*", @@ -172,9 +172,9 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "SlackEventsSlackEventsApiDefaultStage40400FF4": Object { - "Properties": Object { - "ApiId": Object { + "SlackEventsSlackEventsApiDefaultStage40400FF4": { + "Properties": { + "ApiId": { "Ref": "SlackEventsSlackEventsApiE97C93CF", }, "AutoDeploy": true, @@ -182,35 +182,35 @@ Object { }, "Type": "AWS::ApiGatewayV2::Stage", }, - "SlackEventsSlackEventsApiE97C93CF": Object { - "Properties": Object { + "SlackEventsSlackEventsApiE97C93CF": { + "Properties": { "Name": "SlackEventsApi", "ProtocolType": "HTTP", }, "Type": "AWS::ApiGatewayV2::Api", }, - "SlackEventshandler0D367EF7": Object { - "DependsOn": Array [ + "SlackEventshandler0D367EF7": { + "DependsOn": [ "SlackEventshandlerServiceRoleDefaultPolicy013415EE", "SlackEventshandlerServiceRoleD11F9854", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "648e99e58fa21fc9e8e0af846d3d6330bb5d8ea10b2f4aba257b49645d5a8205.zip", }, "Description": "src/slack-events/events.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "SLACK_SIGNING_SECRET": "{{resolve:secretsmanager:my-slack-app:SecretString:::}}", }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "SlackEventshandlerServiceRoleD11F9854", "Arn", ], @@ -219,22 +219,22 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "SlackEventshandlerLogRetention67CD07A0": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "SlackEventshandlerLogRetention67CD07A0": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "SlackEventshandler0D367EF7", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -242,27 +242,27 @@ Object { }, "Type": "Custom::LogRetention", }, - "SlackEventshandlerServiceRoleD11F9854": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SlackEventshandlerServiceRoleD11F9854": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -273,11 +273,11 @@ Object { }, "Type": "AWS::IAM::Role", }, - "SlackEventshandlerServiceRoleDefaultPolicy013415EE": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "SlackEventshandlerServiceRoleDefaultPolicy013415EE": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "events:PutEvents", "Effect": "Allow", "Resource": "*", @@ -286,8 +286,8 @@ Object { "Version": "2012-10-17", }, "PolicyName": "SlackEventshandlerServiceRoleDefaultPolicy013415EE", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "SlackEventshandlerServiceRoleD11F9854", }, ], @@ -295,22 +295,22 @@ Object { "Type": "AWS::IAM::Policy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/slack-textract/__snapshots__/slack-textract.test.ts.snap b/test/slack-textract/__snapshots__/slack-textract.test.ts.snap index 50465ecb..123b8bdd 100644 --- a/test/slack-textract/__snapshots__/slack-textract.test.ts.snap +++ b/test/slack-textract/__snapshots__/slack-textract.test.ts.snap @@ -1,40 +1,40 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`SlackEvents 1`] = ` -Object { - "Outputs": Object { - "SlackTextractSlackEventsApiEndpointDCE9D710": Object { - "Value": Object { - "Fn::GetAtt": Array [ +{ + "Outputs": { + "SlackTextractSlackEventsApiEndpointDCE9D710": { + "Value": { + "Fn::GetAtt": [ "SlackTextractSlackEventsSlackEventsApi117A1D5A", "ApiEndpoint", ], }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "Resources": { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -43,27 +43,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -74,12 +74,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -90,36 +90,36 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "SlackTextractSlackEventsRuleAF3FF8E7": Object { - "Properties": Object { - "EventPattern": Object { - "detail": Object { - "event": Object { - "type": Array [ + "SlackTextractSlackEventsRuleAF3FF8E7": { + "Properties": { + "EventPattern": { + "detail": { + "event": { + "type": [ "file_shared", ], }, }, - "resources": Array [ + "resources": [ "{{resolve:secretsmanager:my-slack-app:SecretString:appId::}}", ], - "source": Array [ + "source": [ "slack", ], }, "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ "SlackTextracthandler2995F40C", "Arn", ], @@ -131,18 +131,18 @@ Object { }, "Type": "AWS::Events::Rule", }, - "SlackTextractSlackEventsRuleAllowEventRuleSlackTextracthandlerEFD1C011BCBCE987": Object { - "Properties": Object { + "SlackTextractSlackEventsRuleAllowEventRuleSlackTextracthandlerEFD1C011BCBCE987": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "SlackTextracthandler2995F40C", "Arn", ], }, "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ + "SourceArn": { + "Fn::GetAtt": [ "SlackTextractSlackEventsRuleAF3FF8E7", "Arn", ], @@ -150,26 +150,26 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "SlackTextractSlackEventsSlackEventsApi117A1D5A": Object { - "Properties": Object { + "SlackTextractSlackEventsSlackEventsApi117A1D5A": { + "Properties": { "Name": "SlackEventsApi", "ProtocolType": "HTTP", }, "Type": "AWS::ApiGatewayV2::Api", }, - "SlackTextractSlackEventsSlackEventsApiDefaultRouteD66A9675": Object { - "Properties": Object { - "ApiId": Object { + "SlackTextractSlackEventsSlackEventsApiDefaultRouteD66A9675": { + "Properties": { + "ApiId": { "Ref": "SlackTextractSlackEventsSlackEventsApi117A1D5A", }, "AuthorizationType": "NONE", "RouteKey": "$default", - "Target": Object { - "Fn::Join": Array [ + "Target": { + "Fn::Join": [ "", - Array [ + [ "integrations/", - Object { + { "Ref": "SlackTextractSlackEventsSlackEventsApiDefaultRouteIntegration28BF6F79", }, ], @@ -178,14 +178,14 @@ Object { }, "Type": "AWS::ApiGatewayV2::Route", }, - "SlackTextractSlackEventsSlackEventsApiDefaultRouteIntegration28BF6F79": Object { - "Properties": Object { - "ApiId": Object { + "SlackTextractSlackEventsSlackEventsApiDefaultRouteIntegration28BF6F79": { + "Properties": { + "ApiId": { "Ref": "SlackTextractSlackEventsSlackEventsApi117A1D5A", }, "IntegrationType": "AWS_PROXY", - "IntegrationUri": Object { - "Fn::GetAtt": Array [ + "IntegrationUri": { + "Fn::GetAtt": [ "SlackTextractSlackEventshandler91A38AF9", "Arn", ], @@ -194,34 +194,34 @@ Object { }, "Type": "AWS::ApiGatewayV2::Integration", }, - "SlackTextractSlackEventsSlackEventsApiDefaultRouteIntegrationPermissionBD5CAA88": Object { - "Properties": Object { + "SlackTextractSlackEventsSlackEventsApiDefaultRouteIntegrationPermissionBD5CAA88": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "SlackTextractSlackEventshandler91A38AF9", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "SlackTextractSlackEventsSlackEventsApi117A1D5A", }, "/*/*", @@ -231,9 +231,9 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "SlackTextractSlackEventsSlackEventsApiDefaultStageAF84557A": Object { - "Properties": Object { - "ApiId": Object { + "SlackTextractSlackEventsSlackEventsApiDefaultStageAF84557A": { + "Properties": { + "ApiId": { "Ref": "SlackTextractSlackEventsSlackEventsApi117A1D5A", }, "AutoDeploy": true, @@ -241,28 +241,28 @@ Object { }, "Type": "AWS::ApiGatewayV2::Stage", }, - "SlackTextractSlackEventshandler91A38AF9": Object { - "DependsOn": Array [ + "SlackTextractSlackEventshandler91A38AF9": { + "DependsOn": [ "SlackTextractSlackEventshandlerServiceRoleDefaultPolicyDC806BC0", "SlackTextractSlackEventshandlerServiceRole0F09489F", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "648e99e58fa21fc9e8e0af846d3d6330bb5d8ea10b2f4aba257b49645d5a8205.zip", }, "Description": "src/slack-events/events.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "SLACK_SIGNING_SECRET": "{{resolve:secretsmanager:my-slack-app:SecretString:signingSecret::}}", }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "SlackTextractSlackEventshandlerServiceRole0F09489F", "Arn", ], @@ -271,22 +271,22 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "SlackTextractSlackEventshandlerLogRetention5F25E029": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "SlackTextractSlackEventshandlerLogRetention5F25E029": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "SlackTextractSlackEventshandler91A38AF9", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -294,27 +294,27 @@ Object { }, "Type": "Custom::LogRetention", }, - "SlackTextractSlackEventshandlerServiceRole0F09489F": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SlackTextractSlackEventshandlerServiceRole0F09489F": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -325,11 +325,11 @@ Object { }, "Type": "AWS::IAM::Role", }, - "SlackTextractSlackEventshandlerServiceRoleDefaultPolicyDC806BC0": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "SlackTextractSlackEventshandlerServiceRoleDefaultPolicyDC806BC0": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "events:PutEvents", "Effect": "Allow", "Resource": "*", @@ -338,36 +338,36 @@ Object { "Version": "2012-10-17", }, "PolicyName": "SlackTextractSlackEventshandlerServiceRoleDefaultPolicyDC806BC0", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "SlackTextractSlackEventshandlerServiceRole0F09489F", }, ], }, "Type": "AWS::IAM::Policy", }, - "SlackTextracthandler2995F40C": Object { - "DependsOn": Array [ + "SlackTextracthandler2995F40C": { + "DependsOn": [ "SlackTextracthandlerServiceRoleDefaultPolicy99C89D42", "SlackTextracthandlerServiceRoleF8DD11ED", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "fb542c32b46f7105f78b295ff35ed392cabbd2ed9ddc2a44613e73fecdc7428b.zip", }, "Description": "src/slack-textract/detect.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "SLACK_TOKEN": "{{resolve:secretsmanager:my-slack-app:SecretString:botToken::}}", }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "SlackTextracthandlerServiceRoleF8DD11ED", "Arn", ], @@ -377,22 +377,22 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "SlackTextracthandlerLogRetention598DDFA9": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "SlackTextracthandlerLogRetention598DDFA9": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "SlackTextracthandler2995F40C", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -400,11 +400,11 @@ Object { }, "Type": "Custom::LogRetention", }, - "SlackTextracthandlerServiceRoleDefaultPolicy99C89D42": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "SlackTextracthandlerServiceRoleDefaultPolicy99C89D42": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "textract:DetectDocumentText", "Effect": "Allow", "Resource": "*", @@ -413,35 +413,35 @@ Object { "Version": "2012-10-17", }, "PolicyName": "SlackTextracthandlerServiceRoleDefaultPolicy99C89D42", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "SlackTextracthandlerServiceRoleF8DD11ED", }, ], }, "Type": "AWS::IAM::Policy", }, - "SlackTextracthandlerServiceRoleF8DD11ED": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "SlackTextracthandlerServiceRoleF8DD11ED": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -453,22 +453,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/state-machine-cr-provider/__snapshots__/state-machine-cr-provider.test.ts.snap b/test/state-machine-cr-provider/__snapshots__/state-machine-cr-provider.test.ts.snap index 6306b737..44b527fe 100644 --- a/test/state-machine-cr-provider/__snapshots__/state-machine-cr-provider.test.ts.snap +++ b/test/state-machine-cr-provider/__snapshots__/state-machine-cr-provider.test.ts.snap @@ -1,20 +1,20 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`StateMachineCustomResourceProvider 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "CustomResource": Object { + "Resources": { + "CustomResource": { "DeletionPolicy": "Delete", - "Properties": Object { - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ "ProviderStartExecutionA94D3483", "Arn", ], @@ -23,20 +23,20 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "ProviderCfnResponseFailedCC9A90F2": Object { - "DependsOn": Array [ + "ProviderCfnResponseFailedCC9A90F2": { + "DependsOn": [ "ProviderCfnResponseFailedServiceRole1026DD92", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "ad188079f1c4f6583a0ca78720777daca37f080d2c69195ba2a27ae0b207a9a0.zip", }, "Handler": "index.cfnResponseFailed", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "ProviderCfnResponseFailedServiceRole1026DD92", "Arn", ], @@ -45,27 +45,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "ProviderCfnResponseFailedServiceRole1026DD92": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "ProviderCfnResponseFailedServiceRole1026DD92": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -76,20 +76,20 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ProviderCfnResponseSuccess01B6851D": Object { - "DependsOn": Array [ + "ProviderCfnResponseSuccess01B6851D": { + "DependsOn": [ "ProviderCfnResponseSuccessServiceRole5D01681D", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "ad188079f1c4f6583a0ca78720777daca37f080d2c69195ba2a27ae0b207a9a0.zip", }, "Handler": "index.cfnResponseSuccess", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "ProviderCfnResponseSuccessServiceRole5D01681D", "Arn", ], @@ -98,27 +98,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "ProviderCfnResponseSuccessServiceRole5D01681D": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "ProviderCfnResponseSuccessServiceRole5D01681D": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -129,20 +129,20 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ProviderRole1DE8EC3B": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "ProviderRole1DE8EC3B": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { - "Service": Object { - "Fn::Join": Array [ + "Principal": { + "Service": { + "Fn::Join": [ "", - Array [ + [ "states.", - Object { + { "Ref": "AWS::Region", }, ".amazonaws.com", @@ -157,53 +157,53 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ProviderRoleDefaultPolicyD21592EE": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "ProviderRoleDefaultPolicyD21592EE": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "lambda:InvokeFunction", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "ProviderCfnResponseSuccess01B6851D", "Arn", ], }, - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "ProviderCfnResponseFailedCC9A90F2", "Arn", ], }, ], }, - Object { + { "Action": "states:StartExecution", "Effect": "Allow", "Resource": "arn:aws:states:us-east-1:123456789012:stateMachine:my-machine", }, - Object { - "Action": Array [ + { + "Action": [ "states:DescribeExecution", "states:StopExecution", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":states:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":execution:my-machine*", @@ -211,27 +211,27 @@ Object { ], }, }, - Object { - "Action": Array [ + { + "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":events:", - Object { + { "Ref": "AWS::Region", }, ":", - Object { + { "Ref": "AWS::AccountId", }, ":rule/StepFunctionsGetEventsForStepFunctionsExecutionRule", @@ -243,36 +243,36 @@ Object { "Version": "2012-10-17", }, "PolicyName": "ProviderRoleDefaultPolicyD21592EE", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "ProviderRole1DE8EC3B", }, ], }, "Type": "AWS::IAM::Policy", }, - "ProviderStartExecutionA94D3483": Object { - "DependsOn": Array [ + "ProviderStartExecutionA94D3483": { + "DependsOn": [ "ProviderStartExecutionServiceRoleDefaultPolicy9428BBFE", "ProviderStartExecutionServiceRole86F1DDB6", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "ad188079f1c4f6583a0ca78720777daca37f080d2c69195ba2a27ae0b207a9a0.zip", }, - "Environment": Object { - "Variables": Object { - "STATE_MACHINE_ARN": Object { + "Environment": { + "Variables": { + "STATE_MACHINE_ARN": { "Ref": "ProviderStateMachine873099F5", }, }, }, "Handler": "index.startExecution", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "ProviderStartExecutionServiceRole86F1DDB6", "Arn", ], @@ -281,27 +281,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "ProviderStartExecutionServiceRole86F1DDB6": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "ProviderStartExecutionServiceRole86F1DDB6": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -312,14 +312,14 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ProviderStartExecutionServiceRoleDefaultPolicy9428BBFE": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "ProviderStartExecutionServiceRoleDefaultPolicy9428BBFE": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "states:StartExecution", "Effect": "Allow", - "Resource": Object { + "Resource": { "Ref": "ProviderStateMachine873099F5", }, }, @@ -327,44 +327,44 @@ Object { "Version": "2012-10-17", }, "PolicyName": "ProviderStartExecutionServiceRoleDefaultPolicy9428BBFE", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "ProviderStartExecutionServiceRole86F1DDB6", }, ], }, "Type": "AWS::IAM::Policy", }, - "ProviderStateMachine873099F5": Object { - "DependsOn": Array [ + "ProviderStateMachine873099F5": { + "DependsOn": [ "ProviderRoleDefaultPolicyD21592EE", "ProviderRole1DE8EC3B", ], - "Properties": Object { - "DefinitionString": Object { - "Fn::Join": Array [ + "Properties": { + "DefinitionString": { + "Fn::Join": [ "", - Array [ - "{\\"StartAt\\":\\"StartExecution\\",\\"States\\":{\\"StartExecution\\":{\\"Type\\":\\"Task\\",\\"Resource\\":\\"arn:aws:states:::states:startExecution.sync:2\\",\\"Parameters\\":{\\"Input.$\\":\\"$\\",\\"StateMachineArn\\":\\"arn:aws:states:us-east-1:123456789012:stateMachine:my-machine\\"},\\"TimeoutSeconds\\":1800,\\"Next\\":\\"CfnResponseSuccess\\",\\"Catch\\":[{\\"ErrorEquals\\":[\\"States.ALL\\"],\\"Next\\":\\"CfnResponseFailed\\"}]},\\"CfnResponseSuccess\\":{\\"Type\\":\\"Task\\",\\"Resource\\":\\"", - Object { - "Fn::GetAtt": Array [ + [ + "{"StartAt":"StartExecution","States":{"StartExecution":{"Type":"Task","Resource":"arn:aws:states:::states:startExecution.sync:2","Parameters":{"Input.$":"$","StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:my-machine"},"TimeoutSeconds":1800,"Next":"CfnResponseSuccess","Catch":[{"ErrorEquals":["States.ALL"],"Next":"CfnResponseFailed"}]},"CfnResponseSuccess":{"Type":"Task","Resource":"", + { + "Fn::GetAtt": [ "ProviderCfnResponseSuccess01B6851D", "Arn", ], }, - "\\",\\"End\\":true},\\"CfnResponseFailed\\":{\\"Type\\":\\"Task\\",\\"Resource\\":\\"", - Object { - "Fn::GetAtt": Array [ + "","End":true},"CfnResponseFailed":{"Type":"Task","Resource":"", + { + "Fn::GetAtt": [ "ProviderCfnResponseFailedCC9A90F2", "Arn", ], }, - "\\",\\"End\\":true}}}", + "","End":true}}}", ], ], }, - "RoleArn": Object { - "Fn::GetAtt": Array [ + "RoleArn": { + "Fn::GetAtt": [ "ProviderRole1DE8EC3B", "Arn", ], @@ -373,22 +373,22 @@ Object { "Type": "AWS::StepFunctions::StateMachine", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/static-website/__snapshots__/static-website.test.ts.snap b/test/static-website/__snapshots__/static-website.test.ts.snap index e60e95f9..4383042e 100644 --- a/test/static-website/__snapshots__/static-website.test.ts.snap +++ b/test/static-website/__snapshots__/static-website.test.ts.snap @@ -1,30 +1,30 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`StaticWebsite 1`] = ` -Object { - "Parameters": Object { - "BootstrapVersion": Object { +{ + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "OriginRequest0052232D": Object { - "DependsOn": Array [ + "Resources": { + "OriginRequest0052232D": { + "DependsOn": [ "OriginRequestServiceRole04760C2E", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-us-east-1", }, "S3Key": "7103577a2cb7fc67b45dcf792018885f3f5557b18e7a4b239e35ed10d119f5b9.zip", }, "Description": "src/static-website/origin-request.edge-lambda.ts", "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "OriginRequestServiceRole04760C2E", "Arn", ], @@ -33,52 +33,52 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "OriginRequestCurrentVersionD6F77E9F01c31a424b9789d3d40146516339cf86": Object { - "Properties": Object { - "FunctionName": Object { + "OriginRequestCurrentVersionD6F77E9F01c31a424b9789d3d40146516339cf86": { + "Properties": { + "FunctionName": { "Ref": "OriginRequest0052232D", }, }, "Type": "AWS::Lambda::Version", }, - "OriginRequestParameter759D9B4C": Object { - "Properties": Object { + "OriginRequestParameter759D9B4C": { + "Properties": { "Name": "/cdk/EdgeFunctionArn/eu-west-1/Stack/StaticWebsite/OriginRequest", "Type": "String", - "Value": Object { + "Value": { "Ref": "OriginRequestCurrentVersionD6F77E9F01c31a424b9789d3d40146516339cf86", }, }, "Type": "AWS::SSM::Parameter", }, - "OriginRequestServiceRole04760C2E": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "OriginRequestServiceRole04760C2E": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, - Object { + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "edgelambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -90,22 +90,22 @@ Object { "Type": "AWS::IAM::Role", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -121,39 +121,39 @@ Object { `; exports[`StaticWebsite 2`] = ` -Object { - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { +{ + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "AWS679f53fac002430cb0da5b7982bd22872D164C4C": Object { - "DependsOn": Array [ + "Resources": { + "AWS679f53fac002430cb0da5b7982bd22872D164C4C": { + "DependsOn": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "11d371859e49f3b1a49896583254890801a40beada56e4c84409a179a221e2e2.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", "Arn", ], @@ -163,27 +163,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -194,19 +194,19 @@ Object { }, "Type": "AWS::IAM::Role", }, - "ApiDefaultRoute1D83B0D8": Object { - "Properties": Object { - "ApiId": Object { + "ApiDefaultRoute1D83B0D8": { + "Properties": { + "ApiId": { "Ref": "ApiF70053CD", }, "AuthorizationType": "NONE", "RouteKey": "$default", - "Target": Object { - "Fn::Join": Array [ + "Target": { + "Fn::Join": [ "", - Array [ + [ "integrations/", - Object { + { "Ref": "ApiDefaultRouteIntegrationDB7B670E", }, ], @@ -215,14 +215,14 @@ Object { }, "Type": "AWS::ApiGatewayV2::Route", }, - "ApiDefaultRouteIntegrationDB7B670E": Object { - "Properties": Object { - "ApiId": Object { + "ApiDefaultRouteIntegrationDB7B670E": { + "Properties": { + "ApiId": { "Ref": "ApiF70053CD", }, "IntegrationType": "AWS_PROXY", - "IntegrationUri": Object { - "Fn::GetAtt": Array [ + "IntegrationUri": { + "Fn::GetAtt": [ "Fn9270CBC0", "Arn", ], @@ -231,30 +231,30 @@ Object { }, "Type": "AWS::ApiGatewayV2::Integration", }, - "ApiDefaultRouteIntegrationPermission612BAC34": Object { - "Properties": Object { + "ApiDefaultRouteIntegrationPermission612BAC34": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "Fn9270CBC0", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "ApiF70053CD", }, "/*/*", @@ -264,9 +264,9 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "ApiDefaultStage189A7074": Object { - "Properties": Object { - "ApiId": Object { + "ApiDefaultStage189A7074": { + "Properties": { + "ApiId": { "Ref": "ApiF70053CD", }, "AutoDeploy": true, @@ -274,28 +274,28 @@ Object { }, "Type": "AWS::ApiGatewayV2::Stage", }, - "ApiF70053CD": Object { - "Properties": Object { + "ApiF70053CD": { + "Properties": { "Name": "Api", "ProtocolType": "HTTP", }, "Type": "AWS::ApiGatewayV2::Api", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": Object { - "DependsOn": Array [ + "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": { + "DependsOn": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "45b7ed524ce2b119dd4f2b8642ae8bfaf0df45bc6bd705072ae4ee6d1a999241.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", "Arn", ], @@ -305,44 +305,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:GetParameter", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", - Object { + { "Ref": "AWS::AccountId", }, ":parameter/cdk/EdgeFunctionArn/*", @@ -359,17 +359,17 @@ Object { }, "Type": "AWS::IAM::Role", }, - "Fn9270CBC0": Object { - "DependsOn": Array [ + "Fn9270CBC0": { + "DependsOn": [ "FnServiceRoleB9001A96", ], - "Properties": Object { - "Code": Object { + "Properties": { + "Code": { "ZipFile": "inline", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "FnServiceRoleB9001A96", "Arn", ], @@ -378,27 +378,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "FnServiceRoleB9001A96": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "FnServiceRoleB9001A96": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -409,32 +409,32 @@ Object { }, "Type": "AWS::IAM::Role", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "my-site.com.", }, "Type": "AWS::Route53::HostedZone", }, - "StaticWebsiteARecord6F0B2A09": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "StaticWebsiteARecord6F0B2A09": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "StaticWebsiteDistributionBAD21F75", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "www.my-site.com.", @@ -442,26 +442,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "StaticWebsiteAaaaRecordA6A958CD": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "StaticWebsiteAaaaRecordA6A958CD": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "StaticWebsiteDistributionBAD21F75", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "www.my-site.com.", @@ -469,10 +469,10 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "StaticWebsiteBucket0E92E0FC": Object { + "StaticWebsiteBucket0E92E0FC": { "DeletionPolicy": "Retain", - "Properties": Object { - "PublicAccessBlockConfiguration": Object { + "Properties": { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -482,30 +482,30 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "StaticWebsiteBucketPolicy86C0E5CF": Object { - "Properties": Object { - "Bucket": Object { + "StaticWebsiteBucketPolicy86C0E5CF": { + "Properties": { + "Bucket": { "Ref": "StaticWebsiteBucket0E92E0FC", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:GetObject", "Effect": "Allow", - "Principal": Object { - "CanonicalUser": Object { - "Fn::GetAtt": Array [ + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ "StaticWebsiteDistributionOrigin1S3Origin3045572F", "S3CanonicalUserId", ], }, }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "StaticWebsiteBucket0E92E0FC", "Arn", ], @@ -521,21 +521,21 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "StaticWebsiteCertificateCertificateRequestorFunction8DAF9CCF": Object { - "DependsOn": Array [ + "StaticWebsiteCertificateCertificateRequestorFunction8DAF9CCF": { + "DependsOn": [ "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleDefaultPolicyBBEC5BA3", "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleC558C69B", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleC558C69B", "Arn", ], @@ -545,27 +545,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleC558C69B": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleC558C69B": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -576,12 +576,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleDefaultPolicyBBEC5BA3": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleDefaultPolicyBBEC5BA3": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -590,24 +590,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -618,24 +618,24 @@ Object { "Version": "2012-10-17", }, "PolicyName": "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleDefaultPolicyBBEC5BA3", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "StaticWebsiteCertificateCertificateRequestorFunctionServiceRoleC558C69B", }, ], }, "Type": "AWS::IAM::Policy", }, - "StaticWebsiteCertificateCertificateRequestorResource7C29CEF3": Object { + "StaticWebsiteCertificateCertificateRequestorResource7C29CEF3": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "www.my-site.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "StaticWebsiteCertificateCertificateRequestorFunction8DAF9CCF", "Arn", ], @@ -644,27 +644,27 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "StaticWebsiteDistributionBAD21F75": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "StaticWebsiteDistributionBAD21F75": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "www.my-site.com", ], - "DefaultCacheBehavior": Object { + "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "StaticWebsiteOriginRequestArnReaderEA9004DC", "FunctionArn", ], }, }, ], - "ResponseHeadersPolicyId": Object { + "ResponseHeadersPolicyId": { "Ref": "StaticWebsiteResponseHeadersPolicyF3EBE566", }, "TargetOriginId": "StackStaticWebsiteDistributionOrigin103625211", @@ -674,22 +674,22 @@ Object { "Enabled": true, "HttpVersion": "http2and3", "IPV6Enabled": true, - "Origins": Array [ - Object { - "DomainName": Object { - "Fn::GetAtt": Array [ + "Origins": [ + { + "DomainName": { + "Fn::GetAtt": [ "StaticWebsiteBucket0E92E0FC", "RegionalDomainName", ], }, "Id": "StackStaticWebsiteDistributionOrigin103625211", - "S3OriginConfig": Object { - "OriginAccessIdentity": Object { - "Fn::Join": Array [ + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ "", - Array [ + [ "origin-access-identity/cloudfront/", - Object { + { "Ref": "StaticWebsiteDistributionOrigin1S3Origin3045572F", }, ], @@ -698,9 +698,9 @@ Object { }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "StaticWebsiteCertificateCertificateRequestorResource7C29CEF3", "Arn", ], @@ -712,34 +712,34 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "StaticWebsiteDistributionOrigin1S3Origin3045572F": Object { - "Properties": Object { - "CloudFrontOriginAccessIdentityConfig": Object { + "StaticWebsiteDistributionOrigin1S3Origin3045572F": { + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for StackStaticWebsiteDistributionOrigin103625211", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, - "StaticWebsiteHttpsRedirectRedirectAliasRecord2591f3E6FEEF4C": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "StaticWebsiteHttpsRedirectRedirectAliasRecord2591f3E6FEEF4C": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "StaticWebsiteHttpsRedirectRedirectDistributionCFDistributionF7ADE06F", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "my-site.com.", @@ -747,26 +747,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "StaticWebsiteHttpsRedirectRedirectAliasRecordSix2591f309F9321D": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "StaticWebsiteHttpsRedirectRedirectAliasRecordSix2591f309F9321D": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "StaticWebsiteHttpsRedirectRedirectDistributionCFDistributionF7ADE06F", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "my-site.com.", @@ -774,17 +774,17 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "StaticWebsiteHttpsRedirectRedirectBucket45BA11C9": Object { + "StaticWebsiteHttpsRedirectRedirectBucket45BA11C9": { "DeletionPolicy": "Delete", - "Properties": Object { - "PublicAccessBlockConfiguration": Object { + "Properties": { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, - "WebsiteConfiguration": Object { - "RedirectAllRequestsTo": Object { + "WebsiteConfiguration": { + "RedirectAllRequestsTo": { "HostName": "www.my-site.com", "Protocol": "https", }, @@ -793,21 +793,21 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Delete", }, - "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionEE7DB513": Object { - "DependsOn": Array [ + "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionEE7DB513": { + "DependsOn": [ "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy81FC4515", "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRole08DAF404", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRole08DAF404", "Arn", ], @@ -817,27 +817,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRole08DAF404": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRole08DAF404": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -848,12 +848,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy81FC4515": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy81FC4515": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -862,24 +862,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -890,54 +890,54 @@ Object { "Version": "2012-10-17", }, "PolicyName": "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy81FC4515", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionServiceRole08DAF404", }, ], }, "Type": "AWS::IAM::Policy", }, - "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorResource692E38D9": Object { + "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorResource692E38D9": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "my-site.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorFunctionEE7DB513", "Arn", ], }, - "SubjectAlternativeNames": Array [ + "SubjectAlternativeNames": [ "my-site.com", ], }, "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "StaticWebsiteHttpsRedirectRedirectDistributionCFDistributionF7ADE06F": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "StaticWebsiteHttpsRedirectRedirectDistributionCFDistributionF7ADE06F": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "my-site.com", ], "Comment": "Redirect to www.my-site.com from my-site.com", - "DefaultCacheBehavior": Object { - "AllowedMethods": Array [ + "DefaultCacheBehavior": { + "AllowedMethods": [ "GET", "HEAD", ], - "CachedMethods": Array [ + "CachedMethods": [ "GET", "HEAD", ], "Compress": true, - "ForwardedValues": Object { - "Cookies": Object { + "ForwardedValues": { + "Cookies": { "Forward": "none", }, "QueryString": false, @@ -949,28 +949,28 @@ Object { "Enabled": true, "HttpVersion": "http2", "IPV6Enabled": true, - "Origins": Array [ - Object { + "Origins": [ + { "ConnectionAttempts": 3, "ConnectionTimeout": 10, - "CustomOriginConfig": Object { + "CustomOriginConfig": { "HTTPPort": 80, "HTTPSPort": 443, "OriginKeepaliveTimeout": 5, "OriginProtocolPolicy": "http-only", "OriginReadTimeout": 30, - "OriginSSLProtocols": Array [ + "OriginSSLProtocols": [ "TLSv1.2", ], }, - "DomainName": Object { - "Fn::Select": Array [ + "DomainName": { + "Fn::Select": [ 2, - Object { - "Fn::Split": Array [ + { + "Fn::Split": [ "/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "StaticWebsiteHttpsRedirectRedirectBucket45BA11C9", "WebsiteURL", ], @@ -983,9 +983,9 @@ Object { }, ], "PriceClass": "PriceClass_All", - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "StaticWebsiteHttpsRedirectRedirectCertificateCertificateRequestorResource692E38D9", "Arn", ], @@ -997,14 +997,14 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "StaticWebsiteOriginRequestArnReaderEA9004DC": Object { + "StaticWebsiteOriginRequestArnReaderEA9004DC": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ParameterName": "/cdk/EdgeFunctionArn/eu-west-1/Stack/StaticWebsite/OriginRequest", "RefreshToken": "OriginRequestCurrentVersionD6F77E9F01c31a424b9789d3d40146516339cf86", "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A", "Arn", ], @@ -1013,56 +1013,56 @@ Object { "Type": "Custom::CrossRegionStringParameterReader", "UpdateReplacePolicy": "Delete", }, - "StaticWebsitePutConfig8F8DD69A": Object { + "StaticWebsitePutConfig8F8DD69A": { "DeletionPolicy": "Delete", - "DependsOn": Array [ + "DependsOn": [ "StaticWebsitePutConfigCustomResourcePolicy54D08151", ], - "Properties": Object { - "Create": Object { - "Fn::Join": Array [ + "Properties": { + "Create": { + "Fn::Join": [ "", - Array [ - "{\\"service\\":\\"S3\\",\\"action\\":\\"putObject\\",\\"parameters\\":{\\"Bucket\\":\\"", - Object { + [ + "{"service":"S3","action":"putObject","parameters":{"Bucket":"", + { "Ref": "StaticWebsiteBucket0E92E0FC", }, - "\\",\\"Key\\":\\"config.json\\",\\"Body\\":\\"{\\\\\\"key1\\\\\\":\\\\\\"value1\\\\\\",\\\\\\"key2\\\\\\":\\\\\\"value2\\\\\\",\\\\\\"apiUrl\\\\\\":\\\\\\"https://", - Object { + "","Key":"config.json","Body":"{\\"key1\\":\\"value1\\",\\"key2\\":\\"value2\\",\\"apiUrl\\":\\"https://", + { "Ref": "ApiF70053CD", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, - "/\\\\\\"}\\",\\"ContentType\\":\\"application/json\\",\\"CacheControl\\":\\"max-age=0, no-cache, no-store, must-revalidate\\"},\\"physicalResourceId\\":{\\"id\\":\\"config\\"}}", + "/\\"}","ContentType":"application/json","CacheControl":"max-age=0, no-cache, no-store, must-revalidate"},"physicalResourceId":{"id":"config"}}", ], ], }, "InstallLatestAwsSdk": true, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "AWS679f53fac002430cb0da5b7982bd22872D164C4C", "Arn", ], }, - "Update": Object { - "Fn::Join": Array [ + "Update": { + "Fn::Join": [ "", - Array [ - "{\\"service\\":\\"S3\\",\\"action\\":\\"putObject\\",\\"parameters\\":{\\"Bucket\\":\\"", - Object { + [ + "{"service":"S3","action":"putObject","parameters":{"Bucket":"", + { "Ref": "StaticWebsiteBucket0E92E0FC", }, - "\\",\\"Key\\":\\"config.json\\",\\"Body\\":\\"{\\\\\\"key1\\\\\\":\\\\\\"value1\\\\\\",\\\\\\"key2\\\\\\":\\\\\\"value2\\\\\\",\\\\\\"apiUrl\\\\\\":\\\\\\"https://", - Object { + "","Key":"config.json","Body":"{\\"key1\\":\\"value1\\",\\"key2\\":\\"value2\\",\\"apiUrl\\":\\"https://", + { "Ref": "ApiF70053CD", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, - "/\\\\\\"}\\",\\"ContentType\\":\\"application/json\\",\\"CacheControl\\":\\"max-age=0, no-cache, no-store, must-revalidate\\"},\\"physicalResourceId\\":{\\"id\\":\\"config\\"}}", + "/\\"}","ContentType":"application/json","CacheControl":"max-age=0, no-cache, no-store, must-revalidate"},"physicalResourceId":{"id":"config"}}", ], ], }, @@ -1070,19 +1070,19 @@ Object { "Type": "Custom::AWS", "UpdateReplacePolicy": "Delete", }, - "StaticWebsitePutConfigCustomResourcePolicy54D08151": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "StaticWebsitePutConfigCustomResourcePolicy54D08151": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:PutObject", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "StaticWebsiteBucket0E92E0FC", "Arn", ], @@ -1096,37 +1096,37 @@ Object { "Version": "2012-10-17", }, "PolicyName": "StaticWebsitePutConfigCustomResourcePolicy54D08151", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2", }, ], }, "Type": "AWS::IAM::Policy", }, - "StaticWebsiteResponseHeadersPolicyF3EBE566": Object { - "Properties": Object { - "ResponseHeadersPolicyConfig": Object { + "StaticWebsiteResponseHeadersPolicyF3EBE566": { + "Properties": { + "ResponseHeadersPolicyConfig": { "Name": "StackStaticWebsiteResponseHeadersPolicyEF11926D", - "SecurityHeadersConfig": Object { - "ContentTypeOptions": Object { + "SecurityHeadersConfig": { + "ContentTypeOptions": { "Override": true, }, - "FrameOptions": Object { + "FrameOptions": { "FrameOption": "DENY", "Override": true, }, - "ReferrerPolicy": Object { + "ReferrerPolicy": { "Override": true, "ReferrerPolicy": "strict-origin-when-cross-origin", }, - "StrictTransportSecurity": Object { + "StrictTransportSecurity": { "AccessControlMaxAgeSec": 31536000, "IncludeSubdomains": true, "Override": true, "Preload": true, }, - "XSSProtection": Object { + "XSSProtection": { "ModeBlock": true, "Override": true, "Protection": true, @@ -1137,22 +1137,22 @@ Object { "Type": "AWS::CloudFront::ResponseHeadersPolicy", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/test/url-shortener/__snapshots__/url-shortener.test.ts.snap b/test/url-shortener/__snapshots__/url-shortener.test.ts.snap index 351be637..db159f5d 100644 --- a/test/url-shortener/__snapshots__/url-shortener.test.ts.snap +++ b/test/url-shortener/__snapshots__/url-shortener.test.ts.snap @@ -1,33 +1,33 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`UrlShortener 1`] = ` -Object { - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { +{ + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Outputs": Object { - "UrlShortenerUrlShortenercstructscomEndpointA30033CB": Object { - "Value": Object { - "Fn::Join": Array [ + "Outputs": { + "UrlShortenerUrlShortenercstructscomEndpointA30033CB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/", @@ -36,29 +36,29 @@ Object { }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": Object { - "DependsOn": Array [ + "Resources": { + "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": { + "DependsOn": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "45b7ed524ce2b119dd4f2b8642ae8bfaf0df45bc6bd705072ae4ee6d1a999241.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", "Arn", ], @@ -68,44 +68,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:GetParameter", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", - Object { + { "Ref": "AWS::AccountId", }, ":parameter/cdk/EdgeFunctionArn/*", @@ -122,27 +122,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "cstructs.com.", }, "Type": "AWS::Route53::HostedZone", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -151,27 +151,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -182,12 +182,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -198,42 +198,42 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortener201C0678": Object { - "DependsOn": Array [ + "UrlShortener201C0678": { + "DependsOn": [ "UrlShortenerServiceRoleDefaultPolicyC2E011EF", "UrlShortenerServiceRoleD261E374", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "c24177eb20adda044c41ac4cd3fb80790ea886b6787756aa868126f2a94052a4.zip", }, "Description": "src/url-shortener/shortener.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "BUCKET_NAME": Object { + "BUCKET_NAME": { "Ref": "UrlShortenerBucket14C129A7", }, "DOMAIN_NAME": "cstructs.com", - "TABLE_NAME": Object { + "TABLE_NAME": { "Ref": "UrlShortenerTable9C0A20BB", }, }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerServiceRoleD261E374", "Arn", ], @@ -242,26 +242,26 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerARecord899EAFB0": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerARecord899EAFB0": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -269,26 +269,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerAaaaRecordF6DE6BF6": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerAaaaRecordF6DE6BF6": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -296,19 +296,19 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerBucket14C129A7": Object { + "UrlShortenerBucket14C129A7": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "BucketName": "cloudstructs-url-shortener-cstructs.com", - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 60, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -318,30 +318,30 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "UrlShortenerBucketPolicy54D38B43": Object { - "Properties": Object { - "Bucket": Object { + "UrlShortenerBucketPolicy54D38B43": { + "Properties": { + "Bucket": { "Ref": "UrlShortenerBucket14C129A7", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:GetObject", "Effect": "Allow", - "Principal": Object { - "CanonicalUser": Object { - "Fn::GetAtt": Array [ + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", "S3CanonicalUserId", ], }, }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -357,21 +357,21 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "UrlShortenerCertificateCertificateRequestorFunction12DFA935": Object { - "DependsOn": Array [ + "UrlShortenerCertificateCertificateRequestorFunction12DFA935": { + "DependsOn": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", "Arn", ], @@ -381,27 +381,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -412,12 +412,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -426,24 +426,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -454,24 +454,24 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": Object { + "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "cstructs.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunction12DFA935", "Arn", ], @@ -480,20 +480,20 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerDistributionA56BF25C": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "UrlShortenerDistributionA56BF25C": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "cstructs.com", ], - "DefaultCacheBehavior": Object { + "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "UrlShortenerRedirectArnReaderA9D24530", "FunctionArn", ], @@ -506,22 +506,22 @@ Object { "Enabled": true, "HttpVersion": "http2and3", "IPV6Enabled": true, - "Origins": Array [ - Object { - "DomainName": Object { - "Fn::GetAtt": Array [ + "Origins": [ + { + "DomainName": { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "RegionalDomainName", ], }, "Id": "StackUrlShortenerDistributionOrigin13B4BC1F2", - "S3OriginConfig": Object { - "OriginAccessIdentity": Object { - "Fn::Join": Array [ + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ "", - Array [ + [ "origin-access-identity/cloudfront/", - Object { + { "Ref": "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", }, ], @@ -530,9 +530,9 @@ Object { }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorResource3E9FD60B", "Arn", ], @@ -544,30 +544,30 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": Object { - "Properties": Object { - "CloudFrontOriginAccessIdentityConfig": Object { + "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": { + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for StackUrlShortenerDistributionOrigin13B4BC1F2", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, - "UrlShortenerLogRetention2FFA6E68": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "UrlShortenerLogRetention2FFA6E68": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "UrlShortener201C0678", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -575,14 +575,14 @@ Object { }, "Type": "Custom::LogRetention", }, - "UrlShortenerRedirectArnReaderA9D24530": Object { + "UrlShortenerRedirectArnReaderA9D24530": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ParameterName": "/cdk/EdgeFunctionArn/eu-west-1/Stack/UrlShortener/Redirect", "RefreshToken": "RedirectCurrentVersion479E25EC1afc83c02ee1b6fdc2114827b475aca7", "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A", "Arn", ], @@ -591,27 +591,27 @@ Object { "Type": "Custom::CrossRegionStringParameterReader", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerServiceRoleD261E374": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerServiceRoleD261E374": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -622,22 +622,22 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerServiceRoleDefaultPolicyC2E011EF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerServiceRoleDefaultPolicyC2E011EF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:PutObject", "s3:Abort*", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -647,17 +647,17 @@ Object { ], }, }, - Object { + { "Action": "dynamodb:UpdateItem", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "UrlShortenerTable9C0A20BB", "Arn", ], }, - Object { + { "Ref": "AWS::NoValue", }, ], @@ -666,26 +666,26 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerServiceRoleDefaultPolicyC2E011EF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerServiceRoleD261E374", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerTable9C0A20BB": Object { + "UrlShortenerTable9C0A20BB": { "DeletionPolicy": "Delete", - "Properties": Object { - "AttributeDefinitions": Array [ - Object { + "Properties": { + "AttributeDefinitions": [ + { "AttributeName": "key", "AttributeType": "S", }, ], "BillingMode": "PAY_PER_REQUEST", - "KeySchema": Array [ - Object { + "KeySchema": [ + { "AttributeName": "key", "KeyType": "HASH", }, @@ -694,13 +694,13 @@ Object { "Type": "AWS::DynamoDB::Table", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomC0F539C8", ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D", "Arn", ], @@ -708,33 +708,33 @@ Object { }, "Type": "AWS::ApiGateway::Account", }, - "UrlShortenerUrlShortenercstructscomC0F539C8": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomC0F539C8": { + "Properties": { "Name": "UrlShortenercstructs.com", }, "Type": "AWS::ApiGateway::RestApi", }, - "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", @@ -745,60 +745,60 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerUrlShortenercstructscomDeployment4A14831A931fca1a918eda4882130d1439843b80": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomDeployment4A14831A931fca1a918eda4882130d1439843b80": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F", "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", "UrlShortenerUrlShortenercstructscomPOSTEA096275", ], - "Properties": Object { + "Properties": { "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Deployment", }, - "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": Object { - "Properties": Object { - "DeploymentId": Object { + "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": { + "Properties": { + "DeploymentId": { "Ref": "UrlShortenerUrlShortenercstructscomDeployment4A14831A931fca1a918eda4882130d1439843b80", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "StageName": "prod", }, "Type": "AWS::ApiGateway::Stage", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/", @@ -808,30 +808,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/", @@ -841,24 +841,24 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTEA096275": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTEA096275": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -868,51 +868,51 @@ Object { ], }, }, - "ResourceId": Object { - "Fn::GetAtt": Array [ + "ResourceId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ + "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": { + "Properties": { + "ParentId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, "PathPart": "{proxy+}", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Resource", }, - "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -922,43 +922,43 @@ Object { ], }, }, - "ResourceId": Object { + "ResourceId": { "Ref": "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/*", @@ -968,30 +968,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/*", @@ -1002,22 +1002,22 @@ Object { "Type": "AWS::Lambda::Permission", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -1033,33 +1033,33 @@ Object { `; exports[`UrlShortener with API gateway endpoint 1`] = ` -Object { - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { +{ + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Outputs": Object { - "UrlShortenerUrlShortenercstructscomEndpointA30033CB": Object { - "Value": Object { - "Fn::Join": Array [ + "Outputs": { + "UrlShortenerUrlShortenercstructscomEndpointA30033CB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/", @@ -1068,66 +1068,66 @@ Object { }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "ApiGatewayEndpoint7D908680": Object { - "Properties": Object { + "Resources": { + "ApiGatewayEndpoint7D908680": { + "Properties": { "PrivateDnsEnabled": true, - "SecurityGroupIds": Array [ - Object { - "Fn::GetAtt": Array [ + "SecurityGroupIds": [ + { + "Fn::GetAtt": [ "ApiGatewayEndpointSecurityGroup23EEE7E3", "GroupId", ], }, ], "ServiceName": "com.amazonaws.eu-west-1.execute-api", - "SubnetIds": Array [ - Object { + "SubnetIds": [ + { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, - Object { + { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, ], "VpcEndpointType": "Interface", - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::VPCEndpoint", }, - "ApiGatewayEndpointSecurityGroup23EEE7E3": Object { - "Properties": Object { + "ApiGatewayEndpointSecurityGroup23EEE7E3": { + "Properties": { "GroupDescription": "Stack/ApiGatewayEndpoint/SecurityGroup", - "SecurityGroupEgress": Array [ - Object { + "SecurityGroupEgress": [ + { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], - "SecurityGroupIngress": Array [ - Object { - "CidrIp": Object { - "Fn::GetAtt": Array [ + "SecurityGroupIngress": [ + { + "CidrIp": { + "Fn::GetAtt": [ "Vpc8378EB38", "CidrBlock", ], }, - "Description": Object { - "Fn::Join": Array [ + "Description": { + "Fn::Join": [ "", - Array [ + [ "from ", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "Vpc8378EB38", "CidrBlock", ], @@ -1141,27 +1141,27 @@ Object { "ToPort": 443, }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": Object { - "DependsOn": Array [ + "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": { + "DependsOn": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "45b7ed524ce2b119dd4f2b8642ae8bfaf0df45bc6bd705072ae4ee6d1a999241.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", "Arn", ], @@ -1171,44 +1171,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:GetParameter", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", - Object { + { "Ref": "AWS::AccountId", }, ":parameter/cdk/EdgeFunctionArn/*", @@ -1225,27 +1225,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "cstructs.com.", }, "Type": "AWS::Route53::HostedZone", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -1254,27 +1254,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -1285,12 +1285,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -1301,42 +1301,42 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortener201C0678": Object { - "DependsOn": Array [ + "UrlShortener201C0678": { + "DependsOn": [ "UrlShortenerServiceRoleDefaultPolicyC2E011EF", "UrlShortenerServiceRoleD261E374", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "c24177eb20adda044c41ac4cd3fb80790ea886b6787756aa868126f2a94052a4.zip", }, "Description": "src/url-shortener/shortener.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "BUCKET_NAME": Object { + "BUCKET_NAME": { "Ref": "UrlShortenerBucket14C129A7", }, "DOMAIN_NAME": "cstructs.com", - "TABLE_NAME": Object { + "TABLE_NAME": { "Ref": "UrlShortenerTable9C0A20BB", }, }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerServiceRoleD261E374", "Arn", ], @@ -1345,26 +1345,26 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerARecord899EAFB0": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerARecord899EAFB0": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -1372,26 +1372,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerAaaaRecordF6DE6BF6": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerAaaaRecordF6DE6BF6": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -1399,19 +1399,19 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerBucket14C129A7": Object { + "UrlShortenerBucket14C129A7": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "BucketName": "cloudstructs-url-shortener-cstructs.com", - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 365, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -1421,30 +1421,30 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "UrlShortenerBucketPolicy54D38B43": Object { - "Properties": Object { - "Bucket": Object { + "UrlShortenerBucketPolicy54D38B43": { + "Properties": { + "Bucket": { "Ref": "UrlShortenerBucket14C129A7", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:GetObject", "Effect": "Allow", - "Principal": Object { - "CanonicalUser": Object { - "Fn::GetAtt": Array [ + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", "S3CanonicalUserId", ], }, }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -1460,21 +1460,21 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "UrlShortenerCertificateCertificateRequestorFunction12DFA935": Object { - "DependsOn": Array [ + "UrlShortenerCertificateCertificateRequestorFunction12DFA935": { + "DependsOn": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", "Arn", ], @@ -1484,27 +1484,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -1515,12 +1515,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -1529,24 +1529,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -1557,24 +1557,24 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": Object { + "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "cstructs.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunction12DFA935", "Arn", ], @@ -1583,20 +1583,20 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerDistributionA56BF25C": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "UrlShortenerDistributionA56BF25C": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "cstructs.com", ], - "DefaultCacheBehavior": Object { + "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "UrlShortenerRedirectArnReaderA9D24530", "FunctionArn", ], @@ -1609,22 +1609,22 @@ Object { "Enabled": true, "HttpVersion": "http2and3", "IPV6Enabled": true, - "Origins": Array [ - Object { - "DomainName": Object { - "Fn::GetAtt": Array [ + "Origins": [ + { + "DomainName": { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "RegionalDomainName", ], }, "Id": "StackUrlShortenerDistributionOrigin13B4BC1F2", - "S3OriginConfig": Object { - "OriginAccessIdentity": Object { - "Fn::Join": Array [ + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ "", - Array [ + [ "origin-access-identity/cloudfront/", - Object { + { "Ref": "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", }, ], @@ -1633,9 +1633,9 @@ Object { }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorResource3E9FD60B", "Arn", ], @@ -1647,30 +1647,30 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": Object { - "Properties": Object { - "CloudFrontOriginAccessIdentityConfig": Object { + "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": { + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for StackUrlShortenerDistributionOrigin13B4BC1F2", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, - "UrlShortenerLogRetention2FFA6E68": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "UrlShortenerLogRetention2FFA6E68": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "UrlShortener201C0678", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -1678,14 +1678,14 @@ Object { }, "Type": "Custom::LogRetention", }, - "UrlShortenerRedirectArnReaderA9D24530": Object { + "UrlShortenerRedirectArnReaderA9D24530": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ParameterName": "/cdk/EdgeFunctionArn/eu-west-1/Stack/UrlShortener/Redirect", "RefreshToken": "RedirectCurrentVersion479E25EC1afc83c02ee1b6fdc2114827b475aca7", "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A", "Arn", ], @@ -1694,27 +1694,27 @@ Object { "Type": "Custom::CrossRegionStringParameterReader", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerServiceRoleD261E374": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerServiceRoleD261E374": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -1725,22 +1725,22 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerServiceRoleDefaultPolicyC2E011EF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerServiceRoleDefaultPolicyC2E011EF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:PutObject", "s3:Abort*", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -1750,17 +1750,17 @@ Object { ], }, }, - Object { + { "Action": "dynamodb:UpdateItem", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "UrlShortenerTable9C0A20BB", "Arn", ], }, - Object { + { "Ref": "AWS::NoValue", }, ], @@ -1769,26 +1769,26 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerServiceRoleDefaultPolicyC2E011EF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerServiceRoleD261E374", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerTable9C0A20BB": Object { + "UrlShortenerTable9C0A20BB": { "DeletionPolicy": "Delete", - "Properties": Object { - "AttributeDefinitions": Array [ - Object { + "Properties": { + "AttributeDefinitions": [ + { "AttributeName": "key", "AttributeType": "S", }, ], "BillingMode": "PAY_PER_REQUEST", - "KeySchema": Array [ - Object { + "KeySchema": [ + { "AttributeName": "key", "KeyType": "HASH", }, @@ -1797,13 +1797,13 @@ Object { "Type": "AWS::DynamoDB::Table", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomC0F539C8", ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D", "Arn", ], @@ -1811,27 +1811,27 @@ Object { }, "Type": "AWS::ApiGateway::Account", }, - "UrlShortenerUrlShortenercstructscomC0F539C8": Object { - "Properties": Object { - "EndpointConfiguration": Object { - "Types": Array [ + "UrlShortenerUrlShortenercstructscomC0F539C8": { + "Properties": { + "EndpointConfiguration": { + "Types": [ "PRIVATE", ], }, "Name": "UrlShortenercstructs.com", - "Policy": Object { - "Statement": Array [ - Object { + "Policy": { + "Statement": [ + { "Action": "execute-api:Invoke", - "Condition": Object { - "StringEquals": Object { - "aws:SourceVpce": Object { + "Condition": { + "StringEquals": { + "aws:SourceVpce": { "Ref": "ApiGatewayEndpoint7D908680", }, }, }, "Effect": "Allow", - "Principal": Object { + "Principal": { "AWS": "*", }, "Resource": "execute-api:/*", @@ -1842,27 +1842,27 @@ Object { }, "Type": "AWS::ApiGateway::RestApi", }, - "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", @@ -1873,60 +1873,60 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerUrlShortenercstructscomDeployment4A14831Ab8d2c81dd4d91d061c7fd578b5258843": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomDeployment4A14831Ab8d2c81dd4d91d061c7fd578b5258843": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F", "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", "UrlShortenerUrlShortenercstructscomPOSTEA096275", ], - "Properties": Object { + "Properties": { "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Deployment", }, - "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": Object { - "Properties": Object { - "DeploymentId": Object { + "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": { + "Properties": { + "DeploymentId": { "Ref": "UrlShortenerUrlShortenercstructscomDeployment4A14831Ab8d2c81dd4d91d061c7fd578b5258843", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "StageName": "prod", }, "Type": "AWS::ApiGateway::Stage", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/", @@ -1936,30 +1936,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/", @@ -1969,24 +1969,24 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTEA096275": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTEA096275": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -1996,51 +1996,51 @@ Object { ], }, }, - "ResourceId": Object { - "Fn::GetAtt": Array [ + "ResourceId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ + "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": { + "Properties": { + "ParentId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, "PathPart": "{proxy+}", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Resource", }, - "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -2050,43 +2050,43 @@ Object { ], }, }, - "ResourceId": Object { + "ResourceId": { "Ref": "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/*", @@ -2096,30 +2096,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/*", @@ -2129,14 +2129,14 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "Vpc8378EB38": Object { - "Properties": Object { + "Vpc8378EB38": { + "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc", }, @@ -2144,10 +2144,10 @@ Object { }, "Type": "AWS::EC2::VPC", }, - "VpcIGWD7BA715C": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcIGWD7BA715C": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc", }, @@ -2155,164 +2155,164 @@ Object { }, "Type": "AWS::EC2::InternetGateway", }, - "VpcPrivateSubnet1DefaultRouteBE02A9ED": Object { - "Properties": Object { + "VpcPrivateSubnet1DefaultRouteBE02A9ED": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "VpcPublicSubnet1NATGateway4D7517AA", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet1RouteTableAssociation70C59FA6": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet1RouteTableAssociation70C59FA6": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet1RouteTableB2C5B500": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet1RouteTableB2C5B500": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet1Subnet536B997A": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "VpcPrivateSubnet1Subnet536B997A": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.128.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Stack/Vpc/PrivateSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPrivateSubnet2DefaultRoute060D2087": Object { - "Properties": Object { + "VpcPrivateSubnet2DefaultRoute060D2087": { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "NatGatewayId": Object { + "NatGatewayId": { "Ref": "VpcPublicSubnet2NATGateway9182C01D", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, }, "Type": "AWS::EC2::Route", }, - "VpcPrivateSubnet2RouteTableA678073B": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPrivateSubnet2RouteTableA678073B": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPrivateSubnet2RouteTableAssociationA89CAD56": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPrivateSubnet2RouteTableAssociationA89CAD56": { + "Properties": { + "RouteTableId": { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPrivateSubnet2Subnet3788AAA1": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "VpcPrivateSubnet2Subnet3788AAA1": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.192.0/18", "MapPublicIpOnLaunch": false, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Private", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Private", }, - Object { + { "Key": "Name", "Value": "Stack/Vpc/PrivateSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet1DefaultRoute3DA9E72A": Object { - "DependsOn": Array [ + "VpcPublicSubnet1DefaultRoute3DA9E72A": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet1EIPD7E02669": Object { - "Properties": Object { + "VpcPublicSubnet1EIPD7E02669": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet1", }, @@ -2320,19 +2320,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "VpcPublicSubnet1NATGateway4D7517AA": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "VpcPublicSubnet1NATGateway4D7517AA": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "VpcPublicSubnet1EIPD7E02669", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet1", }, @@ -2340,83 +2340,83 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "VpcPublicSubnet1RouteTable6C95E38E": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet1RouteTable6C95E38E": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet1RouteTableAssociation97140677": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet1RouteTableAssociation97140677": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet1Subnet5C2D37C4": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "VpcPublicSubnet1Subnet5C2D37C4": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 0, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.0.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet1", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcPublicSubnet2DefaultRoute97F91067": Object { - "DependsOn": Array [ + "VpcPublicSubnet2DefaultRoute97F91067": { + "DependsOn": [ "VpcVPCGWBF912B6E", ], - "Properties": Object { + "Properties": { "DestinationCidrBlock": "0.0.0.0/0", - "GatewayId": Object { + "GatewayId": { "Ref": "VpcIGWD7BA715C", }, - "RouteTableId": Object { + "RouteTableId": { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, }, "Type": "AWS::EC2::Route", }, - "VpcPublicSubnet2EIP3C605A87": Object { - "Properties": Object { + "VpcPublicSubnet2EIP3C605A87": { + "Properties": { "Domain": "vpc", - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet2", }, @@ -2424,19 +2424,19 @@ Object { }, "Type": "AWS::EC2::EIP", }, - "VpcPublicSubnet2NATGateway9182C01D": Object { - "Properties": Object { - "AllocationId": Object { - "Fn::GetAtt": Array [ + "VpcPublicSubnet2NATGateway9182C01D": { + "Properties": { + "AllocationId": { + "Fn::GetAtt": [ "VpcPublicSubnet2EIP3C605A87", "AllocationId", ], }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet2Subnet691E08A3", }, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet2", }, @@ -2444,91 +2444,91 @@ Object { }, "Type": "AWS::EC2::NatGateway", }, - "VpcPublicSubnet2RouteTable94F7E489": Object { - "Properties": Object { - "Tags": Array [ - Object { + "VpcPublicSubnet2RouteTable94F7E489": { + "Properties": { + "Tags": [ + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, - "VpcPublicSubnet2RouteTableAssociationDD5762D8": Object { - "Properties": Object { - "RouteTableId": Object { + "VpcPublicSubnet2RouteTableAssociationDD5762D8": { + "Properties": { + "RouteTableId": { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, - "SubnetId": Object { + "SubnetId": { "Ref": "VpcPublicSubnet2Subnet691E08A3", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, - "VpcPublicSubnet2Subnet691E08A3": Object { - "Properties": Object { - "AvailabilityZone": Object { - "Fn::Select": Array [ + "VpcPublicSubnet2Subnet691E08A3": { + "Properties": { + "AvailabilityZone": { + "Fn::Select": [ 1, - Object { + { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.64.0/18", "MapPublicIpOnLaunch": true, - "Tags": Array [ - Object { + "Tags": [ + { "Key": "aws-cdk:subnet-name", "Value": "Public", }, - Object { + { "Key": "aws-cdk:subnet-type", "Value": "Public", }, - Object { + { "Key": "Name", "Value": "Stack/Vpc/PublicSubnet2", }, ], - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, - "VpcVPCGWBF912B6E": Object { - "Properties": Object { - "InternetGatewayId": Object { + "VpcVPCGWBF912B6E": { + "Properties": { + "InternetGatewayId": { "Ref": "VpcIGWD7BA715C", }, - "VpcId": Object { + "VpcId": { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -2544,33 +2544,33 @@ Object { `; exports[`UrlShortener with CORS 1`] = ` -Object { - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { +{ + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Outputs": Object { - "UrlShortenerUrlShortenercstructscomEndpointA30033CB": Object { - "Value": Object { - "Fn::Join": Array [ + "Outputs": { + "UrlShortenerUrlShortenercstructscomEndpointA30033CB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/", @@ -2579,29 +2579,29 @@ Object { }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": Object { - "DependsOn": Array [ + "Resources": { + "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": { + "DependsOn": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "45b7ed524ce2b119dd4f2b8642ae8bfaf0df45bc6bd705072ae4ee6d1a999241.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", "Arn", ], @@ -2611,44 +2611,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:GetParameter", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", - Object { + { "Ref": "AWS::AccountId", }, ":parameter/cdk/EdgeFunctionArn/*", @@ -2665,27 +2665,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "cstructs.com.", }, "Type": "AWS::Route53::HostedZone", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -2694,27 +2694,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -2725,12 +2725,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -2741,43 +2741,43 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortener201C0678": Object { - "DependsOn": Array [ + "UrlShortener201C0678": { + "DependsOn": [ "UrlShortenerServiceRoleDefaultPolicyC2E011EF", "UrlShortenerServiceRoleD261E374", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "c24177eb20adda044c41ac4cd3fb80790ea886b6787756aa868126f2a94052a4.zip", }, "Description": "src/url-shortener/shortener.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "BUCKET_NAME": Object { + "BUCKET_NAME": { "Ref": "UrlShortenerBucket14C129A7", }, "CORS_ALLOW_ORIGINS": "https://www.example.com", "DOMAIN_NAME": "cstructs.com", - "TABLE_NAME": Object { + "TABLE_NAME": { "Ref": "UrlShortenerTable9C0A20BB", }, }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerServiceRoleD261E374", "Arn", ], @@ -2786,26 +2786,26 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerARecord899EAFB0": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerARecord899EAFB0": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -2813,26 +2813,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerAaaaRecordF6DE6BF6": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerAaaaRecordF6DE6BF6": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -2840,19 +2840,19 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerBucket14C129A7": Object { + "UrlShortenerBucket14C129A7": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "BucketName": "cloudstructs-url-shortener-cstructs.com", - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 365, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -2862,30 +2862,30 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "UrlShortenerBucketPolicy54D38B43": Object { - "Properties": Object { - "Bucket": Object { + "UrlShortenerBucketPolicy54D38B43": { + "Properties": { + "Bucket": { "Ref": "UrlShortenerBucket14C129A7", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:GetObject", "Effect": "Allow", - "Principal": Object { - "CanonicalUser": Object { - "Fn::GetAtt": Array [ + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", "S3CanonicalUserId", ], }, }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -2901,21 +2901,21 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "UrlShortenerCertificateCertificateRequestorFunction12DFA935": Object { - "DependsOn": Array [ + "UrlShortenerCertificateCertificateRequestorFunction12DFA935": { + "DependsOn": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", "Arn", ], @@ -2925,27 +2925,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -2956,12 +2956,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -2970,24 +2970,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -2998,24 +2998,24 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": Object { + "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "cstructs.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunction12DFA935", "Arn", ], @@ -3024,20 +3024,20 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerDistributionA56BF25C": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "UrlShortenerDistributionA56BF25C": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "cstructs.com", ], - "DefaultCacheBehavior": Object { + "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "UrlShortenerRedirectArnReaderA9D24530", "FunctionArn", ], @@ -3050,22 +3050,22 @@ Object { "Enabled": true, "HttpVersion": "http2and3", "IPV6Enabled": true, - "Origins": Array [ - Object { - "DomainName": Object { - "Fn::GetAtt": Array [ + "Origins": [ + { + "DomainName": { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "RegionalDomainName", ], }, "Id": "StackUrlShortenerDistributionOrigin13B4BC1F2", - "S3OriginConfig": Object { - "OriginAccessIdentity": Object { - "Fn::Join": Array [ + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ "", - Array [ + [ "origin-access-identity/cloudfront/", - Object { + { "Ref": "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", }, ], @@ -3074,9 +3074,9 @@ Object { }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorResource3E9FD60B", "Arn", ], @@ -3088,30 +3088,30 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": Object { - "Properties": Object { - "CloudFrontOriginAccessIdentityConfig": Object { + "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": { + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for StackUrlShortenerDistributionOrigin13B4BC1F2", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, - "UrlShortenerLogRetention2FFA6E68": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "UrlShortenerLogRetention2FFA6E68": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "UrlShortener201C0678", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -3119,14 +3119,14 @@ Object { }, "Type": "Custom::LogRetention", }, - "UrlShortenerRedirectArnReaderA9D24530": Object { + "UrlShortenerRedirectArnReaderA9D24530": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ParameterName": "/cdk/EdgeFunctionArn/eu-west-1/Stack/UrlShortener/Redirect", "RefreshToken": "RedirectCurrentVersion479E25EC1afc83c02ee1b6fdc2114827b475aca7", "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A", "Arn", ], @@ -3135,27 +3135,27 @@ Object { "Type": "Custom::CrossRegionStringParameterReader", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerServiceRoleD261E374": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerServiceRoleD261E374": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -3166,22 +3166,22 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerServiceRoleDefaultPolicyC2E011EF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerServiceRoleDefaultPolicyC2E011EF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:PutObject", "s3:Abort*", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -3191,17 +3191,17 @@ Object { ], }, }, - Object { + { "Action": "dynamodb:UpdateItem", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "UrlShortenerTable9C0A20BB", "Arn", ], }, - Object { + { "Ref": "AWS::NoValue", }, ], @@ -3210,26 +3210,26 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerServiceRoleDefaultPolicyC2E011EF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerServiceRoleD261E374", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerTable9C0A20BB": Object { + "UrlShortenerTable9C0A20BB": { "DeletionPolicy": "Delete", - "Properties": Object { - "AttributeDefinitions": Array [ - Object { + "Properties": { + "AttributeDefinitions": [ + { "AttributeName": "key", "AttributeType": "S", }, ], "BillingMode": "PAY_PER_REQUEST", - "KeySchema": Array [ - Object { + "KeySchema": [ + { "AttributeName": "key", "KeyType": "HASH", }, @@ -3238,13 +3238,13 @@ Object { "Type": "AWS::DynamoDB::Table", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomC0F539C8", ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D", "Arn", ], @@ -3252,33 +3252,33 @@ Object { }, "Type": "AWS::ApiGateway::Account", }, - "UrlShortenerUrlShortenercstructscomC0F539C8": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomC0F539C8": { + "Properties": { "Name": "UrlShortenercstructs.com", }, "Type": "AWS::ApiGateway::RestApi", }, - "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", @@ -3289,42 +3289,42 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerUrlShortenercstructscomDeployment4A14831Ade55b507c68b4bee633011271d9701a9": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomDeployment4A14831Ade55b507c68b4bee633011271d9701a9": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomproxyOPTIONSC9A0AB8C", "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F", "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", "UrlShortenerUrlShortenercstructscomOPTIONS76630D17", "UrlShortenerUrlShortenercstructscomPOSTEA096275", ], - "Properties": Object { + "Properties": { "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Deployment", }, - "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": Object { - "Properties": Object { - "DeploymentId": Object { + "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": { + "Properties": { + "DeploymentId": { "Ref": "UrlShortenerUrlShortenercstructscomDeployment4A14831Ade55b507c68b4bee633011271d9701a9", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "StageName": "prod", }, "Type": "AWS::ApiGateway::Stage", }, - "UrlShortenerUrlShortenercstructscomOPTIONS76630D17": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomOPTIONS76630D17": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", - "Integration": Object { - "IntegrationResponses": Array [ - Object { - "ResponseParameters": Object { + "Integration": { + "IntegrationResponses": [ + { + "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent'", "method.response.header.Access-Control-Allow-Methods": "'OPTIONS,GET,PUT,POST,DELETE,PATCH,HEAD'", "method.response.header.Access-Control-Allow-Origin": "'https://www.example.com'", @@ -3333,14 +3333,14 @@ Object { "StatusCode": "204", }, ], - "RequestTemplates": Object { + "RequestTemplates": { "application/json": "{ statusCode: 200 }", }, "Type": "MOCK", }, - "MethodResponses": Array [ - Object { - "ResponseParameters": Object { + "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, @@ -3349,46 +3349,46 @@ Object { "StatusCode": "204", }, ], - "ResourceId": Object { - "Fn::GetAtt": Array [ + "ResourceId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/", @@ -3398,30 +3398,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/", @@ -3431,24 +3431,24 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTEA096275": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTEA096275": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -3458,41 +3458,41 @@ Object { ], }, }, - "ResourceId": Object { - "Fn::GetAtt": Array [ + "ResourceId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ + "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": { + "Properties": { + "ParentId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, "PathPart": "{proxy+}", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Resource", }, - "UrlShortenerUrlShortenercstructscomproxyOPTIONSC9A0AB8C": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyOPTIONSC9A0AB8C": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", - "Integration": Object { - "IntegrationResponses": Array [ - Object { - "ResponseParameters": Object { + "Integration": { + "IntegrationResponses": [ + { + "ResponseParameters": { "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent'", "method.response.header.Access-Control-Allow-Methods": "'OPTIONS,GET,PUT,POST,DELETE,PATCH,HEAD'", "method.response.header.Access-Control-Allow-Origin": "'https://www.example.com'", @@ -3501,14 +3501,14 @@ Object { "StatusCode": "204", }, ], - "RequestTemplates": Object { + "RequestTemplates": { "application/json": "{ statusCode: 200 }", }, "Type": "MOCK", }, - "MethodResponses": Array [ - Object { - "ResponseParameters": Object { + "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, @@ -3517,33 +3517,33 @@ Object { "StatusCode": "204", }, ], - "ResourceId": Object { + "ResourceId": { "Ref": "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -3553,43 +3553,43 @@ Object { ], }, }, - "ResourceId": Object { + "ResourceId": { "Ref": "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/*", @@ -3599,30 +3599,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/*", @@ -3633,22 +3633,22 @@ Object { "Type": "AWS::Lambda::Permission", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -3664,33 +3664,33 @@ Object { `; exports[`UrlShortener with IAM authorization 1`] = ` -Object { - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { +{ + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Outputs": Object { - "UrlShortenerUrlShortenercstructscomEndpointA30033CB": Object { - "Value": Object { - "Fn::Join": Array [ + "Outputs": { + "UrlShortenerUrlShortenercstructscomEndpointA30033CB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/", @@ -3699,29 +3699,29 @@ Object { }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": Object { - "DependsOn": Array [ + "Resources": { + "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": { + "DependsOn": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "45b7ed524ce2b119dd4f2b8642ae8bfaf0df45bc6bd705072ae4ee6d1a999241.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", "Arn", ], @@ -3731,44 +3731,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:GetParameter", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", - Object { + { "Ref": "AWS::AccountId", }, ":parameter/cdk/EdgeFunctionArn/*", @@ -3785,27 +3785,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "cstructs.com.", }, "Type": "AWS::Route53::HostedZone", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -3814,27 +3814,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -3845,12 +3845,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -3861,22 +3861,22 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "Role1ABCC5F0": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "Role1ABCC5F0": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, @@ -3886,27 +3886,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "RoleDefaultPolicy5FFB7DAB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "RoleDefaultPolicy5FFB7DAB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "execute-api:Invoke", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:aws:execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/*", @@ -3918,42 +3918,42 @@ Object { "Version": "2012-10-17", }, "PolicyName": "RoleDefaultPolicy5FFB7DAB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "Role1ABCC5F0", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortener201C0678": Object { - "DependsOn": Array [ + "UrlShortener201C0678": { + "DependsOn": [ "UrlShortenerServiceRoleDefaultPolicyC2E011EF", "UrlShortenerServiceRoleD261E374", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "c24177eb20adda044c41ac4cd3fb80790ea886b6787756aa868126f2a94052a4.zip", }, "Description": "src/url-shortener/shortener.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "BUCKET_NAME": Object { + "BUCKET_NAME": { "Ref": "UrlShortenerBucket14C129A7", }, "DOMAIN_NAME": "cstructs.com", - "TABLE_NAME": Object { + "TABLE_NAME": { "Ref": "UrlShortenerTable9C0A20BB", }, }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerServiceRoleD261E374", "Arn", ], @@ -3962,26 +3962,26 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerARecord899EAFB0": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerARecord899EAFB0": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -3989,26 +3989,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerAaaaRecordF6DE6BF6": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerAaaaRecordF6DE6BF6": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -4016,19 +4016,19 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerBucket14C129A7": Object { + "UrlShortenerBucket14C129A7": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "BucketName": "cloudstructs-url-shortener-cstructs.com", - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 365, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -4038,30 +4038,30 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "UrlShortenerBucketPolicy54D38B43": Object { - "Properties": Object { - "Bucket": Object { + "UrlShortenerBucketPolicy54D38B43": { + "Properties": { + "Bucket": { "Ref": "UrlShortenerBucket14C129A7", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:GetObject", "Effect": "Allow", - "Principal": Object { - "CanonicalUser": Object { - "Fn::GetAtt": Array [ + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", "S3CanonicalUserId", ], }, }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -4077,21 +4077,21 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "UrlShortenerCertificateCertificateRequestorFunction12DFA935": Object { - "DependsOn": Array [ + "UrlShortenerCertificateCertificateRequestorFunction12DFA935": { + "DependsOn": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", "Arn", ], @@ -4101,27 +4101,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -4132,12 +4132,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -4146,24 +4146,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -4174,24 +4174,24 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": Object { + "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "cstructs.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunction12DFA935", "Arn", ], @@ -4200,20 +4200,20 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerDistributionA56BF25C": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "UrlShortenerDistributionA56BF25C": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "cstructs.com", ], - "DefaultCacheBehavior": Object { + "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "UrlShortenerRedirectArnReaderA9D24530", "FunctionArn", ], @@ -4226,22 +4226,22 @@ Object { "Enabled": true, "HttpVersion": "http2and3", "IPV6Enabled": true, - "Origins": Array [ - Object { - "DomainName": Object { - "Fn::GetAtt": Array [ + "Origins": [ + { + "DomainName": { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "RegionalDomainName", ], }, "Id": "StackUrlShortenerDistributionOrigin13B4BC1F2", - "S3OriginConfig": Object { - "OriginAccessIdentity": Object { - "Fn::Join": Array [ + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ "", - Array [ + [ "origin-access-identity/cloudfront/", - Object { + { "Ref": "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", }, ], @@ -4250,9 +4250,9 @@ Object { }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorResource3E9FD60B", "Arn", ], @@ -4264,30 +4264,30 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": Object { - "Properties": Object { - "CloudFrontOriginAccessIdentityConfig": Object { + "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": { + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for StackUrlShortenerDistributionOrigin13B4BC1F2", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, - "UrlShortenerLogRetention2FFA6E68": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "UrlShortenerLogRetention2FFA6E68": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "UrlShortener201C0678", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -4295,14 +4295,14 @@ Object { }, "Type": "Custom::LogRetention", }, - "UrlShortenerRedirectArnReaderA9D24530": Object { + "UrlShortenerRedirectArnReaderA9D24530": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ParameterName": "/cdk/EdgeFunctionArn/eu-west-1/Stack/UrlShortener/Redirect", "RefreshToken": "RedirectCurrentVersion479E25EC1afc83c02ee1b6fdc2114827b475aca7", "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A", "Arn", ], @@ -4311,27 +4311,27 @@ Object { "Type": "Custom::CrossRegionStringParameterReader", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerServiceRoleD261E374": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerServiceRoleD261E374": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -4342,22 +4342,22 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerServiceRoleDefaultPolicyC2E011EF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerServiceRoleDefaultPolicyC2E011EF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:PutObject", "s3:Abort*", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -4367,17 +4367,17 @@ Object { ], }, }, - Object { + { "Action": "dynamodb:UpdateItem", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "UrlShortenerTable9C0A20BB", "Arn", ], }, - Object { + { "Ref": "AWS::NoValue", }, ], @@ -4386,26 +4386,26 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerServiceRoleDefaultPolicyC2E011EF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerServiceRoleD261E374", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerTable9C0A20BB": Object { + "UrlShortenerTable9C0A20BB": { "DeletionPolicy": "Delete", - "Properties": Object { - "AttributeDefinitions": Array [ - Object { + "Properties": { + "AttributeDefinitions": [ + { "AttributeName": "key", "AttributeType": "S", }, ], "BillingMode": "PAY_PER_REQUEST", - "KeySchema": Array [ - Object { + "KeySchema": [ + { "AttributeName": "key", "KeyType": "HASH", }, @@ -4414,13 +4414,13 @@ Object { "Type": "AWS::DynamoDB::Table", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomC0F539C8", ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D", "Arn", ], @@ -4428,33 +4428,33 @@ Object { }, "Type": "AWS::ApiGateway::Account", }, - "UrlShortenerUrlShortenercstructscomC0F539C8": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomC0F539C8": { + "Properties": { "Name": "UrlShortenercstructs.com", }, "Type": "AWS::ApiGateway::RestApi", }, - "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", @@ -4465,60 +4465,60 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerUrlShortenercstructscomDeployment4A14831Afe3b960ec71f7c090d7d1a1d09863cf3": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomDeployment4A14831Afe3b960ec71f7c090d7d1a1d09863cf3": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F", "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", "UrlShortenerUrlShortenercstructscomPOSTEA096275", ], - "Properties": Object { + "Properties": { "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Deployment", }, - "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": Object { - "Properties": Object { - "DeploymentId": Object { + "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": { + "Properties": { + "DeploymentId": { "Ref": "UrlShortenerUrlShortenercstructscomDeployment4A14831Afe3b960ec71f7c090d7d1a1d09863cf3", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "StageName": "prod", }, "Type": "AWS::ApiGateway::Stage", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/", @@ -4528,30 +4528,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/", @@ -4561,24 +4561,24 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTEA096275": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTEA096275": { + "Properties": { "AuthorizationType": "AWS_IAM", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -4588,51 +4588,51 @@ Object { ], }, }, - "ResourceId": Object { - "Fn::GetAtt": Array [ + "ResourceId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ + "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": { + "Properties": { + "ParentId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, "PathPart": "{proxy+}", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Resource", }, - "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": { + "Properties": { "AuthorizationType": "AWS_IAM", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -4642,43 +4642,43 @@ Object { ], }, }, - "ResourceId": Object { + "ResourceId": { "Ref": "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/*", @@ -4688,30 +4688,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/*", @@ -4722,22 +4722,22 @@ Object { "Type": "AWS::Lambda::Permission", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -4753,33 +4753,33 @@ Object { `; exports[`UrlShortener with authorizer 1`] = ` -Object { - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { +{ + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Outputs": Object { - "UrlShortenerUrlShortenercstructscomEndpointA30033CB": Object { - "Value": Object { - "Fn::Join": Array [ + "Outputs": { + "UrlShortenerUrlShortenercstructscomEndpointA30033CB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/", @@ -4788,48 +4788,48 @@ Object { }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "Cognito59F7F50E": Object { - "Properties": Object { + "Resources": { + "Cognito59F7F50E": { + "Properties": { "IdentitySource": "method.request.header.Authorization", "Name": "StackCognito7856421B", - "ProviderARNs": Array [ - Object { - "Fn::GetAtt": Array [ + "ProviderARNs": [ + { + "Fn::GetAtt": [ "UserPool6BA7E5F2", "Arn", ], }, ], - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "Type": "COGNITO_USER_POOLS", }, "Type": "AWS::ApiGateway::Authorizer", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": Object { - "DependsOn": Array [ + "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": { + "DependsOn": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "45b7ed524ce2b119dd4f2b8642ae8bfaf0df45bc6bd705072ae4ee6d1a999241.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", "Arn", ], @@ -4839,44 +4839,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:GetParameter", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", - Object { + { "Ref": "AWS::AccountId", }, ":parameter/cdk/EdgeFunctionArn/*", @@ -4893,27 +4893,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "cstructs.com.", }, "Type": "AWS::Route53::HostedZone", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -4922,27 +4922,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -4953,12 +4953,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -4969,42 +4969,42 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortener201C0678": Object { - "DependsOn": Array [ + "UrlShortener201C0678": { + "DependsOn": [ "UrlShortenerServiceRoleDefaultPolicyC2E011EF", "UrlShortenerServiceRoleD261E374", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "c24177eb20adda044c41ac4cd3fb80790ea886b6787756aa868126f2a94052a4.zip", }, "Description": "src/url-shortener/shortener.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "BUCKET_NAME": Object { + "BUCKET_NAME": { "Ref": "UrlShortenerBucket14C129A7", }, "DOMAIN_NAME": "cstructs.com", - "TABLE_NAME": Object { + "TABLE_NAME": { "Ref": "UrlShortenerTable9C0A20BB", }, }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerServiceRoleD261E374", "Arn", ], @@ -5013,26 +5013,26 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerARecord899EAFB0": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerARecord899EAFB0": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -5040,26 +5040,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerAaaaRecordF6DE6BF6": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerAaaaRecordF6DE6BF6": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "cstructs.com.", @@ -5067,19 +5067,19 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerBucket14C129A7": Object { + "UrlShortenerBucket14C129A7": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "BucketName": "cloudstructs-url-shortener-cstructs.com", - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 365, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -5089,30 +5089,30 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "UrlShortenerBucketPolicy54D38B43": Object { - "Properties": Object { - "Bucket": Object { + "UrlShortenerBucketPolicy54D38B43": { + "Properties": { + "Bucket": { "Ref": "UrlShortenerBucket14C129A7", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:GetObject", "Effect": "Allow", - "Principal": Object { - "CanonicalUser": Object { - "Fn::GetAtt": Array [ + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", "S3CanonicalUserId", ], }, }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -5128,21 +5128,21 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "UrlShortenerCertificateCertificateRequestorFunction12DFA935": Object { - "DependsOn": Array [ + "UrlShortenerCertificateCertificateRequestorFunction12DFA935": { + "DependsOn": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", "Arn", ], @@ -5152,27 +5152,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -5183,12 +5183,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -5197,24 +5197,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -5225,24 +5225,24 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": Object { + "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "cstructs.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunction12DFA935", "Arn", ], @@ -5251,20 +5251,20 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerDistributionA56BF25C": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "UrlShortenerDistributionA56BF25C": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "cstructs.com", ], - "DefaultCacheBehavior": Object { + "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "UrlShortenerRedirectArnReaderA9D24530", "FunctionArn", ], @@ -5277,22 +5277,22 @@ Object { "Enabled": true, "HttpVersion": "http2and3", "IPV6Enabled": true, - "Origins": Array [ - Object { - "DomainName": Object { - "Fn::GetAtt": Array [ + "Origins": [ + { + "DomainName": { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "RegionalDomainName", ], }, "Id": "StackUrlShortenerDistributionOrigin13B4BC1F2", - "S3OriginConfig": Object { - "OriginAccessIdentity": Object { - "Fn::Join": Array [ + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ "", - Array [ + [ "origin-access-identity/cloudfront/", - Object { + { "Ref": "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", }, ], @@ -5301,9 +5301,9 @@ Object { }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorResource3E9FD60B", "Arn", ], @@ -5315,30 +5315,30 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": Object { - "Properties": Object { - "CloudFrontOriginAccessIdentityConfig": Object { + "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": { + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for StackUrlShortenerDistributionOrigin13B4BC1F2", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, - "UrlShortenerLogRetention2FFA6E68": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "UrlShortenerLogRetention2FFA6E68": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "UrlShortener201C0678", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -5346,14 +5346,14 @@ Object { }, "Type": "Custom::LogRetention", }, - "UrlShortenerRedirectArnReaderA9D24530": Object { + "UrlShortenerRedirectArnReaderA9D24530": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ParameterName": "/cdk/EdgeFunctionArn/eu-west-1/Stack/UrlShortener/Redirect", "RefreshToken": "RedirectCurrentVersion479E25EC1afc83c02ee1b6fdc2114827b475aca7", "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A", "Arn", ], @@ -5362,27 +5362,27 @@ Object { "Type": "Custom::CrossRegionStringParameterReader", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerServiceRoleD261E374": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerServiceRoleD261E374": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -5393,22 +5393,22 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerServiceRoleDefaultPolicyC2E011EF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerServiceRoleDefaultPolicyC2E011EF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:PutObject", "s3:Abort*", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -5418,17 +5418,17 @@ Object { ], }, }, - Object { + { "Action": "dynamodb:UpdateItem", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "UrlShortenerTable9C0A20BB", "Arn", ], }, - Object { + { "Ref": "AWS::NoValue", }, ], @@ -5437,26 +5437,26 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerServiceRoleDefaultPolicyC2E011EF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerServiceRoleD261E374", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerTable9C0A20BB": Object { + "UrlShortenerTable9C0A20BB": { "DeletionPolicy": "Delete", - "Properties": Object { - "AttributeDefinitions": Array [ - Object { + "Properties": { + "AttributeDefinitions": [ + { "AttributeName": "key", "AttributeType": "S", }, ], "BillingMode": "PAY_PER_REQUEST", - "KeySchema": Array [ - Object { + "KeySchema": [ + { "AttributeName": "key", "KeyType": "HASH", }, @@ -5465,13 +5465,13 @@ Object { "Type": "AWS::DynamoDB::Table", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomC0F539C8", ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D", "Arn", ], @@ -5479,33 +5479,33 @@ Object { }, "Type": "AWS::ApiGateway::Account", }, - "UrlShortenerUrlShortenercstructscomC0F539C8": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomC0F539C8": { + "Properties": { "Name": "UrlShortenercstructs.com", }, "Type": "AWS::ApiGateway::RestApi", }, - "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", @@ -5516,60 +5516,60 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerUrlShortenercstructscomDeployment4A14831Ab923fc593ebcbdd91fdfc97147847601": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomDeployment4A14831Ab923fc593ebcbdd91fdfc97147847601": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F", "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", "UrlShortenerUrlShortenercstructscomPOSTEA096275", ], - "Properties": Object { + "Properties": { "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Deployment", }, - "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": Object { - "Properties": Object { - "DeploymentId": Object { + "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": { + "Properties": { + "DeploymentId": { "Ref": "UrlShortenerUrlShortenercstructscomDeployment4A14831Ab923fc593ebcbdd91fdfc97147847601", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "StageName": "prod", }, "Type": "AWS::ApiGateway::Stage", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/", @@ -5579,30 +5579,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/", @@ -5612,27 +5612,27 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTEA096275": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTEA096275": { + "Properties": { "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { + "AuthorizerId": { "Ref": "Cognito59F7F50E", }, "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -5642,54 +5642,54 @@ Object { ], }, }, - "ResourceId": Object { - "Fn::GetAtt": Array [ + "ResourceId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ + "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": { + "Properties": { + "ParentId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, "PathPart": "{proxy+}", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Resource", }, - "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": { + "Properties": { "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { + "AuthorizerId": { "Ref": "Cognito59F7F50E", }, "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -5699,43 +5699,43 @@ Object { ], }, }, - "ResourceId": Object { + "ResourceId": { "Ref": "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/*", @@ -5745,30 +5745,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/*", @@ -5778,28 +5778,28 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UserPool6BA7E5F2": Object { + "UserPool6BA7E5F2": { "DeletionPolicy": "Retain", - "Properties": Object { - "AccountRecoverySetting": Object { - "RecoveryMechanisms": Array [ - Object { + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { "Name": "verified_phone_number", "Priority": 1, }, - Object { + { "Name": "verified_email", "Priority": 2, }, ], }, - "AdminCreateUserConfig": Object { + "AdminCreateUserConfig": { "AllowAdminCreateUserOnly": true, }, "EmailVerificationMessage": "The verification code to your new account is {####}", "EmailVerificationSubject": "Verify your new account", "SmsVerificationMessage": "The verification code to your new account is {####}", - "VerificationMessageTemplate": Object { + "VerificationMessageTemplate": { "DefaultEmailOption": "CONFIRM_WITH_CODE", "EmailMessage": "The verification code to your new account is {####}", "EmailSubject": "Verify your new account", @@ -5810,22 +5810,22 @@ Object { "UpdateReplacePolicy": "Retain", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], @@ -5841,33 +5841,33 @@ Object { `; exports[`UrlShortener with record name 1`] = ` -Object { - "Mappings": Object { - "AWSCloudFrontPartitionHostedZoneIdMap": Object { - "aws": Object { +{ + "Mappings": { + "AWSCloudFrontPartitionHostedZoneIdMap": { + "aws": { "zoneId": "Z2FDTNDATAQYW2", }, - "aws-cn": Object { + "aws-cn": { "zoneId": "Z3RFFRIM2A3IF5", }, }, }, - "Outputs": Object { - "UrlShortenerUrlShortenercstructscomEndpointA30033CB": Object { - "Value": Object { - "Fn::Join": Array [ + "Outputs": { + "UrlShortenerUrlShortenercstructscomEndpointA30033CB": { + "Value": { + "Fn::Join": [ "", - Array [ + [ "https://", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, ".execute-api.eu-west-1.", - Object { + { "Ref": "AWS::URLSuffix", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/", @@ -5876,29 +5876,29 @@ Object { }, }, }, - "Parameters": Object { - "BootstrapVersion": Object { + "Parameters": { + "BootstrapVersion": { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, - "Resources": Object { - "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": Object { - "DependsOn": Array [ + "Resources": { + "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A": { + "DependsOn": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "45b7ed524ce2b119dd4f2b8642ae8bfaf0df45bc6bd705072ae4ee6d1a999241.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825", "Arn", ], @@ -5908,44 +5908,44 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "CustomCrossRegionStringParameterReaderCustomResourceProviderRole71CD6825": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { + "ManagedPolicyArns": [ + { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "ssm:GetParameter", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", - Object { + { "Ref": "AWS::AccountId", }, ":parameter/cdk/EdgeFunctionArn/*", @@ -5962,27 +5962,27 @@ Object { }, "Type": "AWS::IAM::Role", }, - "HostedZoneDB99F866": Object { - "Properties": Object { + "HostedZoneDB99F866": { + "Properties": { "Name": "cstructs.com.", }, "Type": "AWS::Route53::HostedZone", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { - "DependsOn": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": { + "DependsOn": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "b120b13d9d868c7622e7db1b68bae4c0f82ffd0227b8c15f2cef38e186ff3827.zip", }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], @@ -5991,27 +5991,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -6022,12 +6022,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], @@ -6038,42 +6038,42 @@ Object { "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortener201C0678": Object { - "DependsOn": Array [ + "UrlShortener201C0678": { + "DependsOn": [ "UrlShortenerServiceRoleDefaultPolicyC2E011EF", "UrlShortenerServiceRoleD261E374", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "c24177eb20adda044c41ac4cd3fb80790ea886b6787756aa868126f2a94052a4.zip", }, "Description": "src/url-shortener/shortener.lambda.ts", - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "BUCKET_NAME": Object { + "BUCKET_NAME": { "Ref": "UrlShortenerBucket14C129A7", }, "DOMAIN_NAME": "short.cstructs.com", - "TABLE_NAME": Object { + "TABLE_NAME": { "Ref": "UrlShortenerTable9C0A20BB", }, }, }, "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerServiceRoleD261E374", "Arn", ], @@ -6082,26 +6082,26 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerARecord899EAFB0": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerARecord899EAFB0": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "short.cstructs.com.", @@ -6109,26 +6109,26 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerAaaaRecordF6DE6BF6": Object { - "Properties": Object { - "AliasTarget": Object { - "DNSName": Object { - "Fn::GetAtt": Array [ + "UrlShortenerAaaaRecordF6DE6BF6": { + "Properties": { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ "UrlShortenerDistributionA56BF25C", "DomainName", ], }, - "HostedZoneId": Object { - "Fn::FindInMap": Array [ + "HostedZoneId": { + "Fn::FindInMap": [ "AWSCloudFrontPartitionHostedZoneIdMap", - Object { + { "Ref": "AWS::Partition", }, "zoneId", ], }, }, - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Name": "short.cstructs.com.", @@ -6136,19 +6136,19 @@ Object { }, "Type": "AWS::Route53::RecordSet", }, - "UrlShortenerBucket14C129A7": Object { + "UrlShortenerBucket14C129A7": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "BucketName": "cloudstructs-url-shortener-short.cstructs.com", - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { + "LifecycleConfiguration": { + "Rules": [ + { "ExpirationInDays": 365, "Status": "Enabled", }, ], }, - "PublicAccessBlockConfiguration": Object { + "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, @@ -6158,30 +6158,30 @@ Object { "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, - "UrlShortenerBucketPolicy54D38B43": Object { - "Properties": Object { - "Bucket": Object { + "UrlShortenerBucketPolicy54D38B43": { + "Properties": { + "Bucket": { "Ref": "UrlShortenerBucket14C129A7", }, - "PolicyDocument": Object { - "Statement": Array [ - Object { + "PolicyDocument": { + "Statement": [ + { "Action": "s3:GetObject", "Effect": "Allow", - "Principal": Object { - "CanonicalUser": Object { - "Fn::GetAtt": Array [ + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", "S3CanonicalUserId", ], }, }, - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -6197,21 +6197,21 @@ Object { }, "Type": "AWS::S3::BucketPolicy", }, - "UrlShortenerCertificateCertificateRequestorFunction12DFA935": Object { - "DependsOn": Array [ + "UrlShortenerCertificateCertificateRequestorFunction12DFA935": { + "DependsOn": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", ], - "Properties": Object { - "Code": Object { - "S3Bucket": Object { + "Properties": { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-eu-west-1", }, "S3Key": "7af6295e521fd55af94332393ceffb3e866aac4dc4956321f7918f21e72199e4.zip", }, "Handler": "index.certificateRequestHandler", - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", "Arn", ], @@ -6221,27 +6221,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -6252,12 +6252,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "acm:RequestCertificate", "acm:DescribeCertificate", "acm:DeleteCertificate", @@ -6266,24 +6266,24 @@ Object { "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:GetChange", "Effect": "Allow", "Resource": "*", }, - Object { + { "Action": "route53:changeResourceRecordSets", "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":route53:::hostedzone/", - Object { + { "Ref": "HostedZoneDB99F866", }, ], @@ -6294,24 +6294,24 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerCertificateCertificateRequestorFunctionServiceRoleDefaultPolicy1D1F1841", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerCertificateCertificateRequestorFunctionServiceRole827D354C", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": Object { + "UrlShortenerCertificateCertificateRequestorResource3E9FD60B": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "DomainName": "short.cstructs.com", - "HostedZoneId": Object { + "HostedZoneId": { "Ref": "HostedZoneDB99F866", }, "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorFunction12DFA935", "Arn", ], @@ -6320,20 +6320,20 @@ Object { "Type": "AWS::CloudFormation::CustomResource", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerDistributionA56BF25C": Object { - "Properties": Object { - "DistributionConfig": Object { - "Aliases": Array [ + "UrlShortenerDistributionA56BF25C": { + "Properties": { + "DistributionConfig": { + "Aliases": [ "short.cstructs.com", ], - "DefaultCacheBehavior": Object { + "DefaultCacheBehavior": { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, - "LambdaFunctionAssociations": Array [ - Object { + "LambdaFunctionAssociations": [ + { "EventType": "origin-request", - "LambdaFunctionARN": Object { - "Fn::GetAtt": Array [ + "LambdaFunctionARN": { + "Fn::GetAtt": [ "UrlShortenerRedirectArnReaderA9D24530", "FunctionArn", ], @@ -6346,22 +6346,22 @@ Object { "Enabled": true, "HttpVersion": "http2and3", "IPV6Enabled": true, - "Origins": Array [ - Object { - "DomainName": Object { - "Fn::GetAtt": Array [ + "Origins": [ + { + "DomainName": { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "RegionalDomainName", ], }, "Id": "StackUrlShortenerDistributionOrigin13B4BC1F2", - "S3OriginConfig": Object { - "OriginAccessIdentity": Object { - "Fn::Join": Array [ + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ "", - Array [ + [ "origin-access-identity/cloudfront/", - Object { + { "Ref": "UrlShortenerDistributionOrigin1S3OriginCE2F6C05", }, ], @@ -6370,9 +6370,9 @@ Object { }, }, ], - "ViewerCertificate": Object { - "AcmCertificateArn": Object { - "Fn::GetAtt": Array [ + "ViewerCertificate": { + "AcmCertificateArn": { + "Fn::GetAtt": [ "UrlShortenerCertificateCertificateRequestorResource3E9FD60B", "Arn", ], @@ -6384,30 +6384,30 @@ Object { }, "Type": "AWS::CloudFront::Distribution", }, - "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": Object { - "Properties": Object { - "CloudFrontOriginAccessIdentityConfig": Object { + "UrlShortenerDistributionOrigin1S3OriginCE2F6C05": { + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { "Comment": "Identity for StackUrlShortenerDistributionOrigin13B4BC1F2", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, - "UrlShortenerLogRetention2FFA6E68": Object { - "Properties": Object { - "LogGroupName": Object { - "Fn::Join": Array [ + "UrlShortenerLogRetention2FFA6E68": { + "Properties": { + "LogGroupName": { + "Fn::Join": [ "", - Array [ + [ "/aws/lambda/", - Object { + { "Ref": "UrlShortener201C0678", }, ], ], }, "RetentionInDays": 30, - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], @@ -6415,14 +6415,14 @@ Object { }, "Type": "Custom::LogRetention", }, - "UrlShortenerRedirectArnReaderA9D24530": Object { + "UrlShortenerRedirectArnReaderA9D24530": { "DeletionPolicy": "Delete", - "Properties": Object { + "Properties": { "ParameterName": "/cdk/EdgeFunctionArn/eu-west-1/Stack/UrlShortener/Redirect", "RefreshToken": "RedirectCurrentVersion479E25EC1afc83c02ee1b6fdc2114827b475aca7", "Region": "us-east-1", - "ServiceToken": Object { - "Fn::GetAtt": Array [ + "ServiceToken": { + "Fn::GetAtt": [ "CustomCrossRegionStringParameterReaderCustomResourceProviderHandler65B5F33A", "Arn", ], @@ -6431,27 +6431,27 @@ Object { "Type": "Custom::CrossRegionStringParameterReader", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerServiceRoleD261E374": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerServiceRoleD261E374": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -6462,22 +6462,22 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerServiceRoleDefaultPolicyC2E011EF": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "UrlShortenerServiceRoleDefaultPolicyC2E011EF": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "s3:PutObject", "s3:Abort*", ], "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ + "Resource": { + "Fn::Join": [ "", - Array [ - Object { - "Fn::GetAtt": Array [ + [ + { + "Fn::GetAtt": [ "UrlShortenerBucket14C129A7", "Arn", ], @@ -6487,17 +6487,17 @@ Object { ], }, }, - Object { + { "Action": "dynamodb:UpdateItem", "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ + "Resource": [ + { + "Fn::GetAtt": [ "UrlShortenerTable9C0A20BB", "Arn", ], }, - Object { + { "Ref": "AWS::NoValue", }, ], @@ -6506,26 +6506,26 @@ Object { "Version": "2012-10-17", }, "PolicyName": "UrlShortenerServiceRoleDefaultPolicyC2E011EF", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "UrlShortenerServiceRoleD261E374", }, ], }, "Type": "AWS::IAM::Policy", }, - "UrlShortenerTable9C0A20BB": Object { + "UrlShortenerTable9C0A20BB": { "DeletionPolicy": "Delete", - "Properties": Object { - "AttributeDefinitions": Array [ - Object { + "Properties": { + "AttributeDefinitions": [ + { "AttributeName": "key", "AttributeType": "S", }, ], "BillingMode": "PAY_PER_REQUEST", - "KeySchema": Array [ - Object { + "KeySchema": [ + { "AttributeName": "key", "KeyType": "HASH", }, @@ -6534,13 +6534,13 @@ Object { "Type": "AWS::DynamoDB::Table", "UpdateReplacePolicy": "Delete", }, - "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomAccount4B9FF23F": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomC0F539C8", ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D", "Arn", ], @@ -6548,33 +6548,33 @@ Object { }, "Type": "AWS::ApiGateway::Account", }, - "UrlShortenerUrlShortenercstructscomC0F539C8": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomC0F539C8": { + "Properties": { "Name": "UrlShortenercstructs.com", }, "Type": "AWS::ApiGateway::RestApi", }, - "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "UrlShortenerUrlShortenercstructscomCloudWatchRoleF6B6739D": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", @@ -6585,60 +6585,60 @@ Object { }, "Type": "AWS::IAM::Role", }, - "UrlShortenerUrlShortenercstructscomDeployment4A14831A931fca1a918eda4882130d1439843b80": Object { - "DependsOn": Array [ + "UrlShortenerUrlShortenercstructscomDeployment4A14831A931fca1a918eda4882130d1439843b80": { + "DependsOn": [ "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F", "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", "UrlShortenerUrlShortenercstructscomPOSTEA096275", ], - "Properties": Object { + "Properties": { "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Deployment", }, - "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": Object { - "Properties": Object { - "DeploymentId": Object { + "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2": { + "Properties": { + "DeploymentId": { "Ref": "UrlShortenerUrlShortenercstructscomDeployment4A14831A931fca1a918eda4882130d1439843b80", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "StageName": "prod", }, "Type": "AWS::ApiGateway::Stage", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTE808C1A3": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/", @@ -6648,30 +6648,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOST79CEFF95": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/", @@ -6681,24 +6681,24 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomPOSTEA096275": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomPOSTEA096275": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -6708,51 +6708,51 @@ Object { ], }, }, - "ResourceId": Object { - "Fn::GetAtt": Array [ + "ResourceId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ + "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E": { + "Properties": { + "ParentId": { + "Fn::GetAtt": [ "UrlShortenerUrlShortenercstructscomC0F539C8", "RootResourceId", ], }, "PathPart": "{proxy+}", - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Resource", }, - "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOST4A20FE5F": { + "Properties": { "AuthorizationType": "NONE", "HttpMethod": "POST", - "Integration": Object { + "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ + "Uri": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":apigateway:eu-west-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ + { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], @@ -6762,43 +6762,43 @@ Object { ], }, }, - "ResourceId": Object { + "ResourceId": { "Ref": "UrlShortenerUrlShortenercstructscomproxyFA0C7D1E", }, - "RestApiId": Object { + "RestApiId": { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, }, "Type": "AWS::ApiGateway::Method", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC382A071": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomDeploymentStageprodF548EFA2", }, "/POST/*", @@ -6808,30 +6808,30 @@ Object { }, "Type": "AWS::Lambda::Permission", }, - "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": Object { - "Properties": Object { + "UrlShortenerUrlShortenercstructscomproxyPOSTApiPermissionTestStackUrlShortenerUrlShortenercstructscomBC201FCDPOSTproxyC78453B7": { + "Properties": { "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ + "FunctionName": { + "Fn::GetAtt": [ "UrlShortener201C0678", "Arn", ], }, "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ + "SourceArn": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":execute-api:eu-west-1:", - Object { + { "Ref": "AWS::AccountId", }, ":", - Object { + { "Ref": "UrlShortenerUrlShortenercstructscomC0F539C8", }, "/test-invoke-stage/POST/*", @@ -6842,22 +6842,22 @@ Object { "Type": "AWS::Lambda::Permission", }, }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ "1", "2", "3", "4", "5", ], - Object { + { "Ref": "BootstrapVersion", }, ], diff --git a/yarn.lock b/yarn.lock index 1f5635ef..3fdedd2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -102,16 +102,16 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/client-cloudformation@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudformation/-/client-cloudformation-3.478.0.tgz#79dac9cbdf66e23f6efd8fcfb10db5938496a008" - integrity sha512-tyV6ubg4HKXyG+/gG+GmaUmQ89zmthXEQ1/IvS7y5WsiatSpXVukJFtpsSQFP47QcIh0jY/hFuQDqHI4ZdAvbQ== +"@aws-sdk/client-cloudformation@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudformation/-/client-cloudformation-3.481.0.tgz#645ef14bd1f26eb0d2ff6c626861a3f5fd83dba6" + integrity sha512-fNZyLzAIkvL/8CbLzKjCLWluzKwlRmVAvSiPIa80Erck2/Qt2Rg+UXSrfelmUykBcmMam+AEWA0lT/ujqx0oGA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -123,26 +123,26 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" @@ -151,16 +151,16 @@ tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/client-dynamodb@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.478.0.tgz#7252bba20098072c1e32a9ae38a6da3987dc4585" - integrity sha512-8kFfGP9DXWMPjnYpY31Nu8evNFR4H2hK2hvYYeCJFRx05m0GwYUNeF9D0lL0g3UjeTYuhcE1YvyzaqQrUsIoIw== +"@aws-sdk/client-dynamodb@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.481.0.tgz#9466026a4c155de0bccedf69b7d3d123e321f72d" + integrity sha512-u0RsYgAE9CmykwEwydQgWKL7/PX0JQlmytMfntsmgkU0VenhQk/DctzWGpvkZpQasIFtOihhlhXPV0xcZIaN/g== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-endpoint-discovery" "3.470.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" @@ -172,26 +172,26 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-middleware" "^2.0.8" "@smithy/util-retry" "^2.0.8" @@ -200,16 +200,16 @@ tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/client-ecr@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecr/-/client-ecr-3.478.0.tgz#74c9a0cb809a1494dc2b81dc91f62d62d226a37c" - integrity sha512-FJEFzws30xL+McHx0s4fXIJ1XZsvDncYWNWU1LfLoHdhrTAQX3OXt1BLQ4l2vR5xllUhfS7SUISmuQUgRO7nbw== +"@aws-sdk/client-ecr@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecr/-/client-ecr-3.481.0.tgz#feb8f0a5d2bbc8e3c421730b97583f232030b7f0" + integrity sha512-UfxxROa0NMGQ4tm651h7VfaqmYiumu5PcWIHhEYZHZ8Hf5FINWC1++EKQwaK5sYFYAUfMwGXw0MBBG6ZlpzPEQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -221,42 +221,42 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" "@smithy/util-waiter" "^2.0.15" tslib "^2.5.0" -"@aws-sdk/client-ecs@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecs/-/client-ecs-3.478.0.tgz#b5783c93a7d1f8d45e12433d17f8632770373a85" - integrity sha512-gz5jsC/F7E38rTKa7kadAXAADyvE2u3jZPvnvBq5RPZk1xAku6kpOX2WPzfHFzfsKbvRPivoZl6cfGrTX9X0Kw== +"@aws-sdk/client-ecs@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecs/-/client-ecs-3.481.0.tgz#3e0aeae1b683be494c9796a34596f8fced7e8c19" + integrity sha512-n4sFqHFhZe10tFp/B9YinSzpTf36wtg0fwJ5SFPb+frUPK3HKiHsqwMnELT6/5APiQiAS8NvICLlwoH8wXwXQg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -268,26 +268,26 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" @@ -295,23 +295,23 @@ tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/client-eventbridge@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-eventbridge/-/client-eventbridge-3.478.0.tgz#bacfd5d6aa4ec95967e9564950c62a1d9c60d011" - integrity sha512-HVSdEeUib9p14hRStKhojNImVZp40hbAW3QLG/K+VZhFlehpVB4n3gnZsk2uwDMCo+AA1/PwQHyhUKXBbuMZWA== +"@aws-sdk/client-eventbridge@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-eventbridge/-/client-eventbridge-3.481.0.tgz#e5631ace2c02bb3e7ea09ba72c9b34ed5d21d19e" + integrity sha512-thKRmn4mM/esGmfSgZ94jJeLLCKSA3DThsOxWyKBauualLermThOp9w+RkgWJf2fmGuhTKf5dtIDMdhaEnJqsw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" "@aws-sdk/middleware-signing" "3.468.0" "@aws-sdk/middleware-user-agent" "3.478.0" "@aws-sdk/region-config-resolver" "3.470.0" - "@aws-sdk/signature-v4-multi-region" "3.474.0" + "@aws-sdk/signature-v4-multi-region" "3.481.0" "@aws-sdk/types" "3.468.0" "@aws-sdk/util-endpoints" "3.478.0" "@aws-sdk/util-user-agent-browser" "3.468.0" @@ -322,35 +322,35 @@ "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" -"@aws-sdk/client-iam@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.478.0.tgz#5ed2003305c8fd378c9e06bc615bbab9eca0a9ec" - integrity sha512-1jcf75TjIeGlL6lQ/FcQD7Nb+DRxmtgh+H2jm4/WMrXI7ESB16qfVcqipSqbo3S2KLhOAwJD5cuLB4DnPGf3qQ== +"@aws-sdk/client-iam@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.481.0.tgz#2371e53d099f038f538cbea495f8c463ac6a95c0" + integrity sha512-YZ5h24txrk7IV8zYVe0HTF+ZXURBtbiyL5xaMl21GGi1nbx1gH4P7kjJKHqq0Ztrqf23gm7lTPw1FtD9bbYRHg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -362,26 +362,26 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" @@ -389,17 +389,17 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-s3@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.478.0.tgz#072a3dbdc94d3d20db0f2e4cb641567949c46e54" - integrity sha512-OUpbCCnK71lQQ07BohJOx9ZER0rPqRAGOVIIVhNEkeN0uYFLzB7/o5a7+FEPUQXEd5rZRZgbxN5xEmnNW/0Waw== +"@aws-sdk/client-s3@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.481.0.tgz#121ad40970eb98ffeb6979ea4bc3bc0d21d6a58e" + integrity sha512-W4xpJRTuKKhQf1yCNPoErqAHize140LJf+YU+H60UB6rHy0uI52KJVSdMMKAghwAlAMLwmLWhKeMYWVpBOOtJw== dependencies: "@aws-crypto/sha1-browser" "3.0.0" "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-bucket-endpoint" "3.470.0" "@aws-sdk/middleware-expect-continue" "3.468.0" "@aws-sdk/middleware-flexible-checksums" "3.468.0" @@ -407,19 +407,19 @@ "@aws-sdk/middleware-location-constraint" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" - "@aws-sdk/middleware-sdk-s3" "3.474.0" + "@aws-sdk/middleware-sdk-s3" "3.481.0" "@aws-sdk/middleware-signing" "3.468.0" "@aws-sdk/middleware-ssec" "3.468.0" "@aws-sdk/middleware-user-agent" "3.478.0" "@aws-sdk/region-config-resolver" "3.470.0" - "@aws-sdk/signature-v4-multi-region" "3.474.0" + "@aws-sdk/signature-v4-multi-region" "3.481.0" "@aws-sdk/types" "3.468.0" "@aws-sdk/util-endpoints" "3.478.0" "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@aws-sdk/xml-builder" "3.472.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/eventstream-serde-browser" "^2.0.15" "@smithy/eventstream-serde-config-resolver" "^2.0.15" "@smithy/eventstream-serde-node" "^2.0.15" @@ -431,20 +431,20 @@ "@smithy/md5-js" "^2.0.17" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-stream" "^2.0.23" @@ -453,16 +453,16 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-secrets-manager@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.478.0.tgz#e2a55360987cb739f7168116ac6ec040d4d43138" - integrity sha512-0NSiDpot2dPOeINzdBgFDAVIev1S4J4gr3I4xAAX4FrWVNcQwXn2CrnV9Cqn/s0yzu9DZxRmQQitjIuFuwiFAA== +"@aws-sdk/client-secrets-manager@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.481.0.tgz#1cf86675bf4c6853aaea2b9f290131eae8696f88" + integrity sha512-9fdd5zvZcue04B4evo1f2bfr09VndR69SGk1YLAR1lL8nH3oOLP1L3fT0lSyoBhkZ6U+gV3V6qjERUre94SeJg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -474,42 +474,42 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/client-sfn@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sfn/-/client-sfn-3.478.0.tgz#3510ca70a3e81f71f468051fefa7e719423a6c05" - integrity sha512-Vijj+7DfkhF+SBmP5AfbGFenWkdNs8keeaKNaLWDQET8SdGgURrc6ymUapwrbaeSDWkSd8TU7hXMkfdJZfbj1Q== +"@aws-sdk/client-sfn@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sfn/-/client-sfn-3.481.0.tgz#7720d2ce4ccc9ab2aa2739682c8ed2e84999465e" + integrity sha512-ZtAjgCsJli5knO32rWkztVv8HobaCAyzD1AVHus3Gt+BRNfI73BtuoCm1mEgD1BsHr0g+xcvx4/A9HjJ9VnuwA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -521,40 +521,40 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/client-sso@3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.478.0.tgz#6e9bf99898b4601c792c5b66e4871c6b69f20652" - integrity sha512-Jxy9cE1JMkPR0PklCpq3cORHnZq/Z4klhSTNGgZNeBWovMa+plor52kyh8iUNHKl3XEJvTbHM7V+dvrr/x0P1g== +"@aws-sdk/client-sso@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.481.0.tgz#5d484dfa202eac580db984bb2c9cf52203b9a985" + integrity sha512-d+crFfW8HSDXa68MSfMDX6LH0J22P29SxJW4IGgRZKwHWEaSf4UjOP0mjA4V26R50suAV052/WBY6LjtGsZsHg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.477.0" + "@aws-sdk/core" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -565,40 +565,40 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" -"@aws-sdk/client-sts@3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.478.0.tgz#8d7425803a3d7b8af3eba37f56e14a0259eb0557" - integrity sha512-D+QID0dYzmn9dcxgKP3/nMndUqiQbDLsqI0Zf2pG4MW5gPhVNKlDGIV3Ztz8SkMjzGJExNOLW2L569o8jshJVw== +"@aws-sdk/client-sts@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.481.0.tgz#4aa7d1d5fff175b3b9e30dd891cd8b7e127c997f" + integrity sha512-GSnJiceKpwLSEW5q2KRu9zHNJgtYysiy9Xkey0EKLKCdDRdM62yCJEFerAbvRRVJsF2LTSrmBmUl2zWB5RT8mw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -609,26 +609,26 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-middleware" "^2.0.8" "@smithy/util-retry" "^2.0.8" @@ -636,16 +636,16 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-textract@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-textract/-/client-textract-3.478.0.tgz#32f4850572baf6cc483b8c209eb208f5c3751d6e" - integrity sha512-IUnXRKbFyH9553y+HX9PPP6ag2B0VzbJv3MVwDepdnD9jr69qSjkuat9IYARZcuYrfsYxYpCYUA3zsSdcBHlyw== +"@aws-sdk/client-textract@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-textract/-/client-textract-3.481.0.tgz#7a25bbd66bf31ac4661e45f21c221190ac20c4c0" + integrity sha512-QoVeN+fg9LxL64kzTBEbF9ggTJtqZLAL6Zrt/O/T0T9DXqeWu1sfYu58PLcVr3lLxoPsw5zZM0qrLqI8pn5YMQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.478.0" - "@aws-sdk/core" "3.477.0" - "@aws-sdk/credential-provider-node" "3.478.0" + "@aws-sdk/client-sts" "3.481.0" + "@aws-sdk/core" "3.481.0" + "@aws-sdk/credential-provider-node" "3.481.0" "@aws-sdk/middleware-host-header" "3.468.0" "@aws-sdk/middleware-logger" "3.468.0" "@aws-sdk/middleware-recursion-detection" "3.468.0" @@ -657,41 +657,41 @@ "@aws-sdk/util-user-agent-browser" "3.468.0" "@aws-sdk/util-user-agent-node" "3.470.0" "@smithy/config-resolver" "^2.0.21" - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/fetch-http-handler" "^2.3.1" "@smithy/hash-node" "^2.0.17" "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" "@smithy/node-http-handler" "^2.2.1" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/core@3.477.0": - version "3.477.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.477.0.tgz#2fa8ae4e19b8082b019a56efbce859c93df4e205" - integrity sha512-o0434EH+d1BxHZvgG7z8vph2SYefciQ5RnJw2MgvETGnthgqsnI4nnNJLSw0FVeqCeS18n6vRtzqlGYR2YPCNg== +"@aws-sdk/core@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.481.0.tgz#e0ed1c1e8dc322237f81f0442ba0f8fbb20ef76f" + integrity sha512-UeyAc2FnWQDts81vPVBWKEj0WagYK4SVAgNfGcg6zCzzqsUG4unr4NPKQoca2L+XOU55yMCy+5l2K6R3YsFGKg== dependencies: - "@smithy/core" "^1.2.0" + "@smithy/core" "^1.2.1" "@smithy/protocol-http" "^3.0.11" "@smithy/signature-v4" "^2.0.0" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" tslib "^2.5.0" @@ -705,14 +705,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-ini@3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.478.0.tgz#452195c28b7138e26b5220ce9dfcc8cf9e9cca7d" - integrity sha512-SsrYEYUvTG9ZoPC+zB19AnVoOKID+QIEHJDIi1GCZXW5kTVyr1saTVm4orG2TjYvbHQMddsWtHOvGYXZWAYMbw== +"@aws-sdk/credential-provider-ini@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.481.0.tgz#02300c2f044c88749790bdfba74d99131234cf9c" + integrity sha512-QXMlILewLV/yQHkyjXsu7PhvmTZIDAaQ4uAfhjnqbH1B8mErRpZKkzHWwp4yeZdTcHfenTVqoTnx9WDa+SnK/Q== dependencies: "@aws-sdk/credential-provider-env" "3.468.0" "@aws-sdk/credential-provider-process" "3.468.0" - "@aws-sdk/credential-provider-sso" "3.478.0" + "@aws-sdk/credential-provider-sso" "3.481.0" "@aws-sdk/credential-provider-web-identity" "3.468.0" "@aws-sdk/types" "3.468.0" "@smithy/credential-provider-imds" "^2.0.0" @@ -721,15 +721,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-node@3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.478.0.tgz#43e8c7bfeb32c561c642bb2f4bffcbe0f483bc29" - integrity sha512-nwDutJYeHiIZCQDgKIUrsgwAWTil0mNe+cbd+j8fi+wwxkWUzip+F0+z02molJ8WrUUKNRhqB1V5aVx7IranuA== +"@aws-sdk/credential-provider-node@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.481.0.tgz#3bcc2577bb89ac2123f583e5d9b2d60e5dbea3b3" + integrity sha512-148Ztn2FjlS3VdGWJnAMjuXiZ55/tD823I/koawgp80LnDqMiKfmSGAioXIikqaBHl40K7ZvtBMqP/n/6GM41A== dependencies: "@aws-sdk/credential-provider-env" "3.468.0" - "@aws-sdk/credential-provider-ini" "3.478.0" + "@aws-sdk/credential-provider-ini" "3.481.0" "@aws-sdk/credential-provider-process" "3.468.0" - "@aws-sdk/credential-provider-sso" "3.478.0" + "@aws-sdk/credential-provider-sso" "3.481.0" "@aws-sdk/credential-provider-web-identity" "3.468.0" "@aws-sdk/types" "3.468.0" "@smithy/credential-provider-imds" "^2.0.0" @@ -749,13 +749,13 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-sso@3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.478.0.tgz#90e6aa0db7e4d20a42fc0d842cfae8f2f10b9483" - integrity sha512-LsDShG51X/q+s5ZFN7kHVqrd8ZHdyEyHqdhoocmRvvw2Dif50M0AqQfvCrW1ndj5CNzXO4x/eH8EK5ZOVlS6Sg== +"@aws-sdk/credential-provider-sso@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.481.0.tgz#0a5b37407a087df0f1a1aaf181d94555807b0e9b" + integrity sha512-3MrSIQPQDOxhZDppC2XpOLVfuUm7iqRfTrwjSYGeWc//pUZtUI7nMXYjEDL+li5gvasw1lYfYX3VHNdwNnvyOQ== dependencies: - "@aws-sdk/client-sso" "3.478.0" - "@aws-sdk/token-providers" "3.478.0" + "@aws-sdk/client-sso" "3.481.0" + "@aws-sdk/token-providers" "3.481.0" "@aws-sdk/types" "3.468.0" "@smithy/property-provider" "^2.0.0" "@smithy/shared-ini-file-loader" "^2.0.6" @@ -780,13 +780,13 @@ mnemonist "0.38.3" tslib "^2.5.0" -"@aws-sdk/lib-dynamodb@^3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.478.0.tgz#d2703061d3f10d7b980c0993e40a5ecf2eaa9908" - integrity sha512-RYzGedXOlpLzgp+kAJ1tL71QNtGemI6wBivzbaNSOu+C7GIvIEEHvzvvNYOZ8UkrMVXgfELLm5XbSRk+JEWE3g== +"@aws-sdk/lib-dynamodb@^3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.481.0.tgz#70c29f3fb15fc7e2d96e408f244e4018e9ef786e" + integrity sha512-8TgpDBDMrls6KhusWx3+clIrU4jQd72HHlhuB7CMD1Od+dsT+Ov4L+NZjQ1V5+NwyMiPjAMiSB0SMZlKLjzPmg== dependencies: - "@aws-sdk/util-dynamodb" "3.478.0" - "@smithy/smithy-client" "^2.1.18" + "@aws-sdk/util-dynamodb" "3.481.0" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" tslib "^2.5.0" @@ -877,17 +877,17 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" -"@aws-sdk/middleware-sdk-s3@3.474.0": - version "3.474.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.474.0.tgz#7af224ba8c85f0190a153f4c4e2b48e549f1f34e" - integrity sha512-62aAo/8u5daIabeJ+gseYeHeShe9eYH6mH+kfWmLsHybXCCv1EaD/ZkdXWNhL0HZ3bUI1z1SF1p8jjTAWALnwA== +"@aws-sdk/middleware-sdk-s3@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.481.0.tgz#e16c145c85b12c5e917fed1fffce05b8677fc854" + integrity sha512-LOFXtxZOnU75vB5rL5/rOjSrYrbk/kqJGbnQJywHQosAiPKSVw9BR/6Q6tQIDDvtMYsVqMB7Db5SzA64hr80Rg== dependencies: "@aws-sdk/types" "3.468.0" "@aws-sdk/util-arn-parser" "3.465.0" "@smithy/node-config-provider" "^2.1.8" "@smithy/protocol-http" "^3.0.11" "@smithy/signature-v4" "^2.0.0" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/util-config-provider" "^2.0.0" tslib "^2.5.0" @@ -936,22 +936,22 @@ "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" -"@aws-sdk/signature-v4-multi-region@3.474.0": - version "3.474.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.474.0.tgz#192f10924899c2ccf181932b4b5f59d6b01d79d3" - integrity sha512-93OWRQgTJZASXLrlUNX7mmXknNkYxFYldRLARmYQccONmnIqgYQW0lQj8BFwqkHJTzSMik3/UsU0SHKwZ9ynYA== +"@aws-sdk/signature-v4-multi-region@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.481.0.tgz#8c9b4fbe5fa7f7a9852e7f3b1e180ab6c1b830ae" + integrity sha512-bNQ+5Gb3c6a+AiR4D9o0olPjPkGal8Dqvq4Mt0vWQ+ZOzzKEZZDSjpCMUdkhm3ezYIFr9rnCmQOpTtyf3/KDVg== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.474.0" + "@aws-sdk/middleware-sdk-s3" "3.481.0" "@aws-sdk/types" "3.468.0" "@smithy/protocol-http" "^3.0.11" "@smithy/signature-v4" "^2.0.0" "@smithy/types" "^2.7.0" tslib "^2.5.0" -"@aws-sdk/token-providers@3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.478.0.tgz#145a35a82940190ff7a3db2fbc6b374258d0739f" - integrity sha512-7b5tj1y/wGHZIZ+ckjOUKgKrMuCJMF/G1UKZKIqqdekeEsjcThbvoxAMeY0FEowu2ODVk/ggOmpBFxcu0iYd6A== +"@aws-sdk/token-providers@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.481.0.tgz#d10f86a3c3d61ee2917c70ecc43923d6d2a3d263" + integrity sha512-G4ObHF2A/FlvQG7Lb/2sjuklG89IiH3TI1EiNZSzgu6TvY904Js72Slldls4VeJLY2zAnZgyZ9903pBMkDrcxQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" @@ -970,7 +970,7 @@ "@smithy/invalid-dependency" "^2.0.15" "@smithy/middleware-content-length" "^2.0.17" "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/middleware-stack" "^2.0.9" "@smithy/node-config-provider" "^2.1.8" @@ -978,14 +978,14 @@ "@smithy/property-provider" "^2.0.0" "@smithy/protocol-http" "^3.0.11" "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/url-parser" "^2.0.15" "@smithy/util-base64" "^2.0.1" "@smithy/util-body-length-browser" "^2.0.1" "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" + "@smithy/util-defaults-mode-browser" "^2.0.23" + "@smithy/util-defaults-mode-node" "^2.0.30" "@smithy/util-endpoints" "^1.0.7" "@smithy/util-retry" "^2.0.8" "@smithy/util-utf8" "^2.0.2" @@ -1006,10 +1006,10 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-dynamodb@3.478.0": - version "3.478.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.478.0.tgz#845585d638f1dd92f70890f7903db977bbaa7d47" - integrity sha512-DmyINA+flhy5VzHFrPCwPX3ZLRThgUjVORGVybBWDLUnuFKzG4kNz+VPyzNLxDdvYebESbiSlfR5mR6MTvzIZA== +"@aws-sdk/util-dynamodb@3.481.0": + version "3.481.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.481.0.tgz#cbccae437918aee26875678d444497d9e6c446e7" + integrity sha512-43okW9YKT2YyUPVbLvrXjzAEptoHyWL4SdzWHbaxNJiEBVn7pq6eYqWzgWAnH12Vz1wbRP/iYWU/ZzwaozzA9w== dependencies: tslib "^2.5.0" @@ -1077,7 +1077,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": +"@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== @@ -1249,6 +1249,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -1314,7 +1321,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.6", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== @@ -1548,61 +1555,61 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" + jest-message-util "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" -"@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.8.1" + ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" micromatch "^4.0.4" - rimraf "^3.0.0" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^27.5.1" + jest-mock "^29.7.0" "@jest/expect-utils@^28.1.3": version "28.1.3" @@ -1611,57 +1618,72 @@ dependencies: jest-get-type "^28.0.2" -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" - glob "^7.1.2" + glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" - source-map "^0.6.0" string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" "@jest/schemas@^28.1.3": version "28.1.3" @@ -1670,73 +1692,81 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" - source-map "^0.6.0" -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== dependencies: - "@jest/test-result" "^27.5.1" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" + jest-haste-map "^29.7.0" + slash "^3.0.0" -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" + write-file-atomic "^4.0.2" -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== dependencies: + "@jest/schemas" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" - "@types/yargs" "^16.0.0" + "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== dependencies: - "@jest/schemas" "^28.1.3" + "@jest/schemas" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1775,7 +1805,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": version "0.3.20" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== @@ -1868,6 +1898,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" @@ -1901,13 +1936,6 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@sinonjs/fake-timers@^9.1.2": version "9.1.2" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" @@ -1992,16 +2020,16 @@ "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" -"@smithy/core@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.2.0.tgz#36286de5460905708221313b8b1faebf185761e6" - integrity sha512-l8R89X7+hlt2FEFg+OrNq29LP3h9DfGPmO6ObwT9IXWHD6V7ycpj5u2rVQyIis26ovrgOYakl6nfgmPMm8m1IQ== +"@smithy/core@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.2.1.tgz#2ee9b9894f3b2ce5eac4010ea1a85874b446f203" + integrity sha512-f6cwmMuHo7RIw/c184NBd2rGeGvGIX6p55HSrG5jfR3qkNYo80PHRfhzkJMq1+mv1ZjI5p8NhenWMMkIRJR4tw== dependencies: "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" + "@smithy/middleware-retry" "^2.0.25" "@smithy/middleware-serde" "^2.0.15" "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" @@ -2148,15 +2176,15 @@ "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" -"@smithy/middleware-retry@^2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.24.tgz#556a39e7d2be32cc61862e020409d3f93e2c5be1" - integrity sha512-q2SvHTYu96N7lYrn3VSuX3vRpxXHR/Cig6MJpGWxd0BWodUQUWlKvXpWQZA+lTaFJU7tUvpKhRd4p4MU3PbeJg== +"@smithy/middleware-retry@^2.0.25": + version "2.0.25" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.25.tgz#ae948f4a1ad5968bc315f07df930a55c09ffe040" + integrity sha512-FXhafCPvx/9L9OgHJ3cdo/pD1f7ngC7DKsjDV2J7k6LO/Yl69POoBLk4sI1OZPUGc4dfxriENlTma9Nj1hI+IQ== dependencies: "@smithy/node-config-provider" "^2.1.8" "@smithy/protocol-http" "^3.0.11" "@smithy/service-error-classification" "^2.0.8" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" "@smithy/util-middleware" "^2.0.8" "@smithy/util-retry" "^2.0.8" @@ -2262,12 +2290,14 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" -"@smithy/smithy-client@^2.1.18": - version "2.1.18" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.1.18.tgz#f8ce2c0e9614f207256ddcd992403aff40750546" - integrity sha512-7FqdbaJiVaHJDD9IfDhmzhSDbpjyx+ZsfdYuOpDJF09rl8qlIAIlZNoSaflKrQ3cEXZN2YxGPaNWGhbYimyIRQ== +"@smithy/smithy-client@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.2.0.tgz#9865981a2f49dd0e9ef68193aebcd5654cdd7f00" + integrity sha512-C/bkNue5H5Obgl83SnlBt4v6VM68CqIjIELh3vAabud87xFYznLNKtj6Qb69Z+QOnLp9T+We++sEem/f2AHE+Q== dependencies: + "@smithy/middleware-endpoint" "^2.2.3" "@smithy/middleware-stack" "^2.0.9" + "@smithy/protocol-http" "^3.0.11" "@smithy/types" "^2.7.0" "@smithy/util-stream" "^2.0.23" tslib "^2.5.0" @@ -2325,27 +2355,27 @@ dependencies: tslib "^2.5.0" -"@smithy/util-defaults-mode-browser@^2.0.22": - version "2.0.22" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.22.tgz#8ef8c36b8c3c2f98f7a62278c3c684d659134269" - integrity sha512-qcF20IHHH96FlktvBRICDXDhLPtpVmtksHmqNGtotb9B0DYWXsC6jWXrkhrrwF7tH26nj+npVTqh9isiFV1gdA== +"@smithy/util-defaults-mode-browser@^2.0.23": + version "2.0.23" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.23.tgz#27bce42b7a55974ed4aff5b2b870256ce383613a" + integrity sha512-2u+7t7Wgz1jlfsf6il3pz6DIzyJHS3qrnNnmATICm00pQeqp2D4kUOYauOgKGIeKgVpwzzq8+hFQe749r3xR5w== dependencies: "@smithy/property-provider" "^2.0.16" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" bowser "^2.11.0" tslib "^2.5.0" -"@smithy/util-defaults-mode-node@^2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.29.tgz#6b210aede145a6bf4bd83d9f465948fb300ca577" - integrity sha512-+uG/15VoUh6JV2fdY9CM++vnSuMQ1VKZ6BdnkUM7R++C/vLjnlg+ToiSR1FqKZbMmKBXmsr8c/TsDWMAYvxbxQ== +"@smithy/util-defaults-mode-node@^2.0.30": + version "2.0.30" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.30.tgz#12c4c737a9f8b151cfbd951348cdf94febd083dd" + integrity sha512-nmcmEyRlClNprp7mBnUzfmW6HrKQK+yvl+cyXCRUoQSxRvZuLDrztV+JD+zr3qV/oirEc4Q0QNIrrhTDCE6JeA== dependencies: "@smithy/config-resolver" "^2.0.21" "@smithy/credential-provider-imds" "^2.1.4" "@smithy/node-config-provider" "^2.1.8" "@smithy/property-provider" "^2.0.16" - "@smithy/smithy-client" "^2.1.18" + "@smithy/smithy-client" "^2.2.0" "@smithy/types" "^2.7.0" tslib "^2.5.0" @@ -2427,11 +2457,6 @@ dependencies: defer-to-connect "^2.0.0" -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -2457,7 +2482,7 @@ resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.130.tgz#d4a44201f0e47c8320a5868d845ad654f3b4adc2" integrity sha512-HxTfLeGvD1wTJqIGwcBCpNmHKenja+We1e0cuzeIDFfbEj3ixnlTInyPR/81zAe0Ss/Ip12rFK6XNeMLVucOSg== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": +"@types/babel__core@^7.1.14": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -2483,7 +2508,7 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": version "7.20.4" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== @@ -2508,7 +2533,7 @@ "@types/minimatch" "^5.1.2" "@types/node" "*" -"@types/graceful-fs@^4.1.2": +"@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== @@ -2546,14 +2571,6 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^27": - version "27.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" - integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== - dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" - "@types/jest@^28.1.3": version "28.1.8" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" @@ -2562,6 +2579,14 @@ expect "^28.0.0" pretty-format "^28.0.0" +"@types/jest@^29": + version "29.5.11" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" + integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + "@types/json-schema@^7.0.12": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" @@ -2608,11 +2633,6 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== -"@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - "@types/responselike@^1.0.0": version "1.0.3" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" @@ -2657,13 +2677,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== -"@types/yargs@^16.0.0": - version "16.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" - integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^17.0.8": version "17.0.32" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" @@ -2672,15 +2685,15 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz#b0b3e15fa8c3e67ed4386b765cc0ba98ad3a303b" - integrity sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg== + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz#cc29fbd208ea976de3db7feb07755bba0ce8d8bc" + integrity sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.15.0" - "@typescript-eslint/type-utils" "6.15.0" - "@typescript-eslint/utils" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/type-utils" "6.16.0" + "@typescript-eslint/utils" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2689,71 +2702,72 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.15.0.tgz#1af69741cfa314a13c1434d0bdd5a0c3096699d7" - integrity sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA== - dependencies: - "@typescript-eslint/scope-manager" "6.15.0" - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/typescript-estree" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.16.0.tgz#36f39f63b126aa25af2ad2df13d9891e9fd5b40c" + integrity sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw== + dependencies: + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz#40e5214a3e9e048aca55ce33381bc61b6b51c32a" - integrity sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg== +"@typescript-eslint/scope-manager@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz#f3e9a00fbc1d0701356359cd56489c54d9e37168" + integrity sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw== dependencies: - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" -"@typescript-eslint/type-utils@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz#c22261bd00566821a300d08f4632533a8f9bed01" - integrity sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ== +"@typescript-eslint/type-utils@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz#5f21c3e49e540ad132dc87fc99af463c184d5ed1" + integrity sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg== dependencies: - "@typescript-eslint/typescript-estree" "6.15.0" - "@typescript-eslint/utils" "6.15.0" + "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/utils" "6.16.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.15.0.tgz#a9f7b006aee52b0948be6e03f521814bf435ddd5" - integrity sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ== +"@typescript-eslint/types@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.16.0.tgz#a3abe0045737d44d8234708d5ed8fef5d59dc91e" + integrity sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ== -"@typescript-eslint/typescript-estree@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz#2f8a513df1ce5e6e1ba8e5c6aa52f392ae023fc5" - integrity sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew== +"@typescript-eslint/typescript-estree@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz#d6e0578e4f593045f0df06c4b3a22bd6f13f2d03" + integrity sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA== dependencies: - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.15.0.tgz#f80dbb79f3b0f569077a8711dd44186a8933fa4c" - integrity sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw== +"@typescript-eslint/utils@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.16.0.tgz#1c291492d34670f9210d2b7fcf6b402bea3134ae" + integrity sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.15.0" - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/typescript-estree" "6.15.0" + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/typescript-estree" "6.16.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz#5baf97a7bfeec6f4894d400437055155a46b2330" - integrity sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w== +"@typescript-eslint/visitor-keys@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz#d50da18a05d91318ed3e7e8889bda0edc35f3a10" + integrity sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A== dependencies: - "@typescript-eslint/types" "6.15.0" + "@typescript-eslint/types" "6.16.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -2774,40 +2788,17 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - acorn-walk@^8.1.1: version "8.3.1" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.9.0: +acorn@^8.4.1, acorn@^8.9.0: version "8.11.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== @@ -2817,13 +2808,6 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -3014,9 +2998,9 @@ aws-cdk-lib@2.1.0: yaml "1.10.2" aws-cdk@^2: - version "2.115.0" - resolved "https://registry.yarnpkg.com/aws-cdk/-/aws-cdk-2.115.0.tgz#a838f4edb6ba2b7c9dff99df4990f7c0e99aea3d" - integrity sha512-jf+5j+ygk/DqxLzYyjFnCOOlRgvL/fwcYhyanhpb1OEQEe1FF6NGUb1TYsnQc3Ly67qLOKkQgdeyeXgzkKoSOQ== + version "2.117.0" + resolved "https://registry.yarnpkg.com/aws-cdk/-/aws-cdk-2.117.0.tgz#e0013d6183d43c52e94b86267fbfc385b5d70665" + integrity sha512-uuWT646vSRXZ/6don+wfK4kelV1aL4WOTduaihltRlXw4etHoMV3wJYBO30E6e8hAU+0HkLT7Fv58po50b12Sg== optionalDependencies: fsevents "2.3.2" @@ -3046,16 +3030,15 @@ axios@^1.6.0: form-data "^4.0.0" proxy-from-env "^1.1.0" -babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -3071,14 +3054,14 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" + "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" babel-preset-current-node-syntax@^1.0.0: @@ -3099,12 +3082,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== dependencies: - babel-plugin-jest-hoist "^27.5.1" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -3139,11 +3122,6 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" @@ -3225,9 +3203,9 @@ camelcase@^6.2.0, camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001565: - version "1.0.30001571" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz#4182e93d696ff42930f4af7eba515ddeb57917ac" - integrity sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ== + version "1.0.30001572" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz#1ccf7dc92d2ee2f92ed3a54e11b7b4a3041acfa0" + integrity sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw== case@1.6.3, case@^1.6.3: version "1.6.3" @@ -3563,11 +3541,6 @@ conventional-recommended-bump@6.1.0: meow "^8.0.0" q "^1.5.1" -convert-source-map@^1.4.0, convert-source-map@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -3578,6 +3551,19 @@ core-util-is@^1.0.3, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -3592,37 +3578,11 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - dargs@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - date-format@^4.0.14: version "4.0.14" resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" @@ -3633,13 +3593,6 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -3647,6 +3600,13 @@ debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -3665,11 +3625,6 @@ decamelize@^5.0.1: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== -decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -3677,10 +3632,10 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-is@^0.1.3: version "0.1.4" @@ -3740,16 +3695,16 @@ detect-newline@^3.0.0, detect-newline@^3.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - diff-sequences@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -3781,13 +3736,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -3817,10 +3765,10 @@ electron-to-chromium@^1.4.601: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz#4bddbc2c76e1e9dbf449ecd5da3d8119826ea4fb" integrity sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg== -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^8.0.0: version "8.0.0" @@ -3973,17 +3921,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" @@ -4161,16 +4098,6 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - expect@^28.0.0: version "28.1.3" resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" @@ -4182,6 +4109,17 @@ expect@^28.0.0: jest-message-util "^28.1.3" jest-util "^28.1.3" +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -4203,7 +4141,7 @@ fast-json-patch@^3.1.1: resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947" integrity sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ== -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -4320,15 +4258,6 @@ form-data@^2.5.0: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -4518,7 +4447,7 @@ glob-promise@^6.0.5: dependencies: "@types/glob" "^8.0.0" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4686,13 +4615,6 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -4703,15 +4625,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" @@ -4720,26 +4633,11 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - ignore@^5.1.9, ignore@^5.2.0, ignore@^5.2.4: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" @@ -4915,11 +4813,6 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -4973,11 +4866,6 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: dependencies: which-typed-array "^1.1.11" -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -5010,7 +4898,7 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: +istanbul-lib-instrument@^5.0.4: version "5.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== @@ -5021,6 +4909,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + istanbul-lib-report@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" @@ -5047,98 +4946,86 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== dependencies: - "@jest/types" "^27.5.1" execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" - throat "^6.0.1" -jest-cli@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" chalk "^4.0.0" + create-jest "^29.7.0" exit "^0.1.2" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" - glob "^7.1.1" + glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^27.5.1" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - jest-diff@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" @@ -5149,102 +5036,75 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== dependencies: detect-newline "^3.0.0" -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^29.6.3" chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + jest-mock "^29.7.0" + jest-util "^29.7.0" jest-get-type@^28.0.2: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" - walker "^1.0.7" + walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - jest-junit@^15: version "15.0.0" resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-15.0.0.tgz#a47544ab42e9f8fe7ada56306c218e09e52bd690" @@ -5255,23 +5115,13 @@ jest-junit@^15: uuid "^8.3.2" xml "^1.0.1" -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" jest-matcher-utils@^28.1.3: version "28.1.3" @@ -5283,20 +5133,15 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" jest-message-util@^28.1.3: version "28.1.3" @@ -5313,206 +5158,213 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^29.6.3" "@types/node" "*" + jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" -jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== dependencies: - "@jest/types" "^27.5.1" chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - emittery "^0.8.1" + emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" - execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: - "@babel/core" "^7.7.2" + "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.5.1" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" + pretty-format "^29.7.0" + semver "^7.5.3" -jest-util@^27.0.0, jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== +jest-util@^29.0.0, jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^29.6.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^27.5.1" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^27.5.1" + pretty-format "^29.7.0" -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.5.1" + emittery "^0.13.1" + jest-util "^29.7.0" string-length "^4.0.1" -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" - integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== +jest@^29: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^27.5.1" + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^27.5.1" + jest-cli "^29.7.0" js-tokens@^4.0.0: version "4.0.0" @@ -5534,39 +5386,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -5739,11 +5558,6 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@2.x, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" @@ -5751,6 +5565,11 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -5877,7 +5696,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.15, lodash@^4.7.0: +lodash@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6013,6 +5832,13 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -6145,11 +5971,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nwsapi@^2.2.0: - version "2.2.7" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== - object-inspect@^1.13.1, object-inspect@^1.9.0: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" @@ -6258,7 +6079,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -6351,11 +6172,6 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -6437,15 +6253,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -pretty-format@^27.0.0, pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - pretty-format@^28.0.0, pretty-format@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" @@ -6456,15 +6263,24 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -projen@^0.78.2: - version "0.78.2" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.78.2.tgz#53a3bf9a7ae9f0cb02dbb3cf717866d2aa657245" - integrity sha512-A4y0pLAEHdGJMydbBY44GRruPV5tBwXm18XmDHSS94XIexZOuWdRrxptl+vKTmiDrkDXqa1pNCt7u8YBbIVDtA== +projen@^0.78.4: + version "0.78.4" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.78.4.tgz#47ab90c449d63a1393af93104796099eb2f55f89" + integrity sha512-lj8U6OC6Ac5ToObt8HwcPsWd6o81yM2Vdkj/hK9lS0EpwDq1YcIxeSnM0udVpg4YwxF3Bw3+W96HL1KuEE0UMg== dependencies: "@iarna/toml" "^2.2.5" case "^1.6.3" @@ -6499,11 +6315,6 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -6517,16 +6328,16 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +pure-rand@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -6542,11 +6353,6 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - react-is@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" @@ -6649,11 +6455,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -6681,10 +6482,10 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" - integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.4: version "1.22.8" @@ -6717,7 +6518,7 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -6760,18 +6561,6 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - semver-intersect@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.5.0.tgz#bb3aa0ea504935410d34cf15f49818d56906bd48" @@ -6784,18 +6573,18 @@ semver-intersect@^1.4.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.x, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - set-function-length@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" @@ -6853,7 +6642,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -6889,24 +6678,19 @@ sort-json@^2.0.1: detect-newline "^2.1.0" minimist "^1.2.0" -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -7119,7 +6903,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -7133,37 +6917,16 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -7183,11 +6946,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -throat@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" - integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== - through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -7225,23 +6983,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -7252,19 +6993,19 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== -ts-jest@^27: - version "27.1.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.5.tgz#0ddf1b163fbaae3d5b7504a1e65c914a95cff297" - integrity sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA== +ts-jest@^29: + version "29.1.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.1.tgz#f58fe62c63caf7bfcc5cc6472082f79180f0815b" + integrity sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" + jest-util "^29.0.0" + json5 "^2.2.3" lodash.memoize "4.x" make-error "1.x" - semver "7.x" - yargs-parser "20.x" + semver "^7.5.3" + yargs-parser "^21.0.1" ts-node@^10.9.2: version "10.9.2" @@ -7381,13 +7122,6 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -7438,11 +7172,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - universalify@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" @@ -7463,14 +7192,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7486,14 +7207,14 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== dependencies: + "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" + convert-source-map "^2.0.0" validate-npm-package-license@^3.0.1: version "3.0.4" @@ -7503,58 +7224,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: +walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: makeerror "1.0.12" -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -7608,25 +7284,13 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + signal-exit "^3.0.7" xml@^1.0.1: version "1.0.1" @@ -7648,11 +7312,6 @@ xmlbuilder@^15.1.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -7683,12 +7342,12 @@ yaml@^2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== -yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: +yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: +yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== @@ -7706,7 +7365,7 @@ yargs@^16.0.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.7.2: +yargs@^17.3.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==