From 06a17ee3cf48167e5dec19d73038956ca103b269 Mon Sep 17 00:00:00 2001 From: AWS CDK Team Date: Mon, 25 Nov 2024 12:49:29 +0000 Subject: [PATCH 1/6] chore(release): 2.171.0 --- CHANGELOG.v2.alpha.md | 2 ++ CHANGELOG.v2.md | 13 +++++++++++++ version.v2.json | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.v2.alpha.md b/CHANGELOG.v2.alpha.md index 3f2bd2190bd3f..71e33d6d89bd4 100644 --- a/CHANGELOG.v2.alpha.md +++ b/CHANGELOG.v2.alpha.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.171.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.170.0-alpha.0...v2.171.0-alpha.0) (2024-11-25) + ## [2.170.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.169.0-alpha.0...v2.170.0-alpha.0) (2024-11-22) ## [2.169.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.168.0-alpha.0...v2.169.0-alpha.0) (2024-11-21) diff --git a/CHANGELOG.v2.md b/CHANGELOG.v2.md index 2dece5608e88e..322437a6e0eb4 100644 --- a/CHANGELOG.v2.md +++ b/CHANGELOG.v2.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.171.0](https://github.com/aws/aws-cdk/compare/v2.170.0...v2.171.0) (2024-11-25) + + +### Features + +* **rds:** enhanced monitoring configuration at the cluster level ([#32157](https://github.com/aws/aws-cdk/issues/32157)) ([01f2dcd](https://github.com/aws/aws-cdk/commit/01f2dcd6fb892905afae735c791ddbb3e6adbcb1)), closes [#32151](https://github.com/aws/aws-cdk/issues/32151) +* **rds:** support zero ACU for Aurora Serverless V2 ([#32231](https://github.com/aws/aws-cdk/issues/32231)) ([d1b07d9](https://github.com/aws/aws-cdk/commit/d1b07d9aeadab65db5672272050e64672e7d6beb)) + + +### Bug Fixes + +* **cli:** sso with proxy fails ([#32261](https://github.com/aws/aws-cdk/issues/32261)) ([bedcf16](https://github.com/aws/aws-cdk/commit/bedcf164a2b7cbd613ac645d477302c93ddfa4b6)) + ## [2.170.0](https://github.com/aws/aws-cdk/compare/v2.169.0...v2.170.0) (2024-11-22) diff --git a/version.v2.json b/version.v2.json index 05c6e8782420b..e910410b729ed 100644 --- a/version.v2.json +++ b/version.v2.json @@ -1,4 +1,4 @@ { - "version": "2.170.0", - "alphaVersion": "2.170.0-alpha.0" + "version": "2.171.0", + "alphaVersion": "2.171.0-alpha.0" } \ No newline at end of file From 421d32708f5018353b2c5db1751cb3415412b985 Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:18:19 +0000 Subject: [PATCH 2/6] feat: update L1 CloudFormation resource definitions (#32272) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updates the L1 CloudFormation resource definitions with the latest changes from `@aws-cdk/aws-service-spec` **L1 CloudFormation resource definition changes:** ``` ├[~] service aws-autoscaling │ └ resources │ └[~] resource AWS::AutoScaling::AutoScalingGroup │ ├ properties │ │ └ CapacityReservationSpecification: (documentation changed) │ └ types │ ├[~] type BaselinePerformanceFactorsRequest │ │ ├ - documentation: undefined │ │ │ + documentation: The baseline performance to consider, using an instance family as a baseline reference. The instance family establishes the lowest acceptable level of performance. Auto Scaling uses this baseline to guide instance type selection, but there is no guarantee that the selected instance types will always exceed the baseline for every application. │ │ │ Currently, this parameter only supports CPU performance as a baseline performance factor. For example, specifying `c6i` uses the CPU performance of the `c6i` family as the baseline reference. │ │ └ properties │ │ └ Cpu: (documentation changed) │ ├[~] type CapacityReservationSpecification │ │ ├ - documentation: undefined │ │ │ + documentation: Describes the Capacity Reservation preference and targeting options. If you specify `open` or `none` for `CapacityReservationPreference` , do not specify a `CapacityReservationTarget` . │ │ └ properties │ │ ├ CapacityReservationPreference: (documentation changed) │ │ └ CapacityReservationTarget: (documentation changed) │ ├[~] type CapacityReservationTarget │ │ ├ - documentation: undefined │ │ │ + documentation: The target for the Capacity Reservation. Specify Capacity Reservations IDs or Capacity Reservation resource group ARNs. │ │ └ properties │ │ ├ CapacityReservationIds: (documentation changed) │ │ └ CapacityReservationResourceGroupArns: (documentation changed) │ ├[~] type CpuPerformanceFactorRequest │ │ ├ - documentation: undefined │ │ │ + documentation: The CPU performance to consider, using an instance family as the baseline reference. │ │ └ properties │ │ └ References: (documentation changed) │ ├[~] type InstanceRequirements │ │ └ properties │ │ └ BaselinePerformanceFactors: (documentation changed) │ └[~] type PerformanceFactorReferenceRequest │ ├ - documentation: undefined │ │ + documentation: Specify an instance family to use as the baseline reference for CPU performance. All instance types that All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. │ │ > Currently only one instance family can be specified in the list. │ └ properties │ └ InstanceFamily: (documentation changed) ├[~] service aws-cloudformation │ └ resources │ ├[~] resource AWS::CloudFormation::GuardHook │ │ ├ - documentation: This is a CloudFormation resource for activating the first-party AWS::Hooks::GuardHook. │ │ │ + documentation: The `AWS::CloudFormation::GuardHook` resource creates a Guard Hook with the specified attributes within your CloudFormation template. Using the Guard domain specific language (DSL), you can author Hooks to evaluate your resources before allowing stack creation, modification, or deletion. For more information, see [Guard Hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/guard-hooks.html) in the *AWS CloudFormation Hooks User Guide* . │ │ ├ properties │ │ │ ├ Alias: (documentation changed) │ │ │ ├ ExecutionRole: (documentation changed) │ │ │ ├ FailureMode: (documentation changed) │ │ │ ├ HookStatus: (documentation changed) │ │ │ ├ LogBucket: (documentation changed) │ │ │ ├ Options: (documentation changed) │ │ │ ├ RuleLocation: (documentation changed) │ │ │ ├ StackFilters: (documentation changed) │ │ │ ├ TargetFilters: (documentation changed) │ │ │ └ TargetOperations: (documentation changed) │ │ ├ attributes │ │ │ └ HookArn: (documentation changed) │ │ └ types │ │ ├[~] type Options │ │ │ ├ - documentation: undefined │ │ │ │ + documentation: Specifies the input parameters for a Guard Hook. │ │ │ └ properties │ │ │ └ InputParams: (documentation changed) │ │ ├[~] type S3Location │ │ │ ├ - documentation: S3 Source Location for the Guard files. │ │ │ │ + documentation: Specifies the S3 location where your Guard rules or input parameters are located. │ │ │ └ properties │ │ │ ├ Uri: (documentation changed) │ │ │ └ VersionId: (documentation changed) │ │ ├[~] type StackFilters │ │ │ ├ - documentation: Filters to allow hooks to target specific stack attributes │ │ │ │ + documentation: The `StackFilters` property type specifies stack level filters for a Hook. │ │ │ │ The `StackNames` or `StackRoles` properties are optional. However, you must specify at least one of these properties. │ │ │ │ For more information, see [AWS CloudFormation Hooks stack level filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-stack-level-filtering.html) . │ │ │ └ properties │ │ │ ├ FilteringCriteria: (documentation changed) │ │ │ ├ StackNames: (documentation changed) │ │ │ └ StackRoles: (documentation changed) │ │ ├[~] type StackNames │ │ │ ├ - documentation: List of stack names as filters │ │ │ │ + documentation: Specifies the stack names for the `StackFilters` property type to include or exclude specific stacks from Hook invocations. │ │ │ │ For more information, see [AWS CloudFormation Hooks stack level filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-stack-level-filtering.html) . │ │ │ └ properties │ │ │ ├ Exclude: (documentation changed) │ │ │ └ Include: (documentation changed) │ │ ├[~] type StackRoles │ │ │ ├ - documentation: List of stack roles that are performing the stack operations. │ │ │ │ + documentation: Specifies the stack roles for the `StackFilters` property type to include or exclude specific stacks from Hook invocations based on their associated IAM roles. │ │ │ │ For more information, see [AWS CloudFormation Hooks stack level filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-stack-level-filtering.html) . │ │ │ └ properties │ │ │ ├ Exclude: (documentation changed) │ │ │ └ Include: (documentation changed) │ │ └[~] type TargetFilters │ │ └ - documentation: undefined │ │ + documentation: The `TargetFilters` property type specifies the target filters for the Hook. │ │ For more information, see [AWS CloudFormation Hook target filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/specify-hook-configuration-targetfilters.html) . │ ├[~] resource AWS::CloudFormation::HookDefaultVersion │ │ ├ - documentation: The `HookDefaultVersion` resource specifies the default version of the hook. The default version of the hook is used in CloudFormation operations for this AWS account and AWS Region . │ │ │ + documentation: The `HookDefaultVersion` resource specifies the default version of the Hook. The default version of the Hook is used in CloudFormation operations for this AWS account and AWS Region . │ │ └ properties │ │ └ TypeName: (documentation changed) │ ├[~] resource AWS::CloudFormation::HookTypeConfig │ │ ├ - documentation: The `HookTypeConfig` resource specifies the configuration of a hook. │ │ │ + documentation: The `HookTypeConfig` resource specifies the configuration of a Hook. │ │ ├ properties │ │ │ ├ Configuration: (documentation changed) │ │ │ ├ ConfigurationAlias: (documentation changed) │ │ │ ├ TypeArn: (documentation changed) │ │ │ └ TypeName: (documentation changed) │ │ └ attributes │ │ └ ConfigurationArn: (documentation changed) │ ├[~] resource AWS::CloudFormation::HookVersion │ │ ├ - documentation: The `HookVersion` resource publishes new or first hook version to the AWS CloudFormation registry. │ │ │ + documentation: The `HookVersion` resource publishes new or first Hook version to the AWS CloudFormation registry. │ │ ├ properties │ │ │ ├ ExecutionRoleArn: (documentation changed) │ │ │ └ SchemaHandlerPackage: (documentation changed) │ │ └ attributes │ │ ├ Arn: (documentation changed) │ │ ├ IsDefaultVersion: (documentation changed) │ │ ├ TypeArn: (documentation changed) │ │ └ VersionId: (documentation changed) │ └[~] resource AWS::CloudFormation::LambdaHook │ ├ - documentation: This is a CloudFormation resource for the first-party AWS::Hooks::LambdaHook. │ │ + documentation: The `AWS::CloudFormation::LambdaHook` resource creates a Lambda Hook with the specified attributes within your CloudFormation template. You can use a Lambda Hook to evaluate your resources before allowing stack creation, modification, or deletion. This resource forwards requests for resource evaluation to a Lambda function. For more information, see [Lambda Hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/lambda-hooks.html) in the *AWS CloudFormation Hooks User Guide* . │ ├ properties │ │ ├ Alias: (documentation changed) │ │ ├ ExecutionRole: (documentation changed) │ │ ├ FailureMode: (documentation changed) │ │ ├ HookStatus: (documentation changed) │ │ ├ LambdaFunction: (documentation changed) │ │ ├ StackFilters: (documentation changed) │ │ ├ TargetFilters: (documentation changed) │ │ └ TargetOperations: (documentation changed) │ ├ attributes │ │ └ HookArn: (documentation changed) │ └ types │ ├[~] type StackFilters │ │ ├ - documentation: Filters to allow hooks to target specific stack attributes │ │ │ + documentation: The `StackFilters` property type specifies stack level filters for a Hook. │ │ │ The `StackNames` or `StackRoles` properties are optional. However, you must specify at least one of these properties. │ │ │ For more information, see [AWS CloudFormation Hooks stack level filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-stack-level-filtering.html) . │ │ └ properties │ │ ├ FilteringCriteria: (documentation changed) │ │ ├ StackNames: (documentation changed) │ │ └ StackRoles: (documentation changed) │ ├[~] type StackNames │ │ ├ - documentation: List of stack names as filters │ │ │ + documentation: Specifies the stack names for the `StackFilters` property type to include or exclude specific stacks from Hook invocations. │ │ │ For more information, see [AWS CloudFormation Hooks stack level filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-stack-level-filtering.html) . │ │ └ properties │ │ ├ Exclude: (documentation changed) │ │ └ Include: (documentation changed) │ ├[~] type StackRoles │ │ ├ - documentation: List of stack roles that are performing the stack operations. │ │ │ + documentation: Specifies the stack roles for the `StackFilters` property type to include or exclude specific stacks from Hook invocations based on their associated IAM roles. │ │ │ For more information, see [AWS CloudFormation Hooks stack level filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-stack-level-filtering.html) . │ │ └ properties │ │ ├ Exclude: (documentation changed) │ │ └ Include: (documentation changed) │ └[~] type TargetFilters │ └ - documentation: undefined │ + documentation: The `TargetFilters` property type specifies the target filters for the Hook. │ For more information, see [AWS CloudFormation Hook target filters](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/specify-hook-configuration-targetfilters.html) . ├[~] service aws-cloudfront │ └ resources │ ├[~] resource AWS::CloudFront::Distribution │ │ └ types │ │ └[~] type Logging │ │ ├ - documentation: A complex type that controls whether access logs are written for the distribution. │ │ │ + documentation: A complex type that specifies whether access logs are written for the distribution. │ │ │ > If you already enabled standard logging (legacy) and you want to enable standard logging (v2) to send your access logs to Amazon S3, we recommend that you specify a *different* Amazon S3 bucket or use a *separate path* in the same bucket (for example, use a log prefix or partitioning). This helps you keep track of which log files are associated with which logging subscription and prevents log files from overwriting each other. For more information, see [Standard logging (access logs)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide* . │ │ └ properties │ │ └ Bucket: (documentation changed) │ └[~] resource AWS::CloudFront::StreamingDistribution │ └ types │ └[~] type Logging │ └ properties │ └ Bucket: (documentation changed) ├[~] service aws-ecs │ └ resources │ ├[~] resource AWS::ECS::Service │ │ ├ properties │ │ │ └ AvailabilityZoneRebalancing: (documentation changed) │ │ └ types │ │ └[~] type DeploymentController │ │ └ - documentation: The deployment controller to use for the service. For more information, see [Amazon ECS deployment types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) in the *Amazon Elastic Container Service Developer Guide* . │ │ + documentation: The deployment controller to use for the service. │ └[~] resource AWS::ECS::TaskDefinition │ └ types │ └[~] type ContainerDefinition │ └ properties │ └ VersionConsistency: (documentation changed) ├[~] service aws-lambda │ └ resources │ ├[~] resource AWS::Lambda::EventInvokeConfig │ │ ├ properties │ │ │ └ DestinationConfig: (documentation changed) │ │ └ types │ │ ├[~] type OnFailure │ │ │ └ properties │ │ │ └ Destination: (documentation changed) │ │ └[~] type OnSuccess │ │ └ - documentation: A destination for events that were processed successfully. │ │ + documentation: A destination for events that were processed successfully. │ │ To retain records of successful [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations) , you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination. │ └[~] resource AWS::Lambda::EventSourceMapping │ └ types │ └[~] type OnFailure │ └ properties │ └ Destination: (documentation changed) ├[~] service aws-mwaa │ └ resources │ └[~] resource AWS::MWAA::Environment │ └ properties │ ├ MaxWebservers: (documentation changed) │ └ MinWebservers: (documentation changed) ├[~] service aws-qbusiness │ └ resources │ └[~] resource AWS::QBusiness::Application │ └ - documentation: Creates an Amazon Q Business application. │ > There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are also available in Amazon Q Business Lite. For information on what's included in Amazon Q Business Lite and what's included in Amazon Q Business Pro, see [Amazon Q Business tiers](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#user-sub-tiers) . You must use the Amazon Q Business console to assign subscription tiers to users. │ > │ > A Amazon Q Apps service linked role will be created if it's absent in the AWS account when the QAppsConfiguration is enabled in the request. For more information, see [Using service-linked roles for Q Apps](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/using-service-linked-roles-qapps.html) │ + documentation: Creates an Amazon Q Business application. │ > There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are also available in Amazon Q Business Lite. For information on what's included in Amazon Q Business Lite and what's included in Amazon Q Business Pro, see [Amazon Q Business tiers](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#user-sub-tiers) . You must use the Amazon Q Business console to assign subscription tiers to users. │ > │ > An Amazon Q Apps service linked role will be created if it's absent in the AWS account when `QAppsConfiguration` is enabled in the request. For more information, see [Using service-linked roles for Q Apps](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/using-service-linked-roles-qapps.html) . │ > │ > When you create an application, Amazon Q Business may securely transmit data for processing from your selected AWS region, but within your geography. For more information, see [Cross region inference in Amazon Q Business](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/cross-region-inference.html) . ├[~] service aws-rbin │ └ resources │ └[~] resource AWS::Rbin::Rule │ ├ - documentation: Resource Type definition for AWS::Rbin::Rule │ │ + documentation: Creates a Recycle Bin retention rule. You can create two types of retention rules: │ │ - *Tag-level retention rules* - These retention rules use resource tags to identify the resources to protect. For each retention rule, you specify one or more tag key and value pairs. Resources (of the specified type) that have at least one of these tag key and value pairs are automatically retained in the Recycle Bin upon deletion. Use this type of retention rule to protect specific resources in your account based on their tags. │ │ - *Region-level retention rules* - These retention rules, by default, apply to all of the resources (of the specified type) in the Region, even if the resources are not tagged. However, you can specify exclusion tags to exclude resources that have specific tags. Use this type of retention rule to protect all resources of a specific type in a Region. │ │ For more information, see [Create Recycle Bin retention rules](https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin.html) in the *Amazon EBS User Guide* . │ ├ properties │ │ ├ Description: (documentation changed) │ │ ├ LockConfiguration: (documentation changed) │ │ ├ ResourceTags: (documentation changed) │ │ ├ RetentionPeriod: (documentation changed) │ │ └ Status: (documentation changed) │ ├ attributes │ │ ├ Arn: (documentation changed) │ │ └ LockState: (documentation changed) │ └ types │ ├[~] type ResourceTag │ │ ├ - documentation: The resource tag of the rule. │ │ │ + documentation: [Tag-level retention rules only] Information about the resource tags used to identify resources that are retained by the retention rule. │ │ └ properties │ │ ├ ResourceTagKey: (documentation changed) │ │ └ ResourceTagValue: (documentation changed) │ ├[~] type RetentionPeriod │ │ ├ - documentation: The retention period of the rule. │ │ │ + documentation: Information about the retention period for which the retention rule is to retain resources. │ │ └ properties │ │ ├ RetentionPeriodUnit: (documentation changed) │ │ └ RetentionPeriodValue: (documentation changed) │ └[~] type UnlockDelay │ ├ - documentation: undefined │ │ + documentation: Information about the retention rule unlock delay. The unlock delay is the period after which a retention rule can be modified or edited after it has been unlocked by a user with the required permissions. The retention rule can't be modified or deleted during the unlock delay. │ └ properties │ └ UnlockDelayValue: (documentation changed) ├[~] service aws-rds │ └ resources │ ├[~] resource AWS::RDS::DBCluster │ │ └ types │ │ └[~] type ServerlessV2ScalingConfiguration │ │ └ properties │ │ └ MinCapacity: (documentation changed) │ └[~] resource AWS::RDS::GlobalCluster │ ├ properties │ │ └ GlobalEndpoint: (documentation changed) │ └ types │ └[~] type GlobalEndpoint │ ├ - documentation: undefined │ │ + documentation: The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. │ └ properties │ └ Address: (documentation changed) └[~] service aws-route53resolver └ resources └[~] resource AWS::Route53Resolver::FirewallRuleGroup └ types └[~] type FirewallRule └ properties ├ ConfidenceThreshold: (documentation changed) ├ DnsThreatProtection: (documentation changed) └ FirewallThreatProtectionId: (documentation changed) ``` --- .../@aws-cdk/cloudformation-diff/package.json | 4 +-- packages/@aws-cdk/integ-runner/package.json | 2 +- packages/aws-cdk-lib/package.json | 2 +- tools/@aws-cdk/spec2cdk/package.json | 6 ++-- yarn.lock | 28 +++++++++---------- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/@aws-cdk/cloudformation-diff/package.json b/packages/@aws-cdk/cloudformation-diff/package.json index 756e796b4460a..de9464d069e79 100644 --- a/packages/@aws-cdk/cloudformation-diff/package.json +++ b/packages/@aws-cdk/cloudformation-diff/package.json @@ -23,8 +23,8 @@ }, "license": "Apache-2.0", "dependencies": { - "@aws-cdk/aws-service-spec": "^0.1.34", - "@aws-cdk/service-spec-types": "^0.0.101", + "@aws-cdk/aws-service-spec": "^0.1.35", + "@aws-cdk/service-spec-types": "^0.0.102", "chalk": "^4", "diff": "^5.2.0", "fast-deep-equal": "^3.1.3", diff --git a/packages/@aws-cdk/integ-runner/package.json b/packages/@aws-cdk/integ-runner/package.json index 9797bad38c2ea..09013489956cf 100644 --- a/packages/@aws-cdk/integ-runner/package.json +++ b/packages/@aws-cdk/integ-runner/package.json @@ -74,7 +74,7 @@ "@aws-cdk/cloud-assembly-schema": "^38.0.0", "@aws-cdk/cloudformation-diff": "0.0.0", "@aws-cdk/cx-api": "0.0.0", - "@aws-cdk/aws-service-spec": "^0.1.34", + "@aws-cdk/aws-service-spec": "^0.1.35", "cdk-assets": "3.0.0-rc.32", "@aws-cdk/cdk-cli-wrapper": "0.0.0", "aws-cdk": "0.0.0", diff --git a/packages/aws-cdk-lib/package.json b/packages/aws-cdk-lib/package.json index d9a344a514954..0bca79c939ac4 100644 --- a/packages/aws-cdk-lib/package.json +++ b/packages/aws-cdk-lib/package.json @@ -136,7 +136,7 @@ "mime-types": "^2.1.35" }, "devDependencies": { - "@aws-cdk/aws-service-spec": "^0.1.34", + "@aws-cdk/aws-service-spec": "^0.1.35", "@aws-cdk/cdk-build-tools": "0.0.0", "@aws-cdk/custom-resource-handlers": "0.0.0", "@aws-cdk/pkglint": "0.0.0", diff --git a/tools/@aws-cdk/spec2cdk/package.json b/tools/@aws-cdk/spec2cdk/package.json index 9094a3efa3bf4..0e4429f7c59b1 100644 --- a/tools/@aws-cdk/spec2cdk/package.json +++ b/tools/@aws-cdk/spec2cdk/package.json @@ -32,9 +32,9 @@ }, "license": "Apache-2.0", "dependencies": { - "@aws-cdk/aws-service-spec": "^0.1.34", - "@aws-cdk/service-spec-importers": "^0.0.56", - "@aws-cdk/service-spec-types": "^0.0.101", + "@aws-cdk/aws-service-spec": "^0.1.35", + "@aws-cdk/service-spec-importers": "^0.0.57", + "@aws-cdk/service-spec-types": "^0.0.102", "@cdklabs/tskb": "^0.0.3", "@cdklabs/typewriter": "^0.0.3", "camelcase": "^6", diff --git a/yarn.lock b/yarn.lock index ea36b2bd22b23..6a42b59a5cb10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -63,12 +63,12 @@ resolved "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz#6d3c7860354d4856a7e75375f2f0ecab313b4989" integrity sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A== -"@aws-cdk/aws-service-spec@^0.1.34": - version "0.1.34" - resolved "https://registry.npmjs.org/@aws-cdk/aws-service-spec/-/aws-service-spec-0.1.34.tgz#4940a67be44e97ab31cd3511b293f51492c99f22" - integrity sha512-bVsNLud3H573UOAqMo16g/kXtFrA755X1ipH++VLuOK5GI4qDpM1tU3/O4UO8JF7n7AA4/fsd7luUCKuydd9cQ== +"@aws-cdk/aws-service-spec@^0.1.35": + version "0.1.35" + resolved "https://registry.npmjs.org/@aws-cdk/aws-service-spec/-/aws-service-spec-0.1.35.tgz#2358c86d446a84fc31104510b4bf060aa8854866" + integrity sha512-1LcfP/mQZflEgup6VOq1qBw56GLoju8EcgGR+K5CDwsHHPybPvBxlwZUU+Ny8A7gFWi9pvm8Jdd79lz9ihmNPw== dependencies: - "@aws-cdk/service-spec-types" "^0.0.101" + "@aws-cdk/service-spec-types" "^0.0.102" "@cdklabs/tskb" "^0.0.3" "@aws-cdk/cloud-assembly-schema@^38.0.0", "@aws-cdk/cloud-assembly-schema@^38.0.1": @@ -106,12 +106,12 @@ resolved "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v31/-/lambda-layer-kubectl-v31-2.0.0.tgz#d87799d7d0d5dad77af45281a36942e4b7996b6b" integrity sha512-8JI0sMDbqCubOyt1TbQFEwicYok9KYSrNSfzREgjGJcoPy17/Kd0gbe44ATyLMfjae7dExUhhwKMhr6GK7Hmrw== -"@aws-cdk/service-spec-importers@^0.0.56": - version "0.0.56" - resolved "https://registry.npmjs.org/@aws-cdk/service-spec-importers/-/service-spec-importers-0.0.56.tgz#9a29608d5f484d3f3d3c7e039c239c47a53becb3" - integrity sha512-UwB31NyiIoBKIeWW+oDQ2jUxkA3NQdL8F5PpaRerCDomIK8FG7xw4/eeFtdTIlINBuosh2NcN6nKbXQ3Xnoy1g== +"@aws-cdk/service-spec-importers@^0.0.57": + version "0.0.57" + resolved "https://registry.npmjs.org/@aws-cdk/service-spec-importers/-/service-spec-importers-0.0.57.tgz#d4c6021e7477bae4f86f0db8f2d85cabcb6a2840" + integrity sha512-7i5ZUFHNeLvvJo9bWVn9HQC5y+kka+sNgtAc1apzqx1IeL0TW/11ZQiWCav+uIhs60xnZZHgeT+iSgpMyApBCw== dependencies: - "@aws-cdk/service-spec-types" "^0.0.101" + "@aws-cdk/service-spec-types" "^0.0.102" "@cdklabs/tskb" "^0.0.3" ajv "^6" canonicalize "^2.0.0" @@ -122,10 +122,10 @@ glob "^8" sort-json "^2.0.1" -"@aws-cdk/service-spec-types@^0.0.101": - version "0.0.101" - resolved "https://registry.npmjs.org/@aws-cdk/service-spec-types/-/service-spec-types-0.0.101.tgz#ce480d59b4eaa4ba29c78a9c53071a00966b87e1" - integrity sha512-a2e5dU1srewZJXSk0gR3McEE52v9pEB6u6IeozjsD9wmjFAVB+ggMFGYv5EQxhuq5/LQpo5enrlyVHZQnW1sZQ== +"@aws-cdk/service-spec-types@^0.0.102": + version "0.0.102" + resolved "https://registry.npmjs.org/@aws-cdk/service-spec-types/-/service-spec-types-0.0.102.tgz#1a7554556a4890c6ccfe62b7d15c4f9297c11e3d" + integrity sha512-CL9hyaPB4C4mcMinkO56uRHFlgtuy57LlpzQv3Qc3Z9FIElK8KG76GDD1SCy+FE/7B13EpIVJmJFRCvjJvyNng== dependencies: "@cdklabs/tskb" "^0.0.3" From c5f895e3cfb3d17b39cad917e8c20560bd5c7824 Mon Sep 17 00:00:00 2001 From: Rico Hermans Date: Mon, 25 Nov 2024 16:26:37 +0100 Subject: [PATCH 3/6] chore(cli): prevent test interference (#32270) Our CLI unit tests were interfering with each other because they were writing files from and to the current directory, which is shared between all of them. Solve it by making a non-writeable directory before running the tests, so that the tests that do that start throwing errors and we can identify them. Then fix those. I tried papering over the issue by trying to create tempdirs automatically, but that started to introduce all kinds of errors in tests that were already doing tempdir management themselves, and it took too long to go and figure out what was wrong there, so I'm doing this instead. Also in this PR: - Switch off global `silent` mode for the tests. It's very annoying if `console.log` statements don't make it out when you're debugging. - This PR caused a couple of lines in `init.ts` to be useless (they were there for tests), and removing those causes a lack of coverage in `init.ts`'s entirety, so add some tests for that file. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/aws-cdk/jest.config.js | 3 +- packages/aws-cdk/lib/init.ts | 10 +-- packages/aws-cdk/test/diff.test.ts | 18 ++++ packages/aws-cdk/test/init.test.ts | 27 +++++- packages/aws-cdk/test/jest-setup-after-env.ts | 85 +++++++++++++++++++ packages/aws-cdk/test/notices.test.ts | 23 +++-- 6 files changed, 143 insertions(+), 23 deletions(-) create mode 100644 packages/aws-cdk/test/jest-setup-after-env.ts diff --git a/packages/aws-cdk/jest.config.js b/packages/aws-cdk/jest.config.js index a6aa99d846bfa..61272d3567108 100644 --- a/packages/aws-cdk/jest.config.js +++ b/packages/aws-cdk/jest.config.js @@ -20,6 +20,5 @@ module.exports = { // We have many tests here that commonly time out testTimeout: 30_000, - // These tests are too chatty. Shush. - silent: true, + setupFilesAfterEnv: ["/test/jest-setup-after-env.ts"], }; diff --git a/packages/aws-cdk/lib/init.ts b/packages/aws-cdk/lib/init.ts index a6ab13638accf..d119f3b78cc0a 100644 --- a/packages/aws-cdk/lib/init.ts +++ b/packages/aws-cdk/lib/init.ts @@ -324,13 +324,9 @@ async function initializeProject( if (migrate) { await template.addMigrateContext(workDir); } - if (await fs.pathExists('README.md')) { - const readme = await fs.readFile('README.md', { encoding: 'utf-8' }); - // Save the logs! - // Without this statement, the readme of the CLI is printed in every init test - if (!readme.startsWith('# AWS CDK Toolkit')) { - print(chalk.green(readme)); - } + if (await fs.pathExists(`${workDir}/README.md`)) { + const readme = await fs.readFile(`${workDir}/README.md`, { encoding: 'utf-8' }); + print(chalk.green(readme)); } if (!generateOnly) { diff --git a/packages/aws-cdk/test/diff.test.ts b/packages/aws-cdk/test/diff.test.ts index 8c608fe96e625..6e3cfd0c3289d 100644 --- a/packages/aws-cdk/test/diff.test.ts +++ b/packages/aws-cdk/test/diff.test.ts @@ -1,4 +1,6 @@ import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; import { Writable } from 'stream'; import { StringDecoder } from 'string_decoder'; import * as cxschema from '@aws-cdk/cloud-assembly-schema'; @@ -12,6 +14,22 @@ import { CdkToolkit } from '../lib/cdk-toolkit'; let cloudExecutable: MockCloudExecutable; let cloudFormation: jest.Mocked; let toolkit: CdkToolkit; +let oldDir: string; +let tmpDir: string; + +beforeAll(() => { + // The toolkit writes and checks for temporary files in the current directory, + // so run these tests in a tempdir so they don't interfere with each other + // and other tests. + oldDir = process.cwd(); + tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'aws-cdk-test')); + process.chdir(tmpDir); +}); + +afterAll(() => { + process.chdir(oldDir); + fs.rmSync(tmpDir, { recursive: true, force: true }); +}); describe('fixed template', () => { const templatePath = 'oldTemplate.json'; diff --git a/packages/aws-cdk/test/init.test.ts b/packages/aws-cdk/test/init.test.ts index 6d9bd2dc4769b..02a94f4addf70 100644 --- a/packages/aws-cdk/test/init.test.ts +++ b/packages/aws-cdk/test/init.test.ts @@ -2,7 +2,7 @@ import * as os from 'os'; import * as path from 'path'; import * as cxapi from '@aws-cdk/cx-api'; import * as fs from 'fs-extra'; -import { availableInitTemplates, cliInit } from '../lib/init'; +import { availableInitLanguages, availableInitTemplates, cliInit, printAvailableTemplates } from '../lib/init'; describe('constructs version', () => { cliTest('create a TypeScript library project', async (workDir) => { @@ -17,6 +17,21 @@ describe('constructs version', () => { expect(await fs.pathExists(path.join(workDir, 'lib'))).toBeTruthy(); }); + cliTest('asking for a nonexistent template fails', async (workDir) => { + await expect(cliInit({ + type: 'banana', + language: 'typescript', + workDir, + })).rejects.toThrow(/Unknown init template/); + }); + + cliTest('asking for a template but no language prints and throws', async (workDir) => { + await expect(cliInit({ + type: 'app', + workDir, + })).rejects.toThrow(/No language/); + }); + cliTest('create a TypeScript app project', async (workDir) => { await cliInit({ type: 'app', @@ -237,6 +252,16 @@ test('when no version number is present (e.g., local development), the v2 templa expect((await availableInitTemplates()).length).toBeGreaterThan(0); }); +test('check available init languages', async () => { + const langs = await availableInitLanguages(); + expect(langs.length).toBeGreaterThan(0); + expect(langs).toContain('typescript'); +}); + +test('exercise printing available templates', async () => { + await printAvailableTemplates(); +}); + function cliTest(name: string, handler: (dir: string) => void | Promise): void { test(name, () => withTempDir(handler)); } diff --git a/packages/aws-cdk/test/jest-setup-after-env.ts b/packages/aws-cdk/test/jest-setup-after-env.ts new file mode 100644 index 0000000000000..b731f0c0e66f0 --- /dev/null +++ b/packages/aws-cdk/test/jest-setup-after-env.ts @@ -0,0 +1,85 @@ +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { isPromise } from 'util/types'; + +/** + * Global test setup for Jest tests + * + * It's easy to accidentally write tests that interfere with each other by + * writing files to disk in the "current directory". To prevent this, the global + * test setup creates a directory in the temporary directory and chmods it to + * being non-writable. That way, whenever a test tries to write to the current + * directory, it will produce an error and we'll be able to find and fix the + * test. + * + * If you see `EACCES: permission denied`, you have a test that creates files + * in the current directory, and you should be sure to do it in a temporary + * directory that you clean up afterwards. + * + * ## Alternate approach + * + * I tried an approach where I would automatically try to create and clean up + * temp directories for every test, but it was introducing too many conflicts + * with existing test behavior (around specific ordering of temp directory + * creation and cleanup tasks that are already present) in many places that I + * didn't want to go and chase down. + * + */ + +let tmpDir: string; +let oldDir: string; + +beforeAll(() => { + tmpDir = path.join(os.tmpdir(), 'cdk-nonwritable-on-purpose'); + fs.mkdirSync(tmpDir, { recursive: true }); + fs.chmodSync(tmpDir, 0o500); + oldDir = process.cwd(); + process.chdir(tmpDir); + tmpDir = process.cwd(); // This will have resolved symlinks +}); + +const reverseAfterAll: Array = []; + +/** + * We need a cleanup here + * + * 99% of the time, Jest runs the tests in a subprocess and this isn't + * necessary because we would have `chdir`ed in the subprocess. + * + * But sometimes we ask Jest with `-i` to run the tests in the main process, + * or if you only ask for a single test suite Jest runs the tests in the main + * process, and then we `chdir`ed the main process away. + * + * Jest will then try to write the `coverage` directory to the readonly directory, + * and fail. Chdir back to the original dir. + * + * If the test file has an `afterAll()` hook it installed as well, we need to run + * it before our cleanup, otherwise the wrong thing will happen (by default, + * all `afterAll()`s run in call order, but they should be run in reverse). + */ +afterAll(async () => { + for (const aft of reverseAfterAll.reverse()) { + await new Promise((resolve, reject) => { + const response = aft(resolve as any); + if (isPromise(response)) { + response.then(() => { return resolve(); }, reject); + } else { + resolve(); + } + }); + } + + // eslint-disable-next-line no-console + process.stderr.write(`${process.cwd()}, ${tmpDir}\n`); + if (process.cwd() === tmpDir) { + // eslint-disable-next-line no-console + process.stderr.write('chmod\n'); + process.chdir(oldDir); + } +}); + +// Patch afterAll to make later-provided afterAll's run before us (in reverse order even). +afterAll = (after: jest.ProvidesHookCallback) => { + reverseAfterAll.push(after); +}; \ No newline at end of file diff --git a/packages/aws-cdk/test/notices.test.ts b/packages/aws-cdk/test/notices.test.ts index acc1fae841173..8acac0ff9b9cb 100644 --- a/packages/aws-cdk/test/notices.test.ts +++ b/packages/aws-cdk/test/notices.test.ts @@ -455,23 +455,20 @@ describe(CachedDataSource, () => { }); test('retrieves data from the delegate when the file cannot be read', async () => { - const debugSpy = jest.spyOn(logging, 'debug'); + const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk-test')); + try { + const debugSpy = jest.spyOn(logging, 'debug'); - if (fs.existsSync('does-not-exist.json')) { - fs.unlinkSync('does-not-exist.json'); - } - - const dataSource = dataSourceWithDelegateReturning(freshData, 'does-not-exist.json'); + const dataSource = dataSourceWithDelegateReturning(freshData, `${tmpDir}/does-not-exist.json`); - const notices = await dataSource.fetch(); - - expect(notices).toEqual(freshData); - expect(debugSpy).not.toHaveBeenCalled(); + const notices = await dataSource.fetch(); - debugSpy.mockRestore(); + expect(notices).toEqual(freshData); + expect(debugSpy).not.toHaveBeenCalled(); - if (fs.existsSync('does-not-exist.json')) { - fs.unlinkSync('does-not-exist.json'); + debugSpy.mockRestore(); + } finally { + fs.rmSync(tmpDir, { recursive: true, force: true }); } }); From 6b85a18f423a0be8f66889979bbb9c68d9833450 Mon Sep 17 00:00:00 2001 From: GZ Date: Mon, 25 Nov 2024 14:13:26 -0800 Subject: [PATCH 4/6] chore(lambda): remove unnecessary lints (#32277) ### Issue # (if applicable) N/A ### Reason for this change Remove unnecessary linter rules. ### Description of changes Remove these added in https://github.com/aws/aws-cdk/pull/32205/files#diff-f66e69e18f9e11ae10f52dbe34309dcdf47cb8e3da6d54befbb45beaaf083b35R408-R419 ### Description of how you validated changes N/A ### Checklist - [ ] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../aws-lambda-event-sources/lib/stream.ts | 3 +++ .../aws-lambda/lib/event-source-mapping.ts | 3 +++ packages/aws-cdk-lib/awslint.json | 12 ------------ 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/packages/aws-cdk-lib/aws-lambda-event-sources/lib/stream.ts b/packages/aws-cdk-lib/aws-lambda-event-sources/lib/stream.ts index f65cb6a9852a1..44c6076c4e65a 100644 --- a/packages/aws-cdk-lib/aws-lambda-event-sources/lib/stream.ts +++ b/packages/aws-cdk-lib/aws-lambda-event-sources/lib/stream.ts @@ -54,6 +54,9 @@ export interface BaseStreamEventSourceProps{ readonly provisionedPollerConfig?: ProvisionedPollerConfig; } +/** + * (Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source. + */ export interface ProvisionedPollerConfig { /** * The minimum number of pollers that should be provisioned. diff --git a/packages/aws-cdk-lib/aws-lambda/lib/event-source-mapping.ts b/packages/aws-cdk-lib/aws-lambda/lib/event-source-mapping.ts index fe4f4cc78b88f..a673d6282dc1a 100644 --- a/packages/aws-cdk-lib/aws-lambda/lib/event-source-mapping.ts +++ b/packages/aws-cdk-lib/aws-lambda/lib/event-source-mapping.ts @@ -81,6 +81,9 @@ export interface SourceAccessConfiguration { readonly uri: string; } +/** + * (Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source. + */ export interface ProvisionedPollerConfig { /** * The minimum number of pollers that should be provisioned. diff --git a/packages/aws-cdk-lib/awslint.json b/packages/aws-cdk-lib/awslint.json index 465f57aceeeef..528f143682a16 100644 --- a/packages/aws-cdk-lib/awslint.json +++ b/packages/aws-cdk-lib/awslint.json @@ -405,18 +405,6 @@ "docs-public-apis:aws-cdk-lib.aws_lambda_event_sources.S3EventSource.bucket", "docs-public-apis:aws-cdk-lib.aws_lambda_event_sources.SnsEventSource.topic", "docs-public-apis:aws-cdk-lib.aws_lambda_event_sources.SqsEventSource.queue", - "docs-public-apis:aws-cdk-lib.aws_lambda.EventSourceMappingOptions.provisionedPollerConfig", - "props-default-doc:aws-cdk-lib.aws_lambda.EventSourceMappingOptions.provisionedPollerConfig", - "docs-public-apis:aws-cdk-lib.aws_lambda.ProvisionedPollerConfig", - "docs-public-apis:aws-cdk-lib.aws_lambda.ProvisionedPollerConfig.maximumPollers", - "docs-public-apis:aws-cdk-lib.aws_lambda.ProvisionedPollerConfig.minimumPollers", - "props-default-doc:aws-cdk-lib.aws_lambda.ProvisionedPollerConfig.maximumPollers", - "props-default-doc:aws-cdk-lib.aws_lambda.ProvisionedPollerConfig.minimumPollers", - "docs-public-apis:aws-cdk-lib.aws_lambda_event_sources.KafkaEventSourceProps.provisionedPollerConfig", - "props-default-doc:aws-cdk-lib.aws_lambda_event_sources.KafkaEventSourceProps.provisionedPollerConfig", - "docs-public-apis:aws-cdk-lib.aws_lambda_event_sources.ProvisionedPollerConfig", - "docs-public-apis:aws-cdk-lib.aws_lambda_event_sources.ProvisionedPollerConfig.maximumPollers", - "docs-public-apis:aws-cdk-lib.aws_lambda_event_sources.ProvisionedPollerConfig.minimumPollers", "docs-public-apis:aws-cdk-lib.aws_logs.CrossAccountDestination.addToPolicy", "docs-public-apis:aws-cdk-lib.aws_logs.DataIdentifier.*", "docs-public-apis:aws-cdk-lib.aws_logs.JsonPattern.jsonPatternString", From 9a4a2457553d5ab12d60456cc9113570298fc5f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:30:52 -0800 Subject: [PATCH 5/6] chore(deps): bump smol-toml from 1.3.0 to 1.3.1 (#32256) Bumps [smol-toml](https://github.com/squirrelchat/smol-toml) from 1.3.0 to 1.3.1.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=smol-toml&package-manager=npm_and_yarn&previous-version=1.3.0&new-version=1.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aws/aws-cdk/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6a42b59a5cb10..4dc9b632d138e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17403,9 +17403,9 @@ smart-buffer@^4.2.0: integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== smol-toml@~1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.0.tgz#5200e251fffadbb72570c84e9776d2a3eca48143" - integrity sha512-tWpi2TsODPScmi48b/OQZGi2lgUmBCHy6SZrhi/FdnnHiU1GwebbCfuQuxsC3nHaLwtYeJGPrDZDIeodDOc4pA== + version "1.3.1" + resolved "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz#d9084a9e212142e3cab27ef4e2b8e8ba620bfe15" + integrity sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ== snake-case@^3.0.4: version "3.0.4" From 55473c8210fbbfe781647e451f3d20c529f93a1d Mon Sep 17 00:00:00 2001 From: Matsuda Date: Tue, 26 Nov 2024 09:03:10 +0900 Subject: [PATCH 6/6] chore(rds): support 8.4.3 engine version for Amazon RDS for MySQL (#32257) Add a new minor version. Ref * https://aws.amazon.com/about-aws/whats-new/2024/11/amazon-rds-for-mysql-8-4-lts-release/ * https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html#MySQL.Concepts.VersionMgmt.Supported ```sh % aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion" --output table --region us-east-1 -------------------------- |DescribeDBEngineVersions| +------------------------+ | 5.7.44 | | 5.7.44-rds.20240408 | | 5.7.44-rds.20240529 | | 5.7.44-rds.20240808 | | 8.0.32 | | 8.0.33 | | 8.0.34 | | 8.0.35 | | 8.0.36 | | 8.0.37 | | 8.0.39 | | 8.0.40 | | 8.4.3 | +------------------------+ ``` ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/aws-cdk-lib/aws-rds/lib/instance-engine.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/aws-cdk-lib/aws-rds/lib/instance-engine.ts b/packages/aws-cdk-lib/aws-rds/lib/instance-engine.ts index b2b81c1ce4d1a..7ad50a23e3dce 100644 --- a/packages/aws-cdk-lib/aws-rds/lib/instance-engine.ts +++ b/packages/aws-cdk-lib/aws-rds/lib/instance-engine.ts @@ -950,6 +950,8 @@ export class MysqlEngineVersion { public static readonly VER_8_0_39 = MysqlEngineVersion.of('8.0.39', '8.0'); /** Version "8.0.40". */ public static readonly VER_8_0_40 = MysqlEngineVersion.of('8.0.40', '8.0'); + /** Version "8.4.3". */ + public static readonly VER_8_4_3 = MysqlEngineVersion.of('8.4.3', '8.0'); /** * Create a new MysqlEngineVersion with an arbitrary version.