// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Snapshot test 1`] = ` Object { "Mappings": Object { "DefaultCrNodeVersionMap": Object { "af-south-1": Object { "value": "nodejs16.x", }, "ap-east-1": Object { "value": "nodejs16.x", }, "ap-northeast-1": Object { "value": "nodejs16.x", }, "ap-northeast-2": Object { "value": "nodejs16.x", }, "ap-northeast-3": Object { "value": "nodejs16.x", }, "ap-south-1": Object { "value": "nodejs16.x", }, "ap-south-2": Object { "value": "nodejs16.x", }, "ap-southeast-1": Object { "value": "nodejs16.x", }, "ap-southeast-2": Object { "value": "nodejs16.x", }, "ap-southeast-3": Object { "value": "nodejs16.x", }, "ca-central-1": Object { "value": "nodejs16.x", }, "cn-north-1": Object { "value": "nodejs16.x", }, "cn-northwest-1": Object { "value": "nodejs16.x", }, "eu-central-1": Object { "value": "nodejs16.x", }, "eu-central-2": Object { "value": "nodejs16.x", }, "eu-north-1": Object { "value": "nodejs16.x", }, "eu-south-1": Object { "value": "nodejs16.x", }, "eu-south-2": Object { "value": "nodejs16.x", }, "eu-west-1": Object { "value": "nodejs16.x", }, "eu-west-2": Object { "value": "nodejs16.x", }, "eu-west-3": Object { "value": "nodejs16.x", }, "me-central-1": Object { "value": "nodejs16.x", }, "me-south-1": Object { "value": "nodejs16.x", }, "sa-east-1": Object { "value": "nodejs16.x", }, "us-east-1": Object { "value": "nodejs16.x", }, "us-east-2": Object { "value": "nodejs16.x", }, "us-gov-east-1": Object { "value": "nodejs16.x", }, "us-gov-west-1": Object { "value": "nodejs16.x", }, "us-iso-east-1": Object { "value": "nodejs14.x", }, "us-iso-west-1": Object { "value": "nodejs14.x", }, "us-isob-east-1": Object { "value": "nodejs14.x", }, "us-west-1": Object { "value": "nodejs16.x", }, "us-west-2": Object { "value": "nodejs16.x", }, }, }, "Outputs": Object { "DestinationS3BucketName": Object { "Value": Object { "Ref": "Bucket83908E77", }, }, "FtpClientInstanceName": Object { "Value": Object { "Ref": "Client4A7F64DF", }, }, "FtpTransferServiceAuthApiEndpoint7F8DF193": Object { "Value": Object { "Fn::Join": Array [ "", Array [ "https://", Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, ".execute-api.", Object { "Ref": "AWS::Region", }, ".", Object { "Ref": "AWS::URLSuffix", }, "/", Object { "Ref": "FtpTransferServiceAuthApiDeploymentStageprodD1F90C1F", }, "/", ], ], }, }, }, "Parameters": Object { "BootstrapVersion": Object { "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", }, "SsmParameterValueawsserviceamiamazonlinuxlatestamzn2amihvmx8664gp2C96584B6F00A464EAD1953AFF4B05118Parameter": Object { "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2", "Type": "AWS::SSM::Parameter::Value", }, }, "Resources": Object { "Bucket83908E77": Object { "DeletionPolicy": "Delete", "Properties": Object { "BucketEncryption": Object { "ServerSideEncryptionConfiguration": Array [ Object { "ServerSideEncryptionByDefault": Object { "SSEAlgorithm": "AES256", }, }, ], }, "Tags": Array [ Object { "Key": "aws-cdk:auto-delete-objects", "Value": "true", }, ], }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Delete", }, "BucketAutoDeleteObjectsCustomResourceBAFD23C2": Object { "DeletionPolicy": "Delete", "DependsOn": Array [ "BucketPolicyE9A3008A", ], "Properties": Object { "BucketName": Object { "Ref": "Bucket83908E77", }, "ServiceToken": Object { "Fn::GetAtt": Array [ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "Arn", ], }, }, "Type": "Custom::S3AutoDeleteObjects", "UpdateReplacePolicy": "Delete", }, "BucketPolicyE9A3008A": Object { "Properties": Object { "Bucket": Object { "Ref": "Bucket83908E77", }, "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", ], "Effect": "Allow", "Principal": Object { "AWS": Object { "Fn::GetAtt": Array [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn", ], }, }, "Resource": Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, "/*", ], ], }, ], }, ], "Version": "2012-10-17", }, }, "Type": "AWS::S3::BucketPolicy", }, "Client4A7F64DF": Object { "DependsOn": Array [ "ClientInstanceRole5C37E2F7", ], "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 0, Object { "Fn::GetAZs": "", }, ], }, "BlockDeviceMappings": Array [ Object { "DeviceName": "/dev/xvda", "Ebs": Object { "Encrypted": true, "VolumeSize": 30, }, }, ], "IamInstanceProfile": Object { "Ref": "ClientInstanceProfile89AE75A3", }, "ImageId": Object { "Ref": "SsmParameterValueawsserviceamiamazonlinuxlatestamzn2amihvmx8664gp2C96584B6F00A464EAD1953AFF4B05118Parameter", }, "InstanceType": "t3.medium", "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "ClientInstanceSecurityGroupDD1AF628", "GroupId", ], }, ], "SubnetId": Object { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Client", }, ], "UserData": Object { "Fn::Base64": "#!/bin/bash", }, }, "Type": "AWS::EC2::Instance", }, "ClientInstanceProfile89AE75A3": Object { "Properties": Object { "Roles": Array [ Object { "Ref": "ClientInstanceRole5C37E2F7", }, ], }, "Type": "AWS::IAM::InstanceProfile", }, "ClientInstanceRole5C37E2F7": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "ec2.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/AmazonSSMManagedInstanceCore", ], ], }, ], "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Client", }, ], }, "Type": "AWS::IAM::Role", }, "ClientInstanceSecurityGroupDD1AF628": Object { "Properties": Object { "GroupDescription": "MyTestStack/Client/InstanceSecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Client", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": Object { "DependsOn": Array [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", ], "Properties": Object { "Code": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip", }, "Description": Object { "Fn::Join": Array [ "", Array [ "Lambda function for auto-deleting objects in ", Object { "Ref": "Bucket83908E77", }, " S3 bucket.", ], ], }, "Handler": "__entrypoint__.handler", "MemorySize": 128, "Role": Object { "Fn::GetAtt": Array [ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", "Arn", ], }, "Runtime": "nodejs16.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", }, "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], }, "Type": "AWS::IAM::Role", }, "FtpAuthHandler13566C97": Object { "DependsOn": Array [ "FtpAuthHandlerServiceRole936451CF", ], "Properties": Object { "Code": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "9d52735c5c06997dcef81cac888d98985c09227e8b5dfcba27673077b24dcc13.zip", }, "Handler": "index.handler", "Role": Object { "Fn::GetAtt": Array [ "FtpAuthHandlerServiceRole936451CF", "Arn", ], }, "Runtime": "python3.9", }, "Type": "AWS::Lambda::Function", }, "FtpAuthHandlerPolicy472ABAEA": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": "secretsmanager:GetSecretValue", "Effect": "Allow", "Resource": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":secretsmanager:", Object { "Ref": "AWS::Region", }, ":", Object { "Ref": "AWS::AccountId", }, ":secret:ftpSecret/", Object { "Fn::GetAtt": Array [ "FtpServerCFDFB6F8", "ServerId", ], }, "/*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "FtpAuthHandlerPolicy472ABAEA", "Roles": Array [ Object { "Ref": "FtpAuthHandlerServiceRole936451CF", }, ], }, "Type": "AWS::IAM::Policy", }, "FtpAuthHandlerServiceRole936451CF": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, ], }, "Type": "AWS::IAM::Role", }, "FtpAuthenticationRole97A193FA": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "transfer.amazonaws.com", }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::IAM::Role", }, "FtpAuthenticationRoleDefaultPolicyAE5A3DE9": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": "execute-api:Invoke", "Effect": "Allow", "Resource": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":execute-api:", Object { "Ref": "AWS::Region", }, ":", Object { "Ref": "AWS::AccountId", }, ":", Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, "/*/*/*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "FtpAuthenticationRoleDefaultPolicyAE5A3DE9", "Roles": Array [ Object { "Ref": "FtpAuthenticationRole97A193FA", }, ], }, "Type": "AWS::IAM::Policy", }, "FtpLoggingRole98926542": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "transfer.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSTransferLoggingAccess", ], ], }, ], }, "Type": "AWS::IAM::Role", }, "FtpSecurityGroupB05910F8": Object { "Properties": Object { "GroupDescription": "MyTestStack/Ftp/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "Vpc8378EB38", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "Vpc8378EB38", "CidrBlock", ], }, ":22", ], ], }, "FromPort": 22, "IpProtocol": "tcp", "ToPort": 22, }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::SecurityGroup", }, "FtpServerCFDFB6F8": Object { "Properties": Object { "Domain": "S3", "EndpointDetails": Object { "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "FtpSecurityGroupB05910F8", "GroupId", ], }, ], "SubnetIds": Array [ Object { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, Object { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "EndpointType": "VPC", "IdentityProviderDetails": Object { "InvocationRole": Object { "Fn::GetAtt": Array [ "FtpAuthenticationRole97A193FA", "Arn", ], }, "Url": Object { "Fn::Join": Array [ "", Array [ "https://", Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, ".execute-api.", Object { "Ref": "AWS::Region", }, ".", Object { "Ref": "AWS::URLSuffix", }, "/", Object { "Ref": "FtpTransferServiceAuthApiDeploymentStageprodD1F90C1F", }, "/", ], ], }, }, "IdentityProviderType": "API_GATEWAY", "LoggingRole": Object { "Fn::GetAtt": Array [ "FtpLoggingRole98926542", "Arn", ], }, "Protocols": Array [ "SFTP", ], }, "Type": "AWS::Transfer::Server", }, "FtpTransferServiceAuthApi4837DBB2": Object { "Properties": Object { "Name": "TransferServiceAuthApi", }, "Type": "AWS::ApiGateway::RestApi", }, "FtpTransferServiceAuthApiAccount0D5D1357": Object { "DeletionPolicy": "Retain", "DependsOn": Array [ "FtpTransferServiceAuthApi4837DBB2", ], "Properties": Object { "CloudWatchRoleArn": Object { "Fn::GetAtt": Array [ "FtpTransferServiceAuthApiCloudWatchRoleC5A655F1", "Arn", ], }, }, "Type": "AWS::ApiGateway::Account", "UpdateReplacePolicy": "Retain", }, "FtpTransferServiceAuthApiCloudWatchRoleC5A655F1": Object { "DeletionPolicy": "Retain", "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "apigateway.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs", ], ], }, ], }, "Type": "AWS::IAM::Role", "UpdateReplacePolicy": "Retain", }, "FtpTransferServiceAuthApiDeployment080F98CD4add796e6e918f16607ae1e96ca530a7": Object { "DependsOn": Array [ "FtpTransferServiceAuthApiserversserverId81EB42BA", "FtpTransferServiceAuthApiserversserverIdusersusernameconfigGET3F86580F", "FtpTransferServiceAuthApiserversserverIdusersusernameconfig25060533", "FtpTransferServiceAuthApiserversserverIdusersusername3D9E66E3", "FtpTransferServiceAuthApiserversserverIdusers3F549AC8", "FtpTransferServiceAuthApiserversC237EBAF", ], "Properties": Object { "Description": "Automatically created by the RestApi construct", "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, }, "Type": "AWS::ApiGateway::Deployment", }, "FtpTransferServiceAuthApiDeploymentStageprodD1F90C1F": Object { "DependsOn": Array [ "FtpTransferServiceAuthApiAccount0D5D1357", ], "Properties": Object { "AccessLogSetting": Object { "DestinationArn": Object { "Fn::GetAtt": Array [ "FtpTransferServiceAuthApiLogsCEBBCB61", "Arn", ], }, "Format": "{\\"requestId\\":\\"$context.requestId\\",\\"ip\\":\\"$context.identity.sourceIp\\",\\"user\\":\\"$context.identity.user\\",\\"caller\\":\\"$context.identity.caller\\",\\"requestTime\\":\\"$context.requestTime\\",\\"httpMethod\\":\\"$context.httpMethod\\",\\"resourcePath\\":\\"$context.resourcePath\\",\\"status\\":\\"$context.status\\",\\"protocol\\":\\"$context.protocol\\",\\"responseLength\\":\\"$context.responseLength\\"}", }, "DeploymentId": Object { "Ref": "FtpTransferServiceAuthApiDeployment080F98CD4add796e6e918f16607ae1e96ca530a7", }, "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, "StageName": "prod", }, "Type": "AWS::ApiGateway::Stage", }, "FtpTransferServiceAuthApiLogsCEBBCB61": Object { "DeletionPolicy": "Retain", "Properties": Object { "RetentionInDays": 731, }, "Type": "AWS::Logs::LogGroup", "UpdateReplacePolicy": "Retain", }, "FtpTransferServiceAuthApiserversC237EBAF": Object { "Properties": Object { "ParentId": Object { "Fn::GetAtt": Array [ "FtpTransferServiceAuthApi4837DBB2", "RootResourceId", ], }, "PathPart": "servers", "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, }, "Type": "AWS::ApiGateway::Resource", }, "FtpTransferServiceAuthApiserversserverId81EB42BA": Object { "Properties": Object { "ParentId": Object { "Ref": "FtpTransferServiceAuthApiserversC237EBAF", }, "PathPart": "{serverId}", "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, }, "Type": "AWS::ApiGateway::Resource", }, "FtpTransferServiceAuthApiserversserverIdusers3F549AC8": Object { "Properties": Object { "ParentId": Object { "Ref": "FtpTransferServiceAuthApiserversserverId81EB42BA", }, "PathPart": "users", "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, }, "Type": "AWS::ApiGateway::Resource", }, "FtpTransferServiceAuthApiserversserverIdusersusername3D9E66E3": Object { "Properties": Object { "ParentId": Object { "Ref": "FtpTransferServiceAuthApiserversserverIdusers3F549AC8", }, "PathPart": "{username}", "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, }, "Type": "AWS::ApiGateway::Resource", }, "FtpTransferServiceAuthApiserversserverIdusersusernameconfig25060533": Object { "Properties": Object { "ParentId": Object { "Ref": "FtpTransferServiceAuthApiserversserverIdusersusername3D9E66E3", }, "PathPart": "config", "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, }, "Type": "AWS::ApiGateway::Resource", }, "FtpTransferServiceAuthApiserversserverIdusersusernameconfigGET3F86580F": Object { "Properties": Object { "AuthorizationType": "AWS_IAM", "HttpMethod": "GET", "Integration": Object { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", "Uri": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":apigateway:", Object { "Ref": "AWS::Region", }, ":lambda:path/2015-03-31/functions/", Object { "Fn::GetAtt": Array [ "FtpAuthHandler13566C97", "Arn", ], }, "/invocations", ], ], }, }, "ResourceId": Object { "Ref": "FtpTransferServiceAuthApiserversserverIdusersusernameconfig25060533", }, "RestApiId": Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, }, "Type": "AWS::ApiGateway::Method", }, "FtpTransferServiceAuthApiserversserverIdusersusernameconfigGETApiPermissionMyTestStackFtpTransferServiceAuthApiAF442CCAGETserversserverIdusersusernameconfigDE647C50": Object { "Properties": Object { "Action": "lambda:InvokeFunction", "FunctionName": Object { "Fn::GetAtt": Array [ "FtpAuthHandler13566C97", "Arn", ], }, "Principal": "apigateway.amazonaws.com", "SourceArn": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":execute-api:", Object { "Ref": "AWS::Region", }, ":", Object { "Ref": "AWS::AccountId", }, ":", Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, "/", Object { "Ref": "FtpTransferServiceAuthApiDeploymentStageprodD1F90C1F", }, "/GET/servers/*/users/*/config", ], ], }, }, "Type": "AWS::Lambda::Permission", }, "FtpTransferServiceAuthApiserversserverIdusersusernameconfigGETApiPermissionTestMyTestStackFtpTransferServiceAuthApiAF442CCAGETserversserverIdusersusernameconfig87BE1F93": Object { "Properties": Object { "Action": "lambda:InvokeFunction", "FunctionName": Object { "Fn::GetAtt": Array [ "FtpAuthHandler13566C97", "Arn", ], }, "Principal": "apigateway.amazonaws.com", "SourceArn": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":execute-api:", Object { "Ref": "AWS::Region", }, ":", Object { "Ref": "AWS::AccountId", }, ":", Object { "Ref": "FtpTransferServiceAuthApi4837DBB2", }, "/test-invoke-stage/GET/servers/*/users/*/config", ], ], }, }, "Type": "AWS::Lambda::Permission", }, "User1Role60FF65D3": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "transfer.amazonaws.com", }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::IAM::Role", }, "User1RoleDefaultPolicy2B8CC8B6": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:Abort*", ], "Effect": "Allow", "Resource": Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, "/home", ], ], }, ], }, Object { "Action": Array [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:Abort*", ], "Effect": "Allow", "Resource": Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, "/home/*", ], ], }, ], }, ], "Version": "2012-10-17", }, "PolicyName": "User1RoleDefaultPolicy2B8CC8B6", "Roles": Array [ Object { "Ref": "User1Role60FF65D3", }, ], }, "Type": "AWS::IAM::Policy", }, "User1UserFF437088": Object { "DeletionPolicy": "Delete", "Properties": Object { "GenerateSecretString": Object { "ExcludePunctuation": true, "GenerateStringKey": "Password", "SecretStringTemplate": Object { "Fn::Join": Array [ "", Array [ "{\\"Role\\":\\"", Object { "Fn::GetAtt": Array [ "User1Role60FF65D3", "Arn", ], }, "\\",\\"HomeDirectoryDetails\\":\\"[{\\\\\\"Entry\\\\\\":\\\\\\"/\\\\\\",\\\\\\"Target\\\\\\":\\\\\\"/", Object { "Ref": "Bucket83908E77", }, "/home\\\\\\"}]\\"}", ], ], }, }, "Name": Object { "Fn::Join": Array [ "", Array [ "ftpSecret/", Object { "Fn::GetAtt": Array [ "FtpServerCFDFB6F8", "ServerId", ], }, "/user1", ], ], }, }, "Type": "AWS::SecretsManager::Secret", "UpdateReplacePolicy": "Delete", }, "User2RoleDefaultPolicy59F43806": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:Abort*", ], "Effect": "Allow", "Resource": Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, "/home", ], ], }, ], }, Object { "Action": Array [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:Abort*", ], "Effect": "Allow", "Resource": Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "Bucket83908E77", "Arn", ], }, "/home/*", ], ], }, ], }, ], "Version": "2012-10-17", }, "PolicyName": "User2RoleDefaultPolicy59F43806", "Roles": Array [ Object { "Ref": "User2RoleF7116B36", }, ], }, "Type": "AWS::IAM::Policy", }, "User2RoleF7116B36": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "transfer.amazonaws.com", }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::IAM::Role", }, "User2User0C6B37B0": Object { "DeletionPolicy": "Delete", "Properties": Object { "GenerateSecretString": Object { "ExcludePunctuation": true, "GenerateStringKey": "Dummy", "SecretStringTemplate": Object { "Fn::Join": Array [ "", Array [ "{\\"Role\\":\\"", Object { "Fn::GetAtt": Array [ "User2RoleF7116B36", "Arn", ], }, "\\",\\"HomeDirectoryDetails\\":\\"[{\\\\\\"Entry\\\\\\":\\\\\\"/\\\\\\",\\\\\\"Target\\\\\\":\\\\\\"/", Object { "Ref": "Bucket83908E77", }, "/home\\\\\\"}]\\",\\"Password\\":\\"password\\"}", ], ], }, }, "Name": Object { "Fn::Join": Array [ "", Array [ "ftpSecret/", Object { "Fn::GetAtt": Array [ "FtpServerCFDFB6F8", "ServerId", ], }, "/user2", ], ], }, }, "Type": "AWS::SecretsManager::Secret", "UpdateReplacePolicy": "Delete", }, "Vpc8378EB38": Object { "Properties": Object { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc", }, ], }, "Type": "AWS::EC2::VPC", }, "VpcIGWD7BA715C": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc", }, ], }, "Type": "AWS::EC2::InternetGateway", }, "VpcPrivateSubnet1DefaultRouteBE02A9ED": Object { "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "NatGatewayId": Object { "Ref": "VpcPublicSubnet1NATGateway4D7517AA", }, "RouteTableId": Object { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, }, "Type": "AWS::EC2::Route", }, "VpcPrivateSubnet1RouteTableAssociation70C59FA6": Object { "Properties": Object { "RouteTableId": Object { "Ref": "VpcPrivateSubnet1RouteTableB2C5B500", }, "SubnetId": Object { "Ref": "VpcPrivateSubnet1Subnet536B997A", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "VpcPrivateSubnet1RouteTableB2C5B500": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc/PrivateSubnet1", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, "VpcPrivateSubnet1Subnet536B997A": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 0, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.128.0/18", "MapPublicIpOnLaunch": false, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Private", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Private", }, Object { "Key": "Name", "Value": "MyTestStack/Vpc/PrivateSubnet1", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, "VpcPrivateSubnet2DefaultRoute060D2087": Object { "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "NatGatewayId": Object { "Ref": "VpcPublicSubnet1NATGateway4D7517AA", }, "RouteTableId": Object { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, }, "Type": "AWS::EC2::Route", }, "VpcPrivateSubnet2RouteTableA678073B": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc/PrivateSubnet2", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, "VpcPrivateSubnet2RouteTableAssociationA89CAD56": Object { "Properties": Object { "RouteTableId": Object { "Ref": "VpcPrivateSubnet2RouteTableA678073B", }, "SubnetId": Object { "Ref": "VpcPrivateSubnet2Subnet3788AAA1", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "VpcPrivateSubnet2Subnet3788AAA1": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 1, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.192.0/18", "MapPublicIpOnLaunch": false, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Private", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Private", }, Object { "Key": "Name", "Value": "MyTestStack/Vpc/PrivateSubnet2", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, "VpcPublicSubnet1DefaultRoute3DA9E72A": Object { "DependsOn": Array [ "VpcVPCGWBF912B6E", ], "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "GatewayId": Object { "Ref": "VpcIGWD7BA715C", }, "RouteTableId": Object { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, }, "Type": "AWS::EC2::Route", }, "VpcPublicSubnet1EIPD7E02669": Object { "Properties": Object { "Domain": "vpc", "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc/PublicSubnet1", }, ], }, "Type": "AWS::EC2::EIP", }, "VpcPublicSubnet1NATGateway4D7517AA": Object { "DependsOn": Array [ "VpcPublicSubnet1DefaultRoute3DA9E72A", "VpcPublicSubnet1RouteTableAssociation97140677", ], "Properties": Object { "AllocationId": Object { "Fn::GetAtt": Array [ "VpcPublicSubnet1EIPD7E02669", "AllocationId", ], }, "SubnetId": Object { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc/PublicSubnet1", }, ], }, "Type": "AWS::EC2::NatGateway", }, "VpcPublicSubnet1RouteTable6C95E38E": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc/PublicSubnet1", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, "VpcPublicSubnet1RouteTableAssociation97140677": Object { "Properties": Object { "RouteTableId": Object { "Ref": "VpcPublicSubnet1RouteTable6C95E38E", }, "SubnetId": Object { "Ref": "VpcPublicSubnet1Subnet5C2D37C4", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "VpcPublicSubnet1Subnet5C2D37C4": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 0, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.0.0/18", "MapPublicIpOnLaunch": true, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Public", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Public", }, Object { "Key": "Name", "Value": "MyTestStack/Vpc/PublicSubnet1", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, "VpcPublicSubnet2DefaultRoute97F91067": Object { "DependsOn": Array [ "VpcVPCGWBF912B6E", ], "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "GatewayId": Object { "Ref": "VpcIGWD7BA715C", }, "RouteTableId": Object { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, }, "Type": "AWS::EC2::Route", }, "VpcPublicSubnet2RouteTable94F7E489": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "MyTestStack/Vpc/PublicSubnet2", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::RouteTable", }, "VpcPublicSubnet2RouteTableAssociationDD5762D8": Object { "Properties": Object { "RouteTableId": Object { "Ref": "VpcPublicSubnet2RouteTable94F7E489", }, "SubnetId": Object { "Ref": "VpcPublicSubnet2Subnet691E08A3", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "VpcPublicSubnet2Subnet691E08A3": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 1, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.0.64.0/18", "MapPublicIpOnLaunch": true, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Public", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Public", }, Object { "Key": "Name", "Value": "MyTestStack/Vpc/PublicSubnet2", }, ], "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::Subnet", }, "VpcVPCGWBF912B6E": Object { "Properties": Object { "InternetGatewayId": Object { "Ref": "VpcIGWD7BA715C", }, "VpcId": Object { "Ref": "Vpc8378EB38", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, }, "Rules": Object { "CheckBootstrapVersion": Object { "Assertions": Array [ Object { "Assert": Object { "Fn::Not": Array [ Object { "Fn::Contains": Array [ Array [ "1", "2", "3", "4", "5", ], Object { "Ref": "BootstrapVersion", }, ], }, ], }, "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.", }, ], }, }, } `;