Resources: items07D08F4B: Type: AWS::DynamoDB::Table Properties: KeySchema: - AttributeName: itemId KeyType: HASH AttributeDefinitions: - AttributeName: itemId AttributeType: S ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 5 TableName: items UpdateReplacePolicy: Delete DeletionPolicy: Delete Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/items/Resource createItemFunctionServiceRole1BBF2178: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Action: sts:AssumeRole Effect: Allow Principal: Service: lambda.amazonaws.com Version: "2012-10-17" ManagedPolicyArns: - Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - :iam::aws:policy/service-role/AWSLambdaBasicExecutionRole Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/createItemFunction/ServiceRole/Resource createItemFunctionServiceRoleDefaultPolicy8FAF1611: Type: AWS::IAM::Policy Properties: PolicyDocument: Statement: - Action: - dynamodb:BatchGetItem - dynamodb:GetRecords - dynamodb:GetShardIterator - dynamodb:Query - dynamodb:GetItem - dynamodb:Scan - dynamodb:BatchWriteItem - dynamodb:PutItem - dynamodb:UpdateItem - dynamodb:DeleteItem Effect: Allow Resource: - Fn::GetAtt: - items07D08F4B - Arn - Ref: AWS::NoValue Version: "2012-10-17" PolicyName: createItemFunctionServiceRoleDefaultPolicy8FAF1611 Roles: - Ref: createItemFunctionServiceRole1BBF2178 Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/createItemFunction/ServiceRole/DefaultPolicy/Resource createItemFunction8D47E48A: Type: AWS::Lambda::Function Properties: Code: S3Bucket: Ref: AssetParameters86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37S3Bucket0DCEE2D9 S3Key: Fn::Join: - "" - - Fn::Select: - 0 - Fn::Split: - "||" - Ref: AssetParameters86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37S3VersionKey56B2E5D6 - Fn::Select: - 1 - Fn::Split: - "||" - Ref: AssetParameters86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37S3VersionKey56B2E5D6 Handler: create.handler Role: Fn::GetAtt: - createItemFunctionServiceRole1BBF2178 - Arn Runtime: nodejs10.x Environment: Variables: TABLE_NAME: Ref: items07D08F4B PRIMARY_KEY: itemId DependsOn: - createItemFunctionServiceRoleDefaultPolicy8FAF1611 - createItemFunctionServiceRole1BBF2178 Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/createItemFunction/Resource aws:asset:path: asset.86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37 aws:asset:property: Code itemsApi28111E1C: Type: AWS::ApiGateway::RestApi Properties: Name: Items Service Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/Resource itemsApiDeploymentFEC31BD0f48db32b51f0c56a135190c6412bd0e2: Type: AWS::ApiGateway::Deployment Properties: RestApiId: Ref: itemsApi28111E1C Description: Automatically created by the RestApi construct DependsOn: - itemsApiitemsPOSTDD3E83D0 - itemsApiitems9015DBED Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/Deployment/Resource itemsApiDeploymentStageprodE77B897D: Type: AWS::ApiGateway::Stage Properties: RestApiId: Ref: itemsApi28111E1C DeploymentId: Ref: itemsApiDeploymentFEC31BD0f48db32b51f0c56a135190c6412bd0e2 StageName: prod Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/DeploymentStage.prod/Resource itemsApiCloudWatchRoleB5C7B431: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Action: sts:AssumeRole Effect: Allow Principal: Service: apigateway.amazonaws.com Version: "2012-10-17" ManagedPolicyArns: - Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - :iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/CloudWatchRole/Resource itemsApiAccount591BF3E1: Type: AWS::ApiGateway::Account Properties: CloudWatchRoleArn: Fn::GetAtt: - itemsApiCloudWatchRoleB5C7B431 - Arn DependsOn: - itemsApi28111E1C Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/Account itemsApiitems9015DBED: Type: AWS::ApiGateway::Resource Properties: ParentId: Fn::GetAtt: - itemsApi28111E1C - RootResourceId PathPart: items RestApiId: Ref: itemsApi28111E1C Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/Default/items/Resource itemsApiitemsPOSTApiPermissionApiLambdaCrudDynamoDBExampleitemsApiC8514132POSTitems7DA2B753: Type: AWS::Lambda::Permission Properties: Action: lambda:InvokeFunction FunctionName: Fn::GetAtt: - createItemFunction8D47E48A - Arn Principal: apigateway.amazonaws.com SourceArn: Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - ":execute-api:" - Ref: AWS::Region - ":" - Ref: AWS::AccountId - ":" - Ref: itemsApi28111E1C - / - Ref: itemsApiDeploymentStageprodE77B897D - /POST/items Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/Default/items/POST/ApiPermission.ApiLambdaCrudDynamoDBExampleitemsApiC8514132.POST..items itemsApiitemsPOSTApiPermissionTestApiLambdaCrudDynamoDBExampleitemsApiC8514132POSTitemsAE25CBB6: Type: AWS::Lambda::Permission Properties: Action: lambda:InvokeFunction FunctionName: Fn::GetAtt: - createItemFunction8D47E48A - Arn Principal: apigateway.amazonaws.com SourceArn: Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - ":execute-api:" - Ref: AWS::Region - ":" - Ref: AWS::AccountId - ":" - Ref: itemsApi28111E1C - /test-invoke-stage/POST/items Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/Default/items/POST/ApiPermission.Test.ApiLambdaCrudDynamoDBExampleitemsApiC8514132.POST..items itemsApiitemsPOSTDD3E83D0: Type: AWS::ApiGateway::Method Properties: HttpMethod: POST ResourceId: Ref: itemsApiitems9015DBED RestApiId: Ref: itemsApi28111E1C AuthorizationType: NONE Integration: IntegrationHttpMethod: POST Type: AWS_PROXY Uri: Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - ":apigateway:" - Ref: AWS::Region - :lambda:path/2015-03-31/functions/ - Fn::GetAtt: - createItemFunction8D47E48A - Arn - /invocations Metadata: aws:cdk:path: ApiLambdaCrudDynamoDBExample/itemsApi/Default/items/POST/Resource CDKMetadata: Type: AWS::CDK::Metadata Properties: Modules: aws-cdk=1.19.0,@aws-cdk/assets=1.19.0,@aws-cdk/aws-apigateway=1.19.0,@aws-cdk/aws-applicationautoscaling=1.19.0,@aws-cdk/aws-autoscaling-common=1.19.0,@aws-cdk/aws-cloudwatch=1.19.0,@aws-cdk/aws-dynamodb=1.19.0,@aws-cdk/aws-ec2=1.19.0,@aws-cdk/aws-events=1.19.0,@aws-cdk/aws-iam=1.19.0,@aws-cdk/aws-kms=1.19.0,@aws-cdk/aws-lambda=1.19.0,@aws-cdk/aws-s3=1.19.0,@aws-cdk/aws-s3-assets=1.19.0,@aws-cdk/aws-sqs=1.19.0,@aws-cdk/aws-ssm=1.19.0,@aws-cdk/core=1.19.0,@aws-cdk/cx-api=1.19.0,@aws-cdk/region-info=1.19.0,jsii-runtime=node.js/v10.16.3 Condition: CDKMetadataAvailable Parameters: AssetParameters86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37S3Bucket0DCEE2D9: Type: String Description: S3 bucket for asset "86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37" AssetParameters86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37S3VersionKey56B2E5D6: Type: String Description: S3 key for asset version "86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37" AssetParameters86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37ArtifactHash9A5F9327: Type: String Description: Artifact hash for asset "86e2970d042dfb0ed5675349c01493829075063723f6685f7a56ff24f4d0cd37" Outputs: itemsApiEndpoint8392E274: Value: Fn::Join: - "" - - https:// - Ref: itemsApi28111E1C - .execute-api. - Ref: AWS::Region - "." - Ref: AWS::URLSuffix - / - Ref: itemsApiDeploymentStageprodE77B897D - / Conditions: CDKMetadataAvailable: Fn::Or: - Fn::Or: - Fn::Equals: - Ref: AWS::Region - ap-east-1 - Fn::Equals: - Ref: AWS::Region - ap-northeast-1 - Fn::Equals: - Ref: AWS::Region - ap-northeast-2 - Fn::Equals: - Ref: AWS::Region - ap-south-1 - Fn::Equals: - Ref: AWS::Region - ap-southeast-1 - Fn::Equals: - Ref: AWS::Region - ap-southeast-2 - Fn::Equals: - Ref: AWS::Region - ca-central-1 - Fn::Equals: - Ref: AWS::Region - cn-north-1 - Fn::Equals: - Ref: AWS::Region - cn-northwest-1 - Fn::Equals: - Ref: AWS::Region - eu-central-1 - Fn::Or: - Fn::Equals: - Ref: AWS::Region - eu-north-1 - Fn::Equals: - Ref: AWS::Region - eu-west-1 - Fn::Equals: - Ref: AWS::Region - eu-west-2 - Fn::Equals: - Ref: AWS::Region - eu-west-3 - Fn::Equals: - Ref: AWS::Region - me-south-1 - Fn::Equals: - Ref: AWS::Region - sa-east-1 - Fn::Equals: - Ref: AWS::Region - us-east-1 - Fn::Equals: - Ref: AWS::Region - us-east-2 - Fn::Equals: - Ref: AWS::Region - us-west-1 - Fn::Equals: - Ref: AWS::Region - us-west-2