konokenj.cdk-api-mcp-server 0.31.0__py3-none-any.whl → 0.57.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cdk_api_mcp_server/__about__.py +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +12 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md +1979 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-alpha/README.md +946 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md +160 -75
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-elasticache-alpha/README.md +421 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md +39 -9
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md +656 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-go-alpha/README.md +102 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-python-alpha/README.md +6 -6
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +38 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-s3tables-alpha/README.md +82 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-sagemaker-alpha/README.md +32 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +182 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/README.md/README.md +367 -17
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/README.md +34 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-proxy.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-permission-consolidation.ts +55 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md +224 -60
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts +3 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +5 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +10 -7
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.usage-plan.ts +80 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +34 -38
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts +2 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md +35 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts +7 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-connect-disconnect-trigger.ts +2 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-permission-consolidation.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-proxy.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda.ts +4 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.sqs.ts +58 -71
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-lambda-permission.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.js-resolver.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/README.md +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-lt.ts +7 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +49 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-exec-batch-job.ts +148 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment-default-instance-class.ts +20 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/README.md +11 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-service-timeout.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/README.md +292 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +83 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-ip-address-type.ts +84 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts +5 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts +50 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-data-events-only.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +104 -12
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts +12 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts +44 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-graphwidget-with-labels-visible.ts +92 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-metric-id-and-visible.ts +70 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.search-expression.ts +51 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md +143 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-docker-server.ts +44 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-attribute-based-compute.ts +59 -7
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-custom-instance-type.ts +130 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-overflow-behavior.ts +61 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-s3-cache.ts +71 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-windows-image.ts +1 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +26 -17
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/README.md +13 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-explicit-props.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md +24 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts +34 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +225 -15
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md +45 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.cci.ts +49 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts +97 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.cci.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.compound.ts +32 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.contirubtor-insights-for-gsi.ts +6 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts +21 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-global.ts +9 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-mrsc.ts +31 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2.compound.ts +43 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +28 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-disconnect-on-session-timeout.ts +65 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-endpoint.lit.ts +6 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/README.md +41 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.tag-mutability-exclusion.ts +30 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-docker.ts +6 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +189 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.availability-zone-rebalancing.ts +14 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.blue-green-deployment-strategy.ts +147 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-windows-server-ami.ts +5 -6
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.ebs-volume-initialization-rate.ts +80 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.enable-execute-command.ts +35 -29
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.exec-command.ts +16 -22
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-awsvpc-nw.ts +26 -16
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider.ts +114 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-no-default-capacity-provider.ts +107 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-strategies.ts +32 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.pseudo-terminal.ts +18 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/README.md +2 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-public-private-switch.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-smart-defaults.ts +143 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +103 -83
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-removal-policy.ts +31 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +55 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-attributes.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.oidc.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-attributes.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.security-group.ts +70 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/integ.cognito.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md +41 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.api-destination.ts +42 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive-customer-managed-key.ts +23 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts +13 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md +93 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.firehose-delivery-stream.ts +51 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.custom-permissions-boundary-aspect.ts +50 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.managed-policy.ts +9 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.policy.ts +9 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md +42 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-shard-level-monitoring.ts +47 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md +159 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.cloudwatch-logs-processors.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion-schema.ts +154 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion.ts +178 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.s3-bucket.lit.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +41 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-policy-with-token-resolution.ts +46 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.logging-config.ts +8 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.multi-tenancy.ts +24 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.params-and-secrets.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime-management.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.fromasset.ts +19 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts +11 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md +3 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun-lock.ts +50 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function-exclude-smithy-models.ts +2 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +69 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-transformer.ts +37 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-apply-on-transformed-logs.ts +29 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.save-logs-insights-query-definition.ts +7 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.transformer.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ebs.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +72 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-cloudwatch-logs-exports.ts +56 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api-to-imported-cluster.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-lookup.ts +100 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-database-insights.ts +43 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-lookup.ts +77 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-endpoint.ts +36 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +68 -31
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.delete-existing-record-set.ts +0 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.private-hosted-zone-from-attributes.ts +41 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts +51 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.zone-delegation-iam-stack.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts +16 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-hostedzoneid.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications-scoped-permissions.ts +71 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.bundling.docker-opts.ts +4 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/README.md +83 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-big-response.ts +17 -6
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cloudfront.ts +20 -18
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-nested-stack-source.ts +64 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-source.ts +53 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-ssm-source.ts +97 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-data.ts +99 -59
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-deployed-bucket.ts +10 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-large-file.ts +23 -12
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-loggroup.ts +7 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-efs.ts +77 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-empty.ts +69 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-multiple.ts +89 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-single.ts +77 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.ts +11 -7
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-destination-key.ts +15 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-role.ts +29 -14
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution.ts +16 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-basic.ts +65 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-config.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-custom-subnets.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-efs.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-security-groups.ts +72 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-subnet-selection.ts +70 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment.ts +47 -69
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications.ts +80 -42
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.secret.dynamic-reference-key.ts +38 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-signer/integ.signing-profile.ts +5 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/README.md +2 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs-subscription-filter.ts +75 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs.ts +21 -40
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-parallel.ts +82 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-redrive.ts +130 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.sm-jsonpath-with-distributed-map-jsonata.ts +105 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +75 -5
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-ebs.ts +126 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-arm64.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-default.ts +25 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-mixed-arch.ts +35 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-nodejs22.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-x86.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-json-path.ts +102 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +84 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-browser-type.ts +35 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-resources-to-replicate-tags.ts +36 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-retry.ts +32 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-runtime-validation.ts +43 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts +2 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.novalue-nonstring.ts +25 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/README.md +2 -1870
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/README.md +59 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-node-runtime.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.external-id.ts +80 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.invoke-function-payload.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +152 -10
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +55 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/interfaces/README.md +33 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts +4 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-customsynthesizer.ts +105 -0
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/METADATA +2 -2
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/RECORD +240 -151
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts +0 -33
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.expose-metric-with-dimensions.ts +0 -47
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.d.ts +0 -1
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/WHEEL +0 -0
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/entry_points.txt +0 -0
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/licenses/LICENSE.txt +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
3
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
4
|
+
import * as cdk from 'aws-cdk-lib';
|
|
5
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
import { Construct } from 'constructs';
|
|
7
|
+
import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Integration test for bucket deployment with VPC and custom security groups:
|
|
11
|
+
* - Lambda function runs in VPC with custom security group
|
|
12
|
+
* - Security group allows all outbound traffic for S3 access
|
|
13
|
+
*/
|
|
14
|
+
class TestBucketDeploymentVpcSecurityGroups extends cdk.Stack {
|
|
15
|
+
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
|
|
16
|
+
super(scope, id, props);
|
|
17
|
+
|
|
18
|
+
// VPC with specific security groups
|
|
19
|
+
// Use isolated subnets with S3 VPC endpoint - no NAT Gateway or Elastic IP needed
|
|
20
|
+
const vpc = new ec2.Vpc(this, 'SgVpc', {
|
|
21
|
+
restrictDefaultSecurityGroup: false,
|
|
22
|
+
natGateways: 0,
|
|
23
|
+
subnetConfiguration: [
|
|
24
|
+
{
|
|
25
|
+
cidrMask: 24,
|
|
26
|
+
name: 'Isolated',
|
|
27
|
+
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Add S3 Gateway endpoint so Lambda can access S3 without NAT Gateway
|
|
33
|
+
vpc.addGatewayEndpoint('S3Endpoint', {
|
|
34
|
+
service: ec2.GatewayVpcEndpointAwsService.S3,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const securityGroup = new ec2.SecurityGroup(this, 'CustomSecurityGroup', {
|
|
38
|
+
vpc: vpc,
|
|
39
|
+
description: 'Custom security group for bucket deployment',
|
|
40
|
+
allowAllOutbound: true,
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const bucket = new s3.Bucket(this, 'Destination', {
|
|
44
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
45
|
+
autoDeleteObjects: true,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
new s3deploy.BucketDeployment(this, 'DeployWithVpcAndSecurityGroup', {
|
|
49
|
+
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
50
|
+
destinationBucket: bucket,
|
|
51
|
+
destinationKeyPrefix: 'sg-vpc/',
|
|
52
|
+
vpc: vpc,
|
|
53
|
+
securityGroups: [securityGroup],
|
|
54
|
+
retainOnDelete: false,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const app = new cdk.App({
|
|
60
|
+
postCliContext: {
|
|
61
|
+
'@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const testCase = new TestBucketDeploymentVpcSecurityGroups(app, 'test-bucket-deployment-vpc-security-groups');
|
|
66
|
+
|
|
67
|
+
new integ.IntegTest(app, 'integ-test-bucket-deployment-vpc-security-groups', {
|
|
68
|
+
testCases: [testCase],
|
|
69
|
+
diffAssets: false,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
app.synth();
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
3
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
4
|
+
import * as cdk from 'aws-cdk-lib';
|
|
5
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
import { Construct } from 'constructs';
|
|
7
|
+
import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Integration test for bucket deployment with VPC and explicit subnet selection:
|
|
11
|
+
* - Lambda function runs in VPC with explicit subnet type selection
|
|
12
|
+
* - Tests vpcSubnets property for controlling which subnets Lambda uses
|
|
13
|
+
*/
|
|
14
|
+
class TestBucketDeploymentVpcSubnetSelection extends cdk.Stack {
|
|
15
|
+
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
|
|
16
|
+
super(scope, id, props);
|
|
17
|
+
|
|
18
|
+
// VPC with specific subnets
|
|
19
|
+
// Use isolated subnets with S3 VPC endpoint - no NAT Gateway or Elastic IP needed
|
|
20
|
+
// Use a different CIDR to avoid conflicts with existing stacks
|
|
21
|
+
const vpc = new ec2.Vpc(this, 'SubnetVpc', {
|
|
22
|
+
restrictDefaultSecurityGroup: false,
|
|
23
|
+
natGateways: 0,
|
|
24
|
+
ipAddresses: ec2.IpAddresses.cidr('10.1.0.0/16'),
|
|
25
|
+
subnetConfiguration: [
|
|
26
|
+
{
|
|
27
|
+
cidrMask: 24,
|
|
28
|
+
name: 'Isolated',
|
|
29
|
+
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// Add S3 Gateway endpoint so Lambda can access S3 without NAT Gateway
|
|
35
|
+
vpc.addGatewayEndpoint('S3Endpoint', {
|
|
36
|
+
service: ec2.GatewayVpcEndpointAwsService.S3,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const bucket = new s3.Bucket(this, 'Destination', {
|
|
40
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
41
|
+
autoDeleteObjects: true,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
new s3deploy.BucketDeployment(this, 'DeployWithVpcAndSubnets', {
|
|
45
|
+
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
46
|
+
destinationBucket: bucket,
|
|
47
|
+
destinationKeyPrefix: 'subnet-vpc/',
|
|
48
|
+
vpc: vpc,
|
|
49
|
+
vpcSubnets: {
|
|
50
|
+
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
|
|
51
|
+
},
|
|
52
|
+
retainOnDelete: false,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const app = new cdk.App({
|
|
58
|
+
postCliContext: {
|
|
59
|
+
'@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const testCase = new TestBucketDeploymentVpcSubnetSelection(app, 'test-bucket-deployment-vpc-subnet-selection');
|
|
64
|
+
|
|
65
|
+
new integ.IntegTest(app, 'integ-test-bucket-deployment-vpc-subnet-selection', {
|
|
66
|
+
testCases: [testCase],
|
|
67
|
+
diffAssets: false,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
app.synth();
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
|
-
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
3
2
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
4
3
|
import * as cdk from 'aws-cdk-lib';
|
|
5
4
|
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
@@ -7,115 +6,93 @@ import { Match } from '@aws-cdk/integ-tests-alpha';
|
|
|
7
6
|
import { Construct } from 'constructs';
|
|
8
7
|
import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
|
|
9
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Integration test for core bucket deployment features:
|
|
11
|
+
* - Basic deployment functionality
|
|
12
|
+
* - Prune behavior (deleting files not in source)
|
|
13
|
+
* - Exclude filters
|
|
14
|
+
* - Extract behavior (extracting vs keeping zip files)
|
|
15
|
+
* - addSource() method for dynamically adding sources
|
|
16
|
+
* - objectKeys output property and outputObjectKeys flag
|
|
17
|
+
*/
|
|
10
18
|
class TestBucketDeployment extends cdk.Stack {
|
|
11
|
-
public readonly
|
|
19
|
+
public readonly bucketWithAddSource: s3.IBucket;
|
|
12
20
|
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
|
|
13
21
|
super(scope, id, props);
|
|
14
22
|
|
|
15
|
-
const
|
|
16
|
-
websiteIndexDocument: 'index.html',
|
|
17
|
-
publicReadAccess: false,
|
|
23
|
+
const commonBucketProps = {
|
|
18
24
|
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
19
25
|
autoDeleteObjects: true, // needed for integration test cleanup
|
|
20
|
-
}
|
|
26
|
+
};
|
|
21
27
|
|
|
22
|
-
new
|
|
23
|
-
|
|
24
|
-
destinationBucket,
|
|
25
|
-
retainOnDelete: false, // default is true, which will block the integration test cleanup
|
|
28
|
+
const destinationBucket = new s3.Bucket(this, 'Destination', {
|
|
29
|
+
...commonBucketProps,
|
|
26
30
|
});
|
|
27
31
|
|
|
28
|
-
|
|
32
|
+
// Test basic deployment functionality
|
|
33
|
+
new s3deploy.BucketDeployment(this, 'DeployWithBasic', {
|
|
29
34
|
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
30
35
|
destinationBucket,
|
|
31
|
-
|
|
32
|
-
useEfs: true,
|
|
33
|
-
vpc: new ec2.Vpc(this, 'InlineVpc', { restrictDefaultSecurityGroup: false }),
|
|
34
|
-
retainOnDelete: false, // default is true, which will block the integration test cleanup
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
const bucket2 = new s3.Bucket(this, 'Destination2', {
|
|
38
|
-
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
39
|
-
autoDeleteObjects: true, // needed for integration test cleanup
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
new s3deploy.BucketDeployment(this, 'DeployWithPrefix', {
|
|
43
|
-
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
44
|
-
destinationBucket: bucket2,
|
|
45
|
-
destinationKeyPrefix: 'deploy/here/',
|
|
46
|
-
retainOnDelete: false, // default is true, which will block the integration test cleanup
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
const bucket3 = new s3.Bucket(this, 'Destination3', {
|
|
50
|
-
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
51
|
-
autoDeleteObjects: true, // needed for integration test cleanup
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
new s3deploy.BucketDeployment(this, 'DeployWithMetadata', {
|
|
55
|
-
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
56
|
-
destinationBucket: bucket3,
|
|
57
|
-
retainOnDelete: false, // default is true, which will block the integration test cleanup
|
|
58
|
-
cacheControl: [s3deploy.CacheControl.setPublic(), s3deploy.CacheControl.maxAge(cdk.Duration.minutes(1))],
|
|
59
|
-
contentType: 'text/html',
|
|
60
|
-
metadata: { A: 'aaa', B: 'bbb', C: 'ccc' },
|
|
36
|
+
retainOnDelete: false,
|
|
61
37
|
});
|
|
62
38
|
|
|
63
|
-
|
|
39
|
+
// Test that files not in source are preserved when prune is disabled
|
|
40
|
+
new s3deploy.BucketDeployment(this, 'DeployWithPruneDisabled', {
|
|
64
41
|
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
65
42
|
destinationBucket,
|
|
66
43
|
prune: false,
|
|
67
44
|
retainOnDelete: false,
|
|
68
45
|
});
|
|
69
46
|
|
|
70
|
-
|
|
47
|
+
// Test exclude filters to skip certain files from deployment
|
|
48
|
+
new s3deploy.BucketDeployment(this, 'DeployWithExclude', {
|
|
71
49
|
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
72
50
|
destinationBucket,
|
|
73
51
|
exclude: ['*.gif'],
|
|
74
52
|
retainOnDelete: false,
|
|
75
53
|
});
|
|
76
54
|
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
80
|
-
autoDeleteObjects: true, // needed for integration test cleanup
|
|
55
|
+
const bucketWithoutExtract = new s3.Bucket(this, 'BucketWithoutExtract', {
|
|
56
|
+
...commonBucketProps,
|
|
81
57
|
});
|
|
82
58
|
|
|
83
|
-
|
|
59
|
+
// Test that zip files are uploaded as-is when extract is disabled
|
|
60
|
+
new s3deploy.BucketDeployment(this, 'DeployWithoutExtract', {
|
|
84
61
|
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
|
|
85
|
-
destinationBucket:
|
|
62
|
+
destinationBucket: bucketWithoutExtract,
|
|
86
63
|
extract: false,
|
|
87
64
|
retainOnDelete: false,
|
|
88
65
|
});
|
|
89
66
|
|
|
90
|
-
this.
|
|
91
|
-
|
|
92
|
-
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
93
|
-
autoDeleteObjects: true, // needed for integration test cleanup
|
|
67
|
+
this.bucketWithAddSource = new s3.Bucket(this, 'BucketWithAddSource', {
|
|
68
|
+
...commonBucketProps,
|
|
94
69
|
});
|
|
95
70
|
|
|
96
|
-
|
|
71
|
+
// Test addSource() method for dynamically adding sources after construction
|
|
72
|
+
// and validate objectKeys output property returns both asset files and added sources
|
|
73
|
+
const deployWithAddSource = new s3deploy.BucketDeployment(this, 'DeployWithAddSource', {
|
|
97
74
|
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website-second'))],
|
|
98
|
-
destinationBucket: this.
|
|
99
|
-
retainOnDelete: false,
|
|
75
|
+
destinationBucket: this.bucketWithAddSource,
|
|
76
|
+
retainOnDelete: false,
|
|
100
77
|
});
|
|
101
|
-
|
|
78
|
+
deployWithAddSource.addSource(s3deploy.Source.data('some-key', 'helloworld'));
|
|
102
79
|
|
|
80
|
+
// Output objectKeys to validate they are returned in CloudFormation outputs
|
|
103
81
|
new cdk.CfnOutput(this, 'customResourceData', {
|
|
104
82
|
value: cdk.Fn.sub('Object Keys are ${keys}', {
|
|
105
|
-
keys: cdk.Fn.join(',',
|
|
83
|
+
keys: cdk.Fn.join(',', deployWithAddSource.objectKeys),
|
|
106
84
|
}),
|
|
107
85
|
});
|
|
108
86
|
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
112
|
-
autoDeleteObjects: true, // needed for integration test cleanup
|
|
87
|
+
const bucketWithoutObjectKeys = new s3.Bucket(this, 'BucketWithoutObjectKeys', {
|
|
88
|
+
...commonBucketProps,
|
|
113
89
|
});
|
|
114
90
|
|
|
115
|
-
|
|
91
|
+
// Test that objectKeys are not returned when outputObjectKeys is disabled
|
|
92
|
+
new s3deploy.BucketDeployment(this, 'DeployWithoutObjectKeys', {
|
|
116
93
|
sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website-second'))],
|
|
117
|
-
destinationBucket:
|
|
118
|
-
retainOnDelete: false,
|
|
94
|
+
destinationBucket: bucketWithoutObjectKeys,
|
|
95
|
+
retainOnDelete: false,
|
|
119
96
|
outputObjectKeys: false,
|
|
120
97
|
});
|
|
121
98
|
}
|
|
@@ -128,13 +105,14 @@ const app = new cdk.App({
|
|
|
128
105
|
});
|
|
129
106
|
const testCase = new TestBucketDeployment(app, 'test-bucket-deployments');
|
|
130
107
|
|
|
131
|
-
// Assert that DeployMeWithoutExtractingFilesOnDestination deploys a zip file to bucket4
|
|
132
108
|
const integTest = new integ.IntegTest(app, 'integ-test-bucket-deployments', {
|
|
133
109
|
testCases: [testCase],
|
|
134
110
|
diffAssets: true,
|
|
135
111
|
});
|
|
112
|
+
|
|
113
|
+
// Assert that addSource() successfully adds the data source alongside the asset source
|
|
136
114
|
const listObjectsCall = integTest.assertions.awsApiCall('S3', 'listObjects', {
|
|
137
|
-
Bucket: testCase.
|
|
115
|
+
Bucket: testCase.bucketWithAddSource.bucketName,
|
|
138
116
|
});
|
|
139
117
|
listObjectsCall.provider.addToRolePolicy({
|
|
140
118
|
Effect: 'Allow',
|
|
@@ -154,12 +132,12 @@ listObjectsCall.expect(integ.ExpectedResult.objectLike({
|
|
|
154
132
|
),
|
|
155
133
|
}));
|
|
156
134
|
|
|
157
|
-
// Assert that
|
|
135
|
+
// Assert that objectKeys output contains the deployed object keys when outputObjectKeys is enabled (default)
|
|
158
136
|
const describe = integTest.assertions.awsApiCall('CloudFormation', 'describeStacks', {
|
|
159
137
|
StackName: 'test-bucket-deployments',
|
|
160
138
|
});
|
|
161
139
|
|
|
162
140
|
describe.assertAtPath('Stacks.0.Outputs.0.OutputKey', integ.ExpectedResult.stringLikeRegexp('customResourceData'));
|
|
163
|
-
describe.assertAtPath('Stacks.0.Outputs.0.OutputValue', integ.ExpectedResult.stringLikeRegexp('Object Keys are ([0-9a-f])
|
|
141
|
+
describe.assertAtPath('Stacks.0.Outputs.0.OutputValue', integ.ExpectedResult.stringLikeRegexp('Object Keys are ([0-9a-f])+\\.zip(,([0-9a-f])+\\.zip)*'));
|
|
164
142
|
|
|
165
143
|
app.synth();
|
|
@@ -1,68 +1,106 @@
|
|
|
1
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
1
2
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
2
|
-
import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
3
3
|
import * as cdk from 'aws-cdk-lib';
|
|
4
|
-
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
5
4
|
import * as s3n from 'aws-cdk-lib/aws-s3-notifications';
|
|
5
|
+
import { STANDARD_NODEJS_RUNTIME } from '../../../config';
|
|
6
|
+
import * as constructs from 'constructs';
|
|
7
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
6
8
|
|
|
7
9
|
const app = new cdk.App({
|
|
8
10
|
postCliContext: {
|
|
11
|
+
'@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
|
|
9
12
|
'@aws-cdk/aws-s3:keepNotificationInImportedBucket': false,
|
|
10
13
|
},
|
|
11
14
|
});
|
|
12
15
|
|
|
13
|
-
const stack = new cdk.Stack(app, '
|
|
16
|
+
const stack = new cdk.Stack(app, 'cdk-integ-lambda-bucket-s3-notifications');
|
|
14
17
|
|
|
15
|
-
const
|
|
18
|
+
const bucketA = new s3.Bucket(stack, 'MyBucket', {
|
|
16
19
|
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
17
20
|
});
|
|
18
|
-
const queue = new sqs.Queue(stack, 'MyQueue');
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
const fn = new lambda.Function(stack, 'MyFunction', {
|
|
23
|
+
runtime: STANDARD_NODEJS_RUNTIME,
|
|
24
|
+
handler: 'index.handler',
|
|
25
|
+
code: lambda.Code.fromInline(`exports.handler = ${handler.toString()}`),
|
|
26
|
+
});
|
|
21
27
|
|
|
22
|
-
const
|
|
28
|
+
const bucketB = new s3.Bucket(stack, 'YourBucket', {
|
|
23
29
|
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
24
|
-
autoDeleteObjects: true,
|
|
25
30
|
});
|
|
26
|
-
bucket2.addObjectCreatedNotification(new s3n.SqsDestination(queue), { suffix: '.png' });
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
bucket1.addObjectRemovedNotification(new s3n.SqsDestination(encryptedQueue));
|
|
32
|
+
bucketB.addEventNotification(s3.EventType.OBJECT_REMOVED, new s3n.LambdaDestination(fn));
|
|
30
33
|
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
34
|
-
});
|
|
35
|
-
const queueWithIncorrectS3Permissions = new sqs.Queue(stack, 'MyQueueWithIncorrectS3Permissions');
|
|
36
|
-
queueWithIncorrectS3Permissions.addToResourcePolicy(
|
|
37
|
-
new cdk.aws_iam.PolicyStatement({
|
|
38
|
-
effect: cdk.aws_iam.Effect.DENY,
|
|
39
|
-
actions: ['sqs:SendMessage'],
|
|
40
|
-
principals: [new cdk.aws_iam.ServicePrincipal('s3.amazonaws.com')],
|
|
41
|
-
resources: [queueWithIncorrectS3Permissions.queueArn],
|
|
42
|
-
}));
|
|
43
|
-
bucket3.addEventNotification(s3.EventType.OBJECT_TAGGING_PUT, new s3n.SqsDestination(queueWithIncorrectS3Permissions));
|
|
34
|
+
const c1 = new constructs.Construct(stack, 'Construct1');
|
|
35
|
+
const unmanagedBucket = s3.Bucket.fromBucketName(c1, 'IntegUnmanagedBucket1', bucketA.bucketName);
|
|
44
36
|
|
|
45
|
-
|
|
37
|
+
unmanagedBucket.addObjectCreatedNotification(new s3n.LambdaDestination(fn), { prefix: 'TEST1/', suffix: '.png' });
|
|
38
|
+
unmanagedBucket.addEventNotification(s3.EventType.OBJECT_CREATED, new s3n.LambdaDestination(fn), { prefix: 'TEST2/' });
|
|
39
|
+
|
|
40
|
+
/* eslint-disable no-console */
|
|
41
|
+
function handler(event: any, _context: any, callback: any) {
|
|
42
|
+
console.log(JSON.stringify(event, undefined, 2));
|
|
43
|
+
return callback(null, event);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const integTest = new integ.IntegTest(app, 'LambdaBucketNotificationsTest', {
|
|
47
|
+
cdkCommandOptions: {
|
|
48
|
+
deploy: {
|
|
49
|
+
args: {
|
|
50
|
+
rollback: false,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
46
54
|
testCases: [stack],
|
|
47
55
|
diffAssets: true,
|
|
48
56
|
});
|
|
49
57
|
|
|
50
|
-
integTest.assertions
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
Body: 'Some content',
|
|
60
|
-
}))
|
|
61
|
-
.next(integTest.assertions
|
|
62
|
-
.awsApiCall('SQS', 'receiveMessage', {
|
|
63
|
-
QueueUrl: queue.queueUrl,
|
|
64
|
-
WaitTimeSeconds: 20,
|
|
65
|
-
})
|
|
66
|
-
.assertAtPath('Messages.0.Body.Records.0.s3.object.key', integ.ExpectedResult.stringLikeRegexp('image\\.png')));
|
|
58
|
+
const getNotifications = integTest.assertions
|
|
59
|
+
.awsApiCall('S3', 'getBucketNotificationConfiguration', {
|
|
60
|
+
Bucket: unmanagedBucket.bucketName,
|
|
61
|
+
});
|
|
62
|
+
getNotifications.provider.addToRolePolicy({
|
|
63
|
+
Effect: 'Allow',
|
|
64
|
+
Action: ['s3:GetBucketNotification'],
|
|
65
|
+
Resource: ['*'],
|
|
66
|
+
});
|
|
67
67
|
|
|
68
|
+
getNotifications.expect(integ.ExpectedResult.objectLike({
|
|
69
|
+
LambdaFunctionConfigurations: [
|
|
70
|
+
{
|
|
71
|
+
Events: [
|
|
72
|
+
's3:ObjectCreated:*',
|
|
73
|
+
],
|
|
74
|
+
Filter: {
|
|
75
|
+
Key: {
|
|
76
|
+
FilterRules: [
|
|
77
|
+
{
|
|
78
|
+
Name: 'Prefix',
|
|
79
|
+
Value: 'TEST1/',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
Name: 'Suffix',
|
|
83
|
+
Value: '.png',
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
Events: [
|
|
91
|
+
's3:ObjectCreated:*',
|
|
92
|
+
],
|
|
93
|
+
Filter: {
|
|
94
|
+
Key: {
|
|
95
|
+
FilterRules: [
|
|
96
|
+
{
|
|
97
|
+
Name: 'Prefix',
|
|
98
|
+
Value: 'TEST2/',
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
}));
|
|
68
106
|
app.synth();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as cdk from 'aws-cdk-lib';
|
|
2
|
+
import { SecretValue } from 'aws-cdk-lib';
|
|
3
|
+
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
|
|
4
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
5
|
+
|
|
6
|
+
class TestStack extends cdk.Stack {
|
|
7
|
+
constructor(scope: cdk.App, id: string) {
|
|
8
|
+
super(scope, id);
|
|
9
|
+
|
|
10
|
+
// Create a default secret
|
|
11
|
+
const secret = new secretsmanager.Secret(this, 'Secret');
|
|
12
|
+
|
|
13
|
+
// Create a JSON secret containing cfnDynamicReferenceKey values extracted from the default secret
|
|
14
|
+
new secretsmanager.Secret(this, 'JSONSecret', {
|
|
15
|
+
secretObjectValue: {
|
|
16
|
+
cfnDynamicReferenceKeyWithDefaults: SecretValue.unsafePlainText(secret.cfnDynamicReferenceKey()),
|
|
17
|
+
cfnDynamicReferenceKeyWithJsonFieldAndVersionStage: SecretValue.unsafePlainText(secret.cfnDynamicReferenceKey({
|
|
18
|
+
jsonField: 'json-key',
|
|
19
|
+
versionStage: 'version-stage',
|
|
20
|
+
})),
|
|
21
|
+
cfnDynamicReferenceKeyWithJsonFieldAndVersionId: SecretValue.unsafePlainText(secret.cfnDynamicReferenceKey({
|
|
22
|
+
jsonField: 'json-key',
|
|
23
|
+
versionId: 'version-id',
|
|
24
|
+
})),
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const app = new cdk.App();
|
|
31
|
+
|
|
32
|
+
const stack = new TestStack(app, 'cdk-integ-secrets-dynamic-reference-key');
|
|
33
|
+
|
|
34
|
+
new integ.IntegTest(app, 'cdk-integ-secrets-dynamic-reference-key-test', {
|
|
35
|
+
testCases: [stack],
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
app.synth();
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-signer/integ.signing-profile.ts
CHANGED
|
@@ -16,6 +16,11 @@ new signer.SigningProfile(stack, 'SigningProfileOCI', {
|
|
|
16
16
|
signatureValidity: cdk.Duration.days(60),
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
+
new signer.SigningProfile(stack, 'SigningProfileWithName', {
|
|
20
|
+
platform: signer.Platform.AWS_LAMBDA_SHA384_ECDSA,
|
|
21
|
+
signingProfileName: 'test-signing-profile-name',
|
|
22
|
+
});
|
|
23
|
+
|
|
19
24
|
new IntegTest(app, 'cdk-integ-signer-signing-profile', {
|
|
20
25
|
testCases: [stack],
|
|
21
26
|
});
|
|
@@ -121,6 +121,7 @@ declare const fn: lambda.Function;
|
|
|
121
121
|
|
|
122
122
|
// Lambda should receive only message matching the following conditions on message body:
|
|
123
123
|
// color: 'red' or 'orange'
|
|
124
|
+
// store: property must not be present
|
|
124
125
|
myTopic.addSubscription(new subscriptions.LambdaSubscription(fn, {
|
|
125
126
|
filterPolicyWithMessageBody: {
|
|
126
127
|
background: sns.FilterOrPolicy.policy({
|
|
@@ -128,6 +129,7 @@ myTopic.addSubscription(new subscriptions.LambdaSubscription(fn, {
|
|
|
128
129
|
allowlist: ['red', 'orange'],
|
|
129
130
|
})),
|
|
130
131
|
}),
|
|
132
|
+
store: sns.FilterOrPolicy.filter(sns.SubscriptionFilter.notExistsFilter()),
|
|
131
133
|
},
|
|
132
134
|
}));
|
|
133
135
|
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as sns from 'aws-cdk-lib/aws-sns';
|
|
2
|
+
import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
3
|
+
import * as cdk from 'aws-cdk-lib';
|
|
4
|
+
import { IntegTest, ExpectedResult } from '@aws-cdk/integ-tests-alpha';
|
|
5
|
+
import * as subs from 'aws-cdk-lib/aws-sns-subscriptions';
|
|
6
|
+
|
|
7
|
+
const app = new cdk.App();
|
|
8
|
+
|
|
9
|
+
const stack = new cdk.Stack(app, 'sns-sqs-subscription-filter');
|
|
10
|
+
|
|
11
|
+
const topic = new sns.Topic(stack, 'MyTopic');
|
|
12
|
+
|
|
13
|
+
const queue1 = new sqs.Queue(stack, 'MyQueue1');
|
|
14
|
+
const queue2 = new sqs.Queue(stack, 'MyQueue2');
|
|
15
|
+
|
|
16
|
+
topic.addSubscription(new subs.SqsSubscription(queue1, {
|
|
17
|
+
filterPolicyWithMessageBody: {
|
|
18
|
+
background: sns.Policy.policy({
|
|
19
|
+
color: sns.Filter.filter(sns.SubscriptionFilter.stringFilter({
|
|
20
|
+
allowlist: ['red', 'green'],
|
|
21
|
+
})),
|
|
22
|
+
}),
|
|
23
|
+
price: sns.Filter.filter(sns.SubscriptionFilter.numericFilter({
|
|
24
|
+
allowlist: [100, 200],
|
|
25
|
+
})),
|
|
26
|
+
store: sns.Filter.filter(sns.SubscriptionFilter.existsFilter()),
|
|
27
|
+
},
|
|
28
|
+
rawMessageDelivery: true,
|
|
29
|
+
}));
|
|
30
|
+
|
|
31
|
+
topic.addSubscription(new subs.SqsSubscription(queue2, {
|
|
32
|
+
filterPolicyWithMessageBody: {
|
|
33
|
+
background: sns.Policy.policy({
|
|
34
|
+
color: sns.Filter.filter(sns.SubscriptionFilter.stringFilter({
|
|
35
|
+
denylist: ['red', 'green'],
|
|
36
|
+
})),
|
|
37
|
+
}),
|
|
38
|
+
price: sns.Filter.filter(sns.SubscriptionFilter.numericFilter({
|
|
39
|
+
betweenStrict: { start: 100, stop: 200 },
|
|
40
|
+
})),
|
|
41
|
+
store: sns.Filter.filter(sns.SubscriptionFilter.notExistsFilter()),
|
|
42
|
+
},
|
|
43
|
+
rawMessageDelivery: true,
|
|
44
|
+
}));
|
|
45
|
+
|
|
46
|
+
const integTest = new IntegTest(app, 'SNS Subscription filters', {
|
|
47
|
+
testCases: [stack],
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const message1 = JSON.stringify({ background: { color: 'green' }, price: 200, store: 'fans' }); // matches queue1 subscription filter
|
|
51
|
+
const message2 = JSON.stringify({ background: { color: 'blue' }, price: 150 }); // matches queue2 subscription filter
|
|
52
|
+
|
|
53
|
+
// publish messages to SNS topic
|
|
54
|
+
integTest.assertions.awsApiCall('SNS', 'publish', {
|
|
55
|
+
Message: message1,
|
|
56
|
+
TopicArn: topic.topicArn,
|
|
57
|
+
});
|
|
58
|
+
integTest.assertions.awsApiCall('SNS', 'publish', {
|
|
59
|
+
Message: message2,
|
|
60
|
+
TopicArn: topic.topicArn,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// check messages arrived at expected destination queue
|
|
64
|
+
integTest.assertions.awsApiCall('SQS', 'receiveMessage', {
|
|
65
|
+
QueueUrl: queue1.queueUrl,
|
|
66
|
+
WaitTimeSeconds: 20,
|
|
67
|
+
}).expect(ExpectedResult.objectLike({
|
|
68
|
+
Messages: [{ Body: message1 }],
|
|
69
|
+
}));
|
|
70
|
+
integTest.assertions.awsApiCall('SQS', 'receiveMessage', {
|
|
71
|
+
QueueUrl: queue2.queueUrl,
|
|
72
|
+
WaitTimeSeconds: 20,
|
|
73
|
+
}).expect(ExpectedResult.objectLike({
|
|
74
|
+
Messages: [{ Body: message2 }],
|
|
75
|
+
}));
|