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.
Files changed (243) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +12 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md +1979 -0
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-alpha/README.md +946 -0
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md +160 -75
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-elasticache-alpha/README.md +421 -0
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md +39 -9
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md +656 -0
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md +1 -1
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-go-alpha/README.md +102 -4
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-python-alpha/README.md +6 -6
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +38 -8
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-s3tables-alpha/README.md +82 -2
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-sagemaker-alpha/README.md +32 -0
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +182 -0
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/README.md/README.md +367 -17
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/README.md +34 -0
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-proxy.ts +1 -1
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.ts +1 -1
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-permission-consolidation.ts +55 -0
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi.ts +1 -0
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md +224 -60
  23. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts +3 -4
  24. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +5 -3
  25. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +10 -7
  26. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.usage-plan.ts +80 -0
  27. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +34 -38
  28. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts +2 -2
  29. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts +1 -1
  30. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md +35 -0
  31. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts +7 -4
  32. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts +1 -1
  33. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-connect-disconnect-trigger.ts +2 -2
  34. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-permission-consolidation.ts +45 -0
  35. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-proxy.ts +1 -1
  36. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda.ts +4 -4
  37. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.sqs.ts +58 -71
  38. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-lambda-permission.ts +1 -1
  39. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.js-resolver.ts +1 -1
  40. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/README.md +1 -1
  41. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-lt.ts +7 -0
  42. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +49 -1
  43. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-exec-batch-job.ts +148 -0
  44. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment-default-instance-class.ts +20 -0
  45. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/README.md +11 -0
  46. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +1 -1
  47. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-service-timeout.ts +1 -1
  48. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/README.md +292 -1
  49. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +83 -0
  50. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-ip-address-type.ts +84 -0
  51. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts +5 -2
  52. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts +50 -0
  53. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-data-events-only.ts +1 -1
  54. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +104 -12
  55. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts +12 -0
  56. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts +44 -2
  57. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-graphwidget-with-labels-visible.ts +92 -0
  58. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-metric-id-and-visible.ts +70 -0
  59. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.search-expression.ts +51 -0
  60. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md +143 -3
  61. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-docker-server.ts +44 -0
  62. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-attribute-based-compute.ts +59 -7
  63. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-custom-instance-type.ts +130 -0
  64. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-overflow-behavior.ts +61 -0
  65. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-s3-cache.ts +71 -0
  66. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-windows-image.ts +1 -2
  67. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +26 -17
  68. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/README.md +13 -2
  69. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-explicit-props.ts +1 -0
  70. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md +24 -0
  71. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts +34 -0
  72. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +225 -15
  73. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md +45 -2
  74. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.cci.ts +49 -0
  75. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts +97 -0
  76. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.cci.ts +27 -0
  77. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.compound.ts +32 -0
  78. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.contirubtor-insights-for-gsi.ts +6 -2
  79. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts +21 -1
  80. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-global.ts +9 -3
  81. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-mrsc.ts +31 -0
  82. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2.compound.ts +43 -0
  83. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +28 -1
  84. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-disconnect-on-session-timeout.ts +65 -0
  85. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-endpoint.lit.ts +6 -0
  86. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts +4 -0
  87. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/README.md +41 -2
  88. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.tag-mutability-exclusion.ts +30 -0
  89. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md +4 -0
  90. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-docker.ts +6 -0
  91. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +189 -1
  92. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.availability-zone-rebalancing.ts +14 -4
  93. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.blue-green-deployment-strategy.ts +147 -0
  94. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-windows-server-ami.ts +5 -6
  95. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.ebs-volume-initialization-rate.ts +80 -0
  96. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.enable-execute-command.ts +35 -29
  97. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.exec-command.ts +16 -22
  98. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-awsvpc-nw.ts +26 -16
  99. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider.ts +114 -0
  100. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-no-default-capacity-provider.ts +107 -0
  101. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-strategies.ts +32 -8
  102. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.pseudo-terminal.ts +18 -8
  103. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/README.md +2 -0
  104. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-public-private-switch.ts +45 -0
  105. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-smart-defaults.ts +143 -0
  106. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +103 -83
  107. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +1 -1
  108. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-removal-policy.ts +31 -0
  109. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +1 -1
  110. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +55 -4
  111. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts +1 -1
  112. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-attributes.ts +45 -0
  113. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.oidc.ts +1 -1
  114. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-attributes.ts +45 -0
  115. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.security-group.ts +70 -0
  116. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/integ.cognito.ts +1 -1
  117. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md +41 -2
  118. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.api-destination.ts +42 -0
  119. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive-customer-managed-key.ts +23 -0
  120. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts +13 -3
  121. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md +93 -4
  122. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.firehose-delivery-stream.ts +51 -0
  123. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.custom-permissions-boundary-aspect.ts +50 -0
  124. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.managed-policy.ts +9 -0
  125. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.policy.ts +9 -0
  126. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md +42 -0
  127. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-shard-level-monitoring.ts +47 -0
  128. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md +159 -3
  129. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.cloudwatch-logs-processors.ts +45 -0
  130. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion-schema.ts +154 -0
  131. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion.ts +178 -0
  132. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.s3-bucket.lit.ts +1 -0
  133. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +41 -2
  134. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts +1 -1
  135. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-policy-with-token-resolution.ts +46 -0
  136. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.logging-config.ts +8 -8
  137. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.multi-tenancy.ts +24 -0
  138. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.params-and-secrets.ts +1 -1
  139. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime-management.ts +1 -1
  140. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.fromasset.ts +19 -4
  141. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts +11 -4
  142. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md +3 -3
  143. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun-lock.ts +50 -0
  144. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts +1 -1
  145. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function-exclude-smithy-models.ts +2 -2
  146. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts +1 -1
  147. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +69 -1
  148. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-transformer.ts +37 -0
  149. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-apply-on-transformed-logs.ts +29 -0
  150. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.save-logs-insights-query-definition.ts +7 -2
  151. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter.ts +1 -1
  152. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.transformer.ts +27 -0
  153. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ebs.ts +1 -1
  154. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
  155. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +72 -2
  156. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-cloudwatch-logs-exports.ts +56 -0
  157. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api-to-imported-cluster.ts +1 -1
  158. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api.ts +1 -1
  159. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-lookup.ts +100 -0
  160. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster.ts +1 -1
  161. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-database-insights.ts +43 -0
  162. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-lookup.ts +77 -0
  163. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-endpoint.ts +36 -0
  164. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +68 -31
  165. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.delete-existing-record-set.ts +0 -1
  166. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.private-hosted-zone-from-attributes.ts +41 -0
  167. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts +51 -1
  168. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.zone-delegation-iam-stack.ts +66 -0
  169. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts +16 -1
  170. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-hostedzoneid.ts +1 -1
  171. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications-scoped-permissions.ts +71 -0
  172. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.bundling.docker-opts.ts +4 -1
  173. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/README.md +83 -4
  174. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-big-response.ts +17 -6
  175. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cloudfront.ts +20 -18
  176. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-nested-stack-source.ts +64 -0
  177. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-source.ts +53 -0
  178. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-ssm-source.ts +97 -0
  179. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-data.ts +99 -59
  180. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-deployed-bucket.ts +10 -4
  181. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-large-file.ts +23 -12
  182. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-loggroup.ts +7 -2
  183. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-efs.ts +77 -0
  184. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-empty.ts +69 -0
  185. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-multiple.ts +89 -0
  186. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-single.ts +77 -0
  187. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.ts +11 -7
  188. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-destination-key.ts +15 -8
  189. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-role.ts +29 -14
  190. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution.ts +16 -8
  191. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-basic.ts +65 -0
  192. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-config.ts +66 -0
  193. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-custom-subnets.ts +66 -0
  194. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-efs.ts +66 -0
  195. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-security-groups.ts +72 -0
  196. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-subnet-selection.ts +70 -0
  197. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment.ts +47 -69
  198. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications.ts +80 -42
  199. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.secret.dynamic-reference-key.ts +38 -0
  200. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-signer/integ.signing-profile.ts +5 -0
  201. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/README.md +2 -0
  202. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs-subscription-filter.ts +75 -0
  203. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs.ts +21 -40
  204. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-parallel.ts +82 -0
  205. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-redrive.ts +130 -0
  206. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts +1 -0
  207. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.sm-jsonpath-with-distributed-map-jsonata.ts +105 -0
  208. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +75 -5
  209. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +1 -1
  210. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-ebs.ts +126 -0
  211. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-arm64.ts +27 -0
  212. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-default.ts +25 -0
  213. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-mixed-arch.ts +35 -0
  214. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-nodejs22.ts +27 -0
  215. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-x86.ts +27 -0
  216. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-json-path.ts +102 -0
  217. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +84 -1
  218. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-browser-type.ts +35 -0
  219. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-resources-to-replicate-tags.ts +36 -0
  220. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-retry.ts +32 -0
  221. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-runtime-validation.ts +43 -0
  222. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts +2 -0
  223. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.novalue-nonstring.ts +25 -0
  224. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/README.md +2 -1870
  225. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/README.md +59 -0
  226. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource.ts +1 -1
  227. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-node-runtime.ts +1 -1
  228. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.external-id.ts +80 -0
  229. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.invoke-function-payload.ts +1 -1
  230. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +152 -10
  231. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +55 -1
  232. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/interfaces/README.md +33 -0
  233. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +4 -0
  234. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts +4 -1
  235. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-customsynthesizer.ts +105 -0
  236. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/METADATA +2 -2
  237. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/RECORD +240 -151
  238. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts +0 -33
  239. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.expose-metric-with-dimensions.ts +0 -47
  240. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.d.ts +0 -1
  241. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/WHEEL +0 -0
  242. {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
  243. {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
@@ -53,6 +53,39 @@ const metric = new cloudwatch.Metric({
53
53
  });
54
54
  ```
55
55
 
56
+ ### Metric ID
57
+
58
+ Metrics can be assigned a unique identifier using the `id` property. This is
59
+ useful when referencing metrics in math expressions:
60
+
61
+ ```ts
62
+ const metric = new cloudwatch.Metric({
63
+ namespace: 'AWS/Lambda',
64
+ metricName: 'Invocations',
65
+ dimensionsMap: {
66
+ FunctionName: 'MyFunction'
67
+ },
68
+ id: 'invocations'
69
+ });
70
+ ```
71
+
72
+ The `id` must start with a lowercase letter and can only contain letters, numbers, and underscores.
73
+
74
+ ### Metric Visible
75
+ Metrics can be hidden from dashboard graphs using the `visible` property:
76
+
77
+ ```ts
78
+ declare const fn: lambda.Function;
79
+
80
+ const metric = fn.metricErrors({
81
+ visible: false
82
+ });
83
+ ```
84
+
85
+ By default, all metrics are visible (`visible: true`). Setting `visible: false`
86
+ hides the metric from dashboard visualizations while still allowing it to be
87
+ used in math expressions given that it has an `id` set to it.
88
+
56
89
  ### Metric Math
57
90
 
58
91
  Math expressions are supported by instantiating the `MathExpression` class.
@@ -86,21 +119,45 @@ const problemPercentage = new cloudwatch.MathExpression({
86
119
  });
87
120
  ```
88
121
 
89
- ### Search Expressions
122
+ ### Metric ID Usage in Math Expressions
90
123
 
91
- Math expressions also support search expressions. For example, the following
92
- search expression returns all CPUUtilization metrics that it finds, with the
93
- graph showing the Average statistic with an aggregation period of 5 minutes:
124
+ When metrics have custom IDs, you can reference them directly in math expressions.
94
125
 
95
126
  ```ts
96
- const cpuUtilization = new cloudwatch.MathExpression({
97
- expression: "SEARCH('{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\"', 'Average', 300)",
127
+ declare const fn: lambda.Function;
98
128
 
99
- // Specifying '' as the label suppresses the default behavior
100
- // of using the expression as metric label. This is especially appropriate
101
- // when using expressions that return multiple time series (like SEARCH()
102
- // or METRICS()), to show the labels of the retrieved metrics only.
103
- label: '',
129
+ const invocations = fn.metricInvocations({
130
+ id: 'lambda_invocations',
131
+ });
132
+
133
+ const errors = fn.metricErrors({
134
+ id: 'lambda_errors',
135
+ });
136
+ ```
137
+
138
+ When metrics have predefined IDs, they can be referenced directly in math expressions by their ID without requiring the `usingMetrics` property.
139
+
140
+ ```ts
141
+ const errorRate = new cloudwatch.MathExpression({
142
+ expression: 'lambda_errors / lambda_invocations * 100',
143
+ label: 'Error Rate (%)',
144
+ });
145
+ ```
146
+
147
+ ### Search Expressions
148
+
149
+ Search expressions allow you to dynamically discover and display metrics that match specific criteria, making them ideal for monitoring dynamic infrastructure where the exact metrics aren't known in advance. A single search expression can return up to 500 time series.
150
+
151
+
152
+ #### Using SearchExpression Class
153
+
154
+ Following is an example of a search expression that returns all CPUUtilization metrics with the graph showing the Average statistic with an aggregation period of 5 minutes:
155
+
156
+ ```ts
157
+ const cpuUtilization = new cloudwatch.SearchExpression({
158
+ expression: "SEARCH('{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\"', 'Average', 900)",
159
+ label: 'EC2 CPU Utilization',
160
+ color: '#ff7f0e',
104
161
  });
105
162
  ```
106
163
 
@@ -108,6 +165,15 @@ Cross-account and cross-region search expressions are also supported. Use
108
165
  the `searchAccount` and `searchRegion` properties to specify the account
109
166
  and/or region to evaluate the search expression against.
110
167
 
168
+ ```ts
169
+ const crossAccountSearch = new cloudwatch.SearchExpression({
170
+ expression: "SEARCH('{AWS/Lambda,FunctionName} MetricName=\"Invocations\"', 'Sum', 300)",
171
+ searchAccount: '123456789012',
172
+ searchRegion: 'us-west-2',
173
+ label: 'Production Lambda Invocations',
174
+ });
175
+ ```
176
+
111
177
  ### Aggregation
112
178
 
113
179
  To graph or alarm on metrics you must aggregate them first, using a function
@@ -413,7 +479,7 @@ const metric = new cloudwatch.Metric({
413
479
  namespace: 'AWS/EC2',
414
480
  metricName: 'CPUUtilization',
415
481
  statistic: 'Average',
416
- period: Duration.minutes(5),
482
+ period: Duration.hours(1), // Alarm will use the metric's period
417
483
  });
418
484
 
419
485
  // Create an anomaly detection alarm
@@ -534,6 +600,19 @@ dashboard.addWidgets(new cloudwatch.GraphWidget({
534
600
  }));
535
601
  ```
536
602
 
603
+ The `displayLabelsOnChart` property can be set to `true` to show labels on the chart. Note that this only has an effect when the `view` property is set to `cloudwatch.GraphWidgetView.PIE`.
604
+
605
+ ```ts
606
+ declare const dashboard: cloudwatch.Dashboard;
607
+
608
+ dashboard.addWidgets(new cloudwatch.GraphWidget({
609
+ // ...
610
+
611
+ view: cloudwatch.GraphWidgetView.PIE,
612
+ displayLabelsOnChart: true,
613
+ }));
614
+ ```
615
+
537
616
  The `start` and `end` properties can be used to specify the time range for each graph widget independently from those of the dashboard.
538
617
  The parameters can be specified at `GraphWidget`, `GaugeWidget`, and `SingleValueWidget`.
539
618
 
@@ -790,6 +869,19 @@ dashboard.addWidgets(new cloudwatch.LogQueryWidget({
790
869
  }));
791
870
  ```
792
871
 
872
+ Log Insights QL is the default query language. You may specify an [alternate query language: OpenSearch PPL or SQL](https://aws.amazon.com/blogs/aws/new-amazon-cloudwatch-and-amazon-opensearch-service-launch-an-integrated-analytics-experience/), if desired:
873
+
874
+ ```ts
875
+ declare const dashboard: cloudwatch.Dashboard;
876
+
877
+ dashboard.addWidgets(new cloudwatch.LogQueryWidget({
878
+ logGroupNames: ['my-log-group'],
879
+ view: cloudwatch.LogQueryVisualizationType.TABLE,
880
+ queryString: "SELECT count(*) as count FROM 'my-log-group'",
881
+ queryLanguage: cloudwatch.LogQueryLanguage.SQL,
882
+ }));
883
+ ```
884
+
793
885
  ### Custom widget
794
886
 
795
887
  A `CustomWidget` shows the result of an AWS Lambda function:
@@ -94,6 +94,18 @@ dashboard.addWidgets(new cloudwatch.LogQueryWidget({
94
94
  | filter @message like /Error/`,
95
95
  accountId: '123456789012',
96
96
  }));
97
+ dashboard.addWidgets(new cloudwatch.LogQueryWidget({
98
+ title: 'Errors in my log group - SQL',
99
+ logGroupNames: ['my-log-group'],
100
+ queryString: "SELECT count(*) as count FROM 'my-log-group'",
101
+ queryLanguage: cloudwatch.LogQueryLanguage.SQL,
102
+ }));
103
+ dashboard.addWidgets(new cloudwatch.LogQueryWidget({
104
+ title: 'Errors in my log group - PPL',
105
+ logGroupNames: ['my-log-group'],
106
+ queryString: 'fields `@message`\ | sort - `@timestamp`',
107
+ queryLanguage: cloudwatch.LogQueryLanguage.PPL,
108
+ }));
97
109
  dashboard.addWidgets(new cloudwatch.SingleValueWidget({
98
110
  title: 'Sent message size',
99
111
  metrics: [sentMessageSizeMetric],
@@ -5,12 +5,19 @@ import { Metric, ComparisonOperator, AnomalyDetectionAlarm, Alarm } from 'aws-cd
5
5
  const app = new App();
6
6
  const stack = new Stack(app, 'AnomalyDetectionAlarmTestStack');
7
7
 
8
- // Create the test metric
8
+ // Create the test metric. Period will default to 300 seconds.
9
9
  const metric = new Metric({
10
10
  namespace: 'AWS/EC2',
11
11
  metricName: 'CPUUtilization',
12
12
  statistic: 'Average',
13
- period: Duration.minutes(5),
13
+ });
14
+
15
+ // Create test metric with custom period
16
+ const customPeriodMetric = new Metric({
17
+ namespace: 'AWS/EC2',
18
+ metricName: 'CPUUtilization',
19
+ statistic: 'Average',
20
+ period: Duration.days(1),
14
21
  });
15
22
 
16
23
  // Create an anomaly detection alarm with default operator
@@ -40,6 +47,14 @@ const descriptiveAlarm = Metric.anomalyDetectionFor({
40
47
  comparisonOperator: ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD,
41
48
  });
42
49
 
50
+ // Create an anomaly detection alarm with custom period
51
+ const customPeriodAlarm = new AnomalyDetectionAlarm(stack, 'CustomPeriodAnomalyAlarm', {
52
+ metric: customPeriodMetric,
53
+ stdDevs: 2,
54
+ evaluationPeriods: 1,
55
+ comparisonOperator: ComparisonOperator.LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD,
56
+ });
57
+
43
58
  // Create the integration test
44
59
  const integ = new IntegTest(app, 'AnomalyDetectionAlarmIntegTest', {
45
60
  testCases: [stack],
@@ -122,3 +137,30 @@ integ.assertions
122
137
  }),
123
138
  ]),
124
139
  }));
140
+
141
+ integ.assertions
142
+ .awsApiCall('CloudWatch', 'describeAlarms', {
143
+ AlarmNames: [customPeriodAlarm.alarmName],
144
+ })
145
+ .expect(ExpectedResult.objectLike({
146
+ MetricAlarms: Match.arrayWith([
147
+ Match.objectLike({
148
+ ComparisonOperator: 'LessThanLowerOrGreaterThanUpperThreshold',
149
+ EvaluationPeriods: 1,
150
+ ThresholdMetricId: 'expr_1',
151
+ Metrics: Match.arrayWith([
152
+ Match.objectLike({
153
+ Expression: 'ANOMALY_DETECTION_BAND(m0, 2)',
154
+ Id: 'expr_1',
155
+ ReturnData: true,
156
+ }),
157
+ Match.objectLike({
158
+ Id: 'm0',
159
+ MetricStat: Match.objectLike({
160
+ Period: 86400, // 1 day in seconds, orignal metric period got overriden
161
+ }),
162
+ }),
163
+ ]),
164
+ }),
165
+ ]),
166
+ }));
@@ -0,0 +1,92 @@
1
+ import { App, Stack, StackProps } from 'aws-cdk-lib';
2
+ import {
3
+ Dashboard,
4
+ GraphWidget,
5
+ GraphWidgetProps,
6
+ GraphWidgetView,
7
+ Metric,
8
+ Shading,
9
+ Stats,
10
+ VerticalShading,
11
+ } from 'aws-cdk-lib/aws-cloudwatch';
12
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
13
+
14
+ class DashboardWithGraphWidgetWithLabelsVisibleIntegrationTest extends Stack {
15
+ constructor(scope: App, id: string, props?: StackProps) {
16
+ super(scope, id, props);
17
+ const dashboard = new Dashboard(this, 'Dash');
18
+ const metrics = [
19
+ new Metric({
20
+ namespace: 'CDK/Test',
21
+ metricName: 'Metric',
22
+ label: 'Metric left 1 - p99',
23
+ statistic: Stats.p(99),
24
+ }),
25
+
26
+ new Metric({
27
+ namespace: 'CDK/Test',
28
+ metricName: 'Metric',
29
+ label: 'Metric left 2 - TC_10P_90P',
30
+ statistic: Stats.tc(10, 90),
31
+ }),
32
+
33
+ new Metric({
34
+ namespace: 'CDK/Test',
35
+ metricName: 'Metric',
36
+ label: 'Metric left 3 - TS(5%:95%)',
37
+ statistic: 'TS(5%:95%)',
38
+ }),
39
+ ];
40
+
41
+ const widgetProps: GraphWidgetProps = {
42
+ title: 'My fancy graph',
43
+ left: metrics,
44
+ right: [],
45
+ view: GraphWidgetView.PIE,
46
+ leftAnnotations: [
47
+ {
48
+ value: 10,
49
+ label: 'Left annotation',
50
+ color: '#00ff00',
51
+ fill: Shading.ABOVE,
52
+ visible: true,
53
+ },
54
+ ],
55
+ rightAnnotations: [
56
+ {
57
+ value: 20,
58
+ label: 'Right annotation',
59
+ color: '#e30d0d',
60
+ fill: Shading.BELOW,
61
+ visible: false,
62
+ },
63
+ ],
64
+ verticalAnnotations: [
65
+ {
66
+ date: '2023-08-20T00:00:00.000Z',
67
+ label: 'Vertical annotation',
68
+ color: '#2556f6',
69
+ fill: VerticalShading.AFTER,
70
+ visible: true,
71
+ },
72
+ ],
73
+ };
74
+
75
+ dashboard.addWidgets(
76
+ new GraphWidget({
77
+ ...widgetProps,
78
+ displayLabelsOnChart: true,
79
+ }),
80
+ new GraphWidget({
81
+ ...widgetProps,
82
+ displayLabelsOnChart: false,
83
+ }),
84
+ new GraphWidget(widgetProps),
85
+ );
86
+ }
87
+ }
88
+
89
+ const app = new App();
90
+ new IntegTest(app, 'cdk-integ-dashboard-with-graph-widget-with-annotations', {
91
+ testCases: [new DashboardWithGraphWidgetWithLabelsVisibleIntegrationTest(app, 'DashboardWithGraphWidgetWithLabelsVisibleIntegrationTest')],
92
+ });
@@ -0,0 +1,70 @@
1
+ import { App, Stack, StackProps } from 'aws-cdk-lib';
2
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
3
+ import { Dashboard, Metric, GraphWidget, MathExpression } from 'aws-cdk-lib/aws-cloudwatch';
4
+
5
+ class DashboardWithMetricIdAndVisibleIntegrationTest extends Stack {
6
+ constructor(scope: App, id: string, props?: StackProps) {
7
+ super(scope, id, props);
8
+
9
+ const dashboard = new Dashboard(this, 'Dash');
10
+
11
+ const lambdaInvocations = new Metric({
12
+ namespace: 'AWS/Lambda',
13
+ metricName: 'Invocations',
14
+ dimensionsMap: { FunctionName: 'test-function' },
15
+ label: 'Lambda Invocations',
16
+ id: 'lambda_invocations',
17
+ visible: true,
18
+ });
19
+
20
+ const lambdaErrors = new Metric({
21
+ namespace: 'AWS/Lambda',
22
+ metricName: 'Errors',
23
+ dimensionsMap: { FunctionName: 'test-function' },
24
+ label: 'Lambda Errors (Hidden for calculation)',
25
+ id: 'lambda_errors',
26
+ visible: false,
27
+ });
28
+
29
+ const lambdaDuration = new Metric({
30
+ namespace: 'AWS/Lambda',
31
+ metricName: 'Duration',
32
+ dimensionsMap: { FunctionName: 'test-function' },
33
+ label: 'Lambda Duration',
34
+ id: 'lambda_duration',
35
+ visible: true,
36
+ });
37
+
38
+ const lambdaThrottles = new Metric({
39
+ namespace: 'AWS/Lambda',
40
+ metricName: 'Throttles',
41
+ dimensionsMap: { FunctionName: 'test-function' },
42
+ label: 'Lambda Throttles (Hidden)',
43
+ id: 'lambda_throttles',
44
+ visible: false,
45
+ });
46
+
47
+ const errorRate = new MathExpression({
48
+ expression: 'lambda_errors / lambda_invocations * 100',
49
+ label: 'Error Rate (%)',
50
+ });
51
+
52
+ const widget = new GraphWidget({
53
+ title: 'Lambda Metrics with ID and Visible Properties',
54
+ left: [
55
+ lambdaInvocations,
56
+ lambdaErrors,
57
+ lambdaDuration,
58
+ lambdaThrottles,
59
+ errorRate,
60
+ ],
61
+ });
62
+
63
+ dashboard.addWidgets(widget);
64
+ }
65
+ }
66
+
67
+ const app = new App();
68
+ new IntegTest(app, 'cdk-integ-dashboard-with-metric-id-and-visible', {
69
+ testCases: [new DashboardWithMetricIdAndVisibleIntegrationTest(app, 'DashboardWithMetricIdAndVisibleIntegrationTest')],
70
+ });
@@ -0,0 +1,51 @@
1
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
4
+
5
+ class SearchExpressionStack extends cdk.Stack {
6
+ constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
7
+ super(scope, id, props);
8
+
9
+ const minimalSearchExpression = new cloudwatch.SearchExpression({
10
+ expression: "SEARCH('{AWS/EC2,InstanceId} CPUUtilization', 'Average', 300)",
11
+ });
12
+
13
+ const customSearchExpression = new cloudwatch.SearchExpression({
14
+ expression: "SEARCH('{AWS/Lambda,FunctionName} Duration', 'Average', 300)",
15
+ label: 'Custom Lambda Duration',
16
+ color: '#e377c2',
17
+ period: cdk.Duration.minutes(10),
18
+ searchAccount: '123456789012',
19
+ searchRegion: 'us-west-2',
20
+ });
21
+
22
+ const crossAccountRegionSearchExpression = new cloudwatch.SearchExpression({
23
+ expression: "SEARCH('{AWS/S3,BucketName} BucketSizeBytes', 'Average', 86400)",
24
+ label: 'Cross-Account Cross-Region S3',
25
+ color: '#9467bd',
26
+ period: cdk.Duration.hours(1),
27
+ searchAccount: '123456789012',
28
+ searchRegion: 'ap-southeast-1',
29
+ });
30
+
31
+ const dashboard = new cloudwatch.Dashboard(this, 'SearchExpressionDashboard', {
32
+ dashboardName: 'SearchExpressionTestDashboard',
33
+ });
34
+
35
+ const searchExpressionWidget = new cloudwatch.GraphWidget({
36
+ title: 'Minimal vs Custom Properties',
37
+ width: 24,
38
+ height: 6,
39
+ left: [minimalSearchExpression],
40
+ right: [customSearchExpression, crossAccountRegionSearchExpression],
41
+ });
42
+
43
+ dashboard.addWidgets(searchExpressionWidget);
44
+ }
45
+ }
46
+
47
+ const app = new cdk.App();
48
+
49
+ new IntegTest(app, 'SearchExpressionIntegTest', {
50
+ testCases: [new SearchExpressionStack(app, 'SearchExpressionStack')],
51
+ });
@@ -258,9 +258,73 @@ new codebuild.Project(this, 'Project', {
258
258
  });
259
259
  ```
260
260
 
261
- Note that two different CodeBuild Projects using the same S3 bucket will *not*
262
- share their cache: each Project will get a unique file in the S3 bucket to store
263
- the cache in.
261
+ If you want to [share the same cache between multiple projects](https://docs.aws.amazon.com/codebuild/latest/userguide/caching-s3.html#caching-s3-sharing), you must must do the following:
262
+
263
+ - Use the same `cacheNamespace`.
264
+ - Specify the same cache key.
265
+ - Define identical cache paths.
266
+ - Use the same Amazon S3 buckets and `pathPrefix` if set.
267
+
268
+ ```ts
269
+ declare const sourceBucket: s3.Bucket;
270
+ declare const myCachingBucket: s3.Bucket;
271
+
272
+ new codebuild.Project(this, 'ProjectA', {
273
+ source: codebuild.Source.s3({
274
+ bucket: sourceBucket,
275
+ path: 'path/to/source-a.zip',
276
+ }),
277
+ // configure the same bucket and path prefix
278
+ cache: codebuild.Cache.bucket(myCachingBucket, {
279
+ prefix: 'cache',
280
+ // use the same cache namespace
281
+ cacheNamespace: 'cache-namespace',
282
+ }),
283
+ buildSpec: codebuild.BuildSpec.fromObject({
284
+ version: '0.2',
285
+ phases: {
286
+ build: {
287
+ commands: ['...'],
288
+ },
289
+ },
290
+ // specify the same cache key and paths
291
+ cache: {
292
+ key: 'unique-key',
293
+ paths: [
294
+ '/root/cachedir/**/*',
295
+ ],
296
+ },
297
+ }),
298
+ });
299
+
300
+ new codebuild.Project(this, 'ProjectB', {
301
+ source: codebuild.Source.s3({
302
+ bucket: sourceBucket,
303
+ path: 'path/to/source-b.zip',
304
+ }),
305
+ // configure the same bucket and path prefix
306
+ cache: codebuild.Cache.bucket(myCachingBucket, {
307
+ prefix: 'cache',
308
+ // use the same cache namespace
309
+ cacheNamespace: 'cache-namespace',
310
+ }),
311
+ buildSpec: codebuild.BuildSpec.fromObject({
312
+ version: '0.2',
313
+ phases: {
314
+ build: {
315
+ commands: ['...'],
316
+ },
317
+ },
318
+ // specify the same cache key and paths
319
+ cache: {
320
+ key: 'unique-key',
321
+ paths: [
322
+ '/root/cachedir/**/*',
323
+ ],
324
+ },
325
+ }),
326
+ });
327
+ ```
264
328
 
265
329
  ### Local Caching
266
330
 
@@ -312,6 +376,7 @@ can use the `environment` property to customize the build environment:
312
376
  details on how to define build images.
313
377
  * `certificate` defines the location of a PEM encoded certificate to import.
314
378
  * `computeType` defines the instance type used for the build.
379
+ * `dockerServer` defines the docker server used for the build.
315
380
  * `privileged` can be set to `true` to allow privileged access.
316
381
  * `environmentVariables` can be set at this level (and also at the project
317
382
  level).
@@ -512,6 +577,81 @@ const fleet = new codebuild.Fleet(this, 'MyFleet', {
512
577
  });
513
578
  ```
514
579
 
580
+ ### Custom instance types
581
+ You can use [specific EC2 instance
582
+ types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types)
583
+ for your fleet by setting the `computeType` to `CUSTOM_INSTANCE_TYPE`. This
584
+ allows you to specify the `instanceType` in `computeConfiguration`. Only certain
585
+ EC2 instance types are supported; see the linked documentation for details.
586
+
587
+ ```ts
588
+ import { Size } from 'aws-cdk-lib';
589
+
590
+ const fleet = new codebuild.Fleet(this, 'MyFleet', {
591
+ baseCapacity: 1,
592
+ computeType: codebuild.FleetComputeType.CUSTOM_INSTANCE_TYPE,
593
+ environmentType: codebuild.EnvironmentType.LINUX_CONTAINER,
594
+ computeConfiguration: {
595
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
596
+ // By default, 64 GiB of disk space is included. Any value optionally
597
+ // specified here is _incremental_ on top of the included disk space.
598
+ disk: Size.gibibytes(10),
599
+ },
600
+ });
601
+ ```
602
+
603
+ ### Fleet overflow behavior
604
+
605
+ When your builds exceed the capacity of your fleet, you can specify how CodeBuild should handle the overflow builds by setting the `overflowBehavior` property:
606
+
607
+ ```ts
608
+ const fleet = new codebuild.Fleet(this, 'Fleet', {
609
+ computeType: codebuild.FleetComputeType.MEDIUM,
610
+ environmentType: codebuild.EnvironmentType.LINUX_CONTAINER,
611
+ baseCapacity: 1,
612
+ overflowBehavior: codebuild.FleetOverflowBehavior.ON_DEMAND,
613
+ });
614
+ ```
615
+
616
+ The available overflow behaviors are:
617
+
618
+ - `QUEUE` (default): Overflow builds wait for existing fleet instances to become available
619
+ - `ON_DEMAND`: Overflow builds run on CodeBuild on-demand instances
620
+
621
+ Note: If you set overflow behavior to `ON_DEMAND` for a VPC-connected fleet, ensure your VPC settings allow access to public AWS services.
622
+
623
+ ### VPCs
624
+ The same considerations that apply to [Project
625
+ VPCs](#definition-of-vpc-configuration-in-codebuild-project) also apply to Fleet
626
+ VPCs. When using a Fleet in a CodeBuild Project, it is an error to configure a
627
+ VPC on the Project. Configure a VPC on the fleet instead.
628
+
629
+ ```ts
630
+ declare const loadBalancer: elbv2.ApplicationLoadBalancer;
631
+
632
+ const vpc = new ec2.Vpc(this, 'MyVPC');
633
+ const fleet = new codebuild.Fleet(this, 'MyProject', {
634
+ computeType: codebuild.FleetComputeType.MEDIUM,
635
+ environmentType: codebuild.EnvironmentType.LINUX_CONTAINER,
636
+ baseCapacity: 1,
637
+ vpc,
638
+ });
639
+
640
+ fleet.connections.allowTo(loadBalancer, ec2.Port.tcp(443));
641
+
642
+ const project = new codebuild.Project(this, 'MyProject', {
643
+ environment: {
644
+ fleet,
645
+ },
646
+ buildSpec: codebuild.BuildSpec.fromObject({
647
+ // ...
648
+ }),
649
+ // Trying to configure a project-level VPC is an error, because this project
650
+ // runs on the Fleet created above.
651
+ // vpc,
652
+ });
653
+ ```
654
+
515
655
  ## Logs
516
656
 
517
657
  CodeBuild lets you specify an S3 Bucket, CloudWatch Log Group or both to receive logs from your projects.
@@ -0,0 +1,44 @@
1
+ import { App, Stack } from 'aws-cdk-lib';
2
+ import { Project, BuildSpec, DockerServerComputeType, Source, ComputeType } from 'aws-cdk-lib/aws-codebuild';
3
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
4
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
5
+
6
+ const app = new App();
7
+ const stack = new Stack(app, 'codebuild-project-docker-server');
8
+
9
+ const vpc = new ec2.Vpc(stack, 'Vpc', { restrictDefaultSecurityGroup: false });
10
+ const sg = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
11
+
12
+ const project = new Project(stack, 'MyProject', {
13
+ source: Source.gitHub({
14
+ owner: 'dockersamples',
15
+ repo: 'helloworld-demo-python',
16
+ }),
17
+ buildSpec: BuildSpec.fromObject({
18
+ version: '0.2',
19
+ phases: {
20
+ build: {
21
+ commands: [
22
+ 'cd sample',
23
+ 'docker buildx build .',
24
+ ],
25
+ },
26
+ },
27
+ }),
28
+ environment: {
29
+ computeType: ComputeType.SMALL,
30
+ dockerServer: {
31
+ computeType: DockerServerComputeType.SMALL,
32
+ securityGroups: [sg],
33
+ },
34
+ },
35
+ });
36
+
37
+ const integ = new IntegTest(app, 'codebuild-project-docker-server-integ', {
38
+ testCases: [stack],
39
+ });
40
+
41
+ // Execute the `startBuild` API to confirm that the build can be done correctly.
42
+ integ.assertions.awsApiCall('CodeBuild', 'startBuild', {
43
+ projectName: project.projectName,
44
+ }).waitForAssertions();