From a365217bf6a02d351e0aa32b15fceadac7917a24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 10:46:47 +0000 Subject: [PATCH 01/11] chore(deps): bump tj-actions/changed-files from 42.0.5 to 42.1.0 (#29433) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 42.0.5 to 42.1.0.
Release notes

Sourced from tj-actions/changed-files's releases.

v42.1.0

πŸš€ πŸš€ New Feature πŸš€ πŸš€

This serves as an alias for setting the json input to true and the escape_json input to false

      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@v42
        with:
           matrix: true

[!NOTE]

  • Activating this setting will automatically set json to true and escape_json to false. It is recommended for scenarios requiring these specific configurations.

What's Changed

Full Changelog: https://github.com/tj-actions/changed-files/compare/v42...v42.1.0

v42.0.7

What's Changed

Full Changelog: https://github.com/tj-actions/changed-files/compare/v42...v42.0.7

v42.0.6

What's Changed

... (truncated)

Changelog

Sourced from tj-actions/changed-files's changelog.

Changelog

42.1.0 - (2024-03-09)

πŸš€ Features

πŸ”„ Update

Co-authored-by: repo-ranger[bot] (aa08304) - (tj-actions[bot])

⬆️ Upgrades

Co-authored-by: jackton1 17484350+jackton1@users.noreply.github.com (fe6c3ea) - (tj-actions[bot])

42.0.7 - (2024-03-07)

βž• Add

πŸ”„ Update

βš™οΈ Miscellaneous Tasks

⬆️ Upgrades

Co-authored-by: jackton1 17484350+jackton1@users.noreply.github.com (8df6fc2) - (tj-actions[bot])

42.0.6 - (2024-03-06)

πŸ› Bug Fixes

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tj-actions/changed-files&package-manager=github_actions&previous-version=42.0.5&new-version=42.1.0)](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)
--- .github/workflows/request-cli-integ-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/request-cli-integ-test.yml b/.github/workflows/request-cli-integ-test.yml index d4f9d73e965f1..270a36834e8c2 100644 --- a/.github/workflows/request-cli-integ-test.yml +++ b/.github/workflows/request-cli-integ-test.yml @@ -19,7 +19,7 @@ jobs: persist-credentials: false - name: Find changed cli files id: changed-cli-files - uses: tj-actions/changed-files@800a2825992141ddde1a8bca8ad394cec34d3188 + uses: tj-actions/changed-files@aa08304bd477b800d468db44fe10f6c61f7f7b11 with: base_sha: ${{ github.event.pull_request.base.sha }} files_yaml: | From 5b910f0d61d4adae38788f7f16ccdae6cb214057 Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Mon, 11 Mar 2024 07:15:34 -0700 Subject: [PATCH 02/11] feat: update L1 CloudFormation resource definitions (#29438) 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-amplify β”‚ β”” resources β”‚ β””[~] resource AWS::Amplify::App β”‚ β”œ properties β”‚ β”‚ β”” EnvironmentVariables: (documentation changed) β”‚ β”” types β”‚ β”œ[~] type AutoBranchCreationConfig β”‚ β”‚ β”” properties β”‚ β”‚ β”” EnvironmentVariables: (documentation changed) β”‚ β””[~] type EnvironmentVariable β”‚ β”” properties β”‚ β”œ Name: (documentation changed) β”‚ β”” Value: (documentation changed) β”œ[~] service aws-apigatewayv2 β”‚ β”” resources β”‚ β”œ[~] resource AWS::ApiGatewayV2::ApiGatewayManagedOverrides β”‚ β”‚ β”” types β”‚ β”‚ β””[~] type IntegrationOverrides β”‚ β”‚ β”” properties β”‚ β”‚ β”” IntegrationMethod: (documentation changed) β”‚ β””[~] resource AWS::ApiGatewayV2::Integration β”‚ β”” properties β”‚ β”” IntegrationMethod: (documentation changed) β”œ[~] service aws-applicationautoscaling β”‚ β”” resources β”‚ β”œ[~] resource AWS::ApplicationAutoScaling::ScalableTarget β”‚ β”‚ β”” properties β”‚ β”‚ β”” ResourceId: (documentation changed) β”‚ β””[~] resource AWS::ApplicationAutoScaling::ScalingPolicy β”‚ β”” properties β”‚ β”” ResourceId: (documentation changed) β”œ[~] service aws-autoscaling β”‚ β”” resources β”‚ β””[~] resource AWS::AutoScaling::AutoScalingGroup β”‚ β”” types β”‚ β””[~] type InstanceRequirements β”‚ β”” properties β”‚ β”œ MaxSpotPriceAsPercentageOfOptimalOnDemandPrice: (documentation changed) β”‚ β”” SpotMaxPricePercentageOverLowestPrice: (documentation changed) β”œ[~] service aws-b2bi β”‚ β”” resources β”‚ β””[~] resource AWS::B2BI::Transformer β”‚ β”œ properties β”‚ β”‚ β””[-] ModifiedAt: string β”‚ β”” attributes β”‚ β”” ModifiedAt: (documentation changed) β”œ[~] service aws-batch β”‚ β”” resources β”‚ β””[~] resource AWS::Batch::JobDefinition β”‚ β”œ properties β”‚ β”‚ β””[+] EcsProperties: EcsProperties β”‚ β”” types β”‚ β”œ[+] type EcsProperties β”‚ β”‚ β”œ name: EcsProperties β”‚ β”‚ β”” properties β”‚ β”‚ β””TaskProperties: Array (required) β”‚ β”œ[+] type EcsTaskProperties β”‚ β”‚ β”œ name: EcsTaskProperties β”‚ β”‚ β”” properties β”‚ β”‚ β”œPlatformVersion: string β”‚ β”‚ β”œExecutionRoleArn: string β”‚ β”‚ β”œRuntimePlatform: RuntimePlatform β”‚ β”‚ β”œTaskRoleArn: string β”‚ β”‚ β”œIpcMode: string β”‚ β”‚ β”œVolumes: Array β”‚ β”‚ β”œContainers: Array β”‚ β”‚ β”œNetworkConfiguration: NetworkConfiguration β”‚ β”‚ β”œPidMode: string β”‚ β”‚ β””EphemeralStorage: EphemeralStorage β”‚ β”œ[~] type NodeRangeProperty β”‚ β”‚ β”” properties β”‚ β”‚ β”œ[+] EcsProperties: EcsProperties β”‚ β”‚ β””[+] InstanceTypes: Array β”‚ β”œ[~] type PodProperties β”‚ β”‚ β”” properties β”‚ β”‚ β”œ[+] InitContainers: Array β”‚ β”‚ β””[+] ShareProcessNamespace: boolean β”‚ β”œ[+] type TaskContainerDependency β”‚ β”‚ β”œ name: TaskContainerDependency β”‚ β”‚ β”” properties β”‚ β”‚ β”œCondition: string (required) β”‚ β”‚ β””ContainerName: string (required) β”‚ β””[+] type TaskContainerProperties β”‚ β”œ name: TaskContainerProperties β”‚ β”” properties β”‚ β”œRepositoryCredentials: RepositoryCredentials β”‚ β”œUser: string β”‚ β”œSecrets: Array β”‚ β”œPrivileged: boolean β”‚ β”œLinuxParameters: LinuxParameters β”‚ β”œReadonlyRootFilesystem: boolean β”‚ β”œImage: string (required) β”‚ β”œLogConfiguration: LogConfiguration β”‚ β”œEssential: boolean β”‚ β”œResourceRequirements: Array β”‚ β”œName: string β”‚ β”œMountPoints: Array β”‚ β”œDependsOn: Array β”‚ β”œCommand: Array β”‚ β”œEnvironment: Array β”‚ β””Ulimits: Array β”œ[~] service aws-cloudfront β”‚ β”” resources β”‚ β””[~] resource AWS::CloudFront::Distribution β”‚ β”” types β”‚ β””[~] type DistributionConfig β”‚ β”” properties β”‚ β”” HttpVersion: (documentation changed) β”œ[~] service aws-cloudwatch β”‚ β”” resources β”‚ β””[~] resource AWS::CloudWatch::Alarm β”‚ β”” properties β”‚ β”” ComparisonOperator: (documentation changed) β”œ[~] service aws-codebuild β”‚ β”” resources β”‚ β””[~] resource AWS::CodeBuild::Project β”‚ β”” types β”‚ β””[~] type WebhookFilter β”‚ β”” properties β”‚ β”” Type: (documentation changed) β”œ[~] service aws-cognito β”‚ β”” resources β”‚ β””[~] resource AWS::Cognito::UserPool β”‚ β”” types β”‚ β”œ[~] type NumberAttributeConstraints β”‚ β”‚ β”” properties β”‚ β”‚ β”” MaxValue: (documentation changed) β”‚ β””[~] type StringAttributeConstraints β”‚ β”” properties β”‚ β”” MaxLength: (documentation changed) β”œ[~] service aws-controltower β”‚ β”” resources β”‚ β””[~] resource AWS::ControlTower::LandingZone β”‚ β”” properties β”‚ β”” Manifest: (documentation changed) β”œ[~] service aws-ec2 β”‚ β”” resources β”‚ β”œ[~] resource AWS::EC2::EC2Fleet β”‚ β”‚ β”” types β”‚ β”‚ β””[~] type InstanceRequirementsRequest β”‚ β”‚ β”” properties β”‚ β”‚ β”œ MaxSpotPriceAsPercentageOfOptimalOnDemandPrice: (documentation changed) β”‚ β”‚ β”” SpotMaxPricePercentageOverLowestPrice: (documentation changed) β”‚ β”œ[~] resource AWS::EC2::LaunchTemplate β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type Ebs β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” VolumeType: (documentation changed) β”‚ β”‚ β””[~] type InstanceRequirements β”‚ β”‚ β”” properties β”‚ β”‚ β”œ MaxSpotPriceAsPercentageOfOptimalOnDemandPrice: (documentation changed) β”‚ β”‚ β”” SpotMaxPricePercentageOverLowestPrice: (documentation changed) β”‚ β”œ[~] resource AWS::EC2::SecurityGroup β”‚ β”‚ β”œ attributes β”‚ β”‚ β”‚ β”” Id: (documentation changed) β”‚ β”‚ β”” types β”‚ β”‚ β””[~] type Egress β”‚ β”‚ β”” properties β”‚ β”‚ β””[+] SourceSecurityGroupId: string β”‚ β”œ[~] resource AWS::EC2::SnapshotBlockPublicAccess β”‚ β”‚ β”” - documentation: Specifies the state of the *block public access for snapshots* setting for the Region. For more information, see [Block public access for snapshots](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-snapshots.html) . β”‚ β”‚ + documentation: Specifies the state of the *block public access for snapshots* setting for the Region. For more information, see [Block public access for snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html) . β”‚ β”œ[~] resource AWS::EC2::SpotFleet β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type EbsBlockDevice β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” VolumeType: (documentation changed) β”‚ β”‚ β”œ[~] type InstanceRequirementsRequest β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”œ MaxSpotPriceAsPercentageOfOptimalOnDemandPrice: (documentation changed) β”‚ β”‚ β”‚ β”” SpotMaxPricePercentageOverLowestPrice: (documentation changed) β”‚ β”‚ β””[~] type LaunchTemplateOverrides β”‚ β”‚ β”” properties β”‚ β”‚ β”” WeightedCapacity: (documentation changed) β”‚ β”œ[~] resource AWS::EC2::Volume β”‚ β”‚ β”œ - documentation: Specifies an Amazon Elastic Block Store (Amazon EBS) volume. β”‚ β”‚ β”‚ When you use AWS CloudFormation to update an Amazon EBS volume that modifies `Iops` , `Size` , or `VolumeType` , there is a cooldown period before another operation can occur. This can cause your stack to report being in `UPDATE_IN_PROGRESS` or `UPDATE_ROLLBACK_IN_PROGRESS` for long periods of time. β”‚ β”‚ β”‚ Amazon EBS does not support sizing down an Amazon EBS volume. AWS CloudFormation does not attempt to modify an Amazon EBS volume to a smaller size on rollback. β”‚ β”‚ β”‚ Some common scenarios when you might encounter a cooldown period for Amazon EBS include: β”‚ β”‚ β”‚ - You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period. β”‚ β”‚ β”‚ - You successfully update an Amazon EBS volume and the update succeeds but another change in your `update-stack` call fails. The rollback will be subject to a cooldown period. β”‚ β”‚ β”‚ For more information on the cooldown period, see [Requirements when modifying volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-volume-requirements.html) . β”‚ β”‚ β”‚ *DeletionPolicy attribute* β”‚ β”‚ β”‚ To control how AWS CloudFormation handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) . β”‚ β”‚ β”‚ > If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot. β”‚ β”‚ β”‚ + documentation: Specifies an Amazon Elastic Block Store (Amazon EBS) volume. β”‚ β”‚ β”‚ When you use AWS CloudFormation to update an Amazon EBS volume that modifies `Iops` , `Size` , or `VolumeType` , there is a cooldown period before another operation can occur. This can cause your stack to report being in `UPDATE_IN_PROGRESS` or `UPDATE_ROLLBACK_IN_PROGRESS` for long periods of time. β”‚ β”‚ β”‚ Amazon EBS does not support sizing down an Amazon EBS volume. AWS CloudFormation does not attempt to modify an Amazon EBS volume to a smaller size on rollback. β”‚ β”‚ β”‚ Some common scenarios when you might encounter a cooldown period for Amazon EBS include: β”‚ β”‚ β”‚ - You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period. β”‚ β”‚ β”‚ - You successfully update an Amazon EBS volume and the update succeeds but another change in your `update-stack` call fails. The rollback will be subject to a cooldown period. β”‚ β”‚ β”‚ For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html) . β”‚ β”‚ β”‚ *DeletionPolicy attribute* β”‚ β”‚ β”‚ To control how AWS CloudFormation handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) . β”‚ β”‚ β”‚ > If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot. β”‚ β”‚ β”” properties β”‚ β”‚ β”œ Encrypted: (documentation changed) β”‚ β”‚ β”” VolumeType: (documentation changed) β”‚ β””[~] resource AWS::EC2::VPCCidrBlock β”‚ β”” attributes β”‚ β”” Id: (documentation changed) β”œ[~] service aws-ecs β”‚ β”” resources β”‚ β”œ[~] resource AWS::ECS::ClusterCapacityProviderAssociations β”‚ β”‚ β”” types β”‚ β”‚ β””[~] type CapacityProviderStrategy β”‚ β”‚ β”” properties β”‚ β”‚ β”” Weight: (documentation changed) β”‚ β”œ[~] resource AWS::ECS::Service β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type DeploymentConfiguration β”‚ β”‚ β”‚ β”” - documentation: The `DeploymentConfiguration` property specifies optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. β”‚ β”‚ β”‚ + documentation: Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks. β”‚ β”‚ β”œ[~] type NetworkConfiguration β”‚ β”‚ β”‚ β”” - documentation: The `NetworkConfiguration` property specifies an object representing the network configuration for a task or service. β”‚ β”‚ β”‚ + documentation: The network configuration for a task or service. β”‚ β”‚ β”œ[~] type PlacementConstraint β”‚ β”‚ β”‚ β”” - documentation: The `PlacementConstraint` property specifies an object representing a constraint on task placement in the task definition. For more information, see [Task Placement Constraints](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) in the *Amazon Elastic Container Service Developer Guide* . β”‚ β”‚ β”‚ + documentation: An object representing a constraint on task placement. For more information, see [Task placement constraints](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) in the *Amazon Elastic Container Service Developer Guide* . β”‚ β”‚ β”‚ > If you're using the Fargate launch type, task placement constraints aren't supported. β”‚ β”‚ β”œ[~] type PlacementStrategy β”‚ β”‚ β”‚ β”œ - documentation: The `PlacementStrategy` property specifies the task placement strategy for a task or service. For more information, see [Task Placement Strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the *Amazon Elastic Container Service Developer Guide* . β”‚ β”‚ β”‚ β”‚ + documentation: The task placement strategy for a task or service. For more information, see [Task placement strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the *Amazon Elastic Container Service Developer Guide* . β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” Field: (documentation changed) β”‚ β”‚ β””[~] type ServiceRegistry β”‚ β”‚ β”” - documentation: The `ServiceRegistry` property specifies details of the service registry. For more information, see [Service Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html) in the *Amazon Elastic Container Service Developer Guide* . β”‚ β”‚ + documentation: The details for the service registry. β”‚ β”‚ Each service may be associated with one service registry. Multiple service registries for each service are not supported. β”‚ β”‚ When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration. β”‚ β””[~] resource AWS::ECS::TaskDefinition β”‚ β”” types β”‚ β””[~] type EnvironmentFile β”‚ β”œ - documentation: A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a `.env` file extension. Each line in an environment file should contain an environment variable in `VARIABLE=VALUE` format. Lines beginning with `#` are treated as comments and are ignored. β”‚ β”‚ If there are environment variables specified using the `environment` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide* . β”‚ β”‚ You must use the following platforms for the Fargate launch type: β”‚ β”‚ - Linux platform version `1.4.0` or later. β”‚ β”‚ - Windows platform version `1.0.0` or later. β”‚ β”‚ Consider the following when using the Fargate launch type: β”‚ β”‚ - The file is handled like a native Docker env-file. β”‚ β”‚ - There is no support for shell escape handling. β”‚ β”‚ - The container entry point interperts the `VARIABLE` values. β”‚ β”‚ + documentation: A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a `.env` file extension. Each line in an environment file should contain an environment variable in `VARIABLE=VALUE` format. Lines beginning with `#` are treated as comments and are ignored. β”‚ β”‚ If there are environment variables specified using the `environment` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide* . β”‚ β”‚ Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. β”‚ β”‚ You must use the following platforms for the Fargate launch type: β”‚ β”‚ - Linux platform version `1.4.0` or later. β”‚ β”‚ - Windows platform version `1.0.0` or later. β”‚ β”‚ Consider the following when using the Fargate launch type: β”‚ β”‚ - The file is handled like a native Docker env-file. β”‚ β”‚ - There is no support for shell escape handling. β”‚ β”‚ - The container entry point interperts the `VARIABLE` values. β”‚ β”” properties β”‚ β”” Type: (documentation changed) β”œ[~] service aws-elasticloadbalancing β”‚ β”” resources β”‚ β””[~] resource AWS::ElasticLoadBalancing::LoadBalancer β”‚ β”œ - documentation: Specifies a Classic Load Balancer. β”‚ β”‚ You can specify the `AvailabilityZones` or `Subnets` property, but not both. β”‚ β”‚ If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the VPC-gateway attachment. β”‚ β”‚ + documentation: Specifies a Classic Load Balancer. β”‚ β”‚ If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the VPC-gateway attachment. β”‚ β”” properties β”‚ β”” AvailabilityZones: (documentation changed) β”œ[~] service aws-elasticloadbalancingv2 β”‚ β”” resources β”‚ β””[~] resource AWS::ElasticLoadBalancingV2::Listener β”‚ β”” properties β”‚ β”” SslPolicy: (documentation changed) β”œ[~] service aws-emr β”‚ β”” resources β”‚ β””[~] resource AWS::EMR::Cluster β”‚ β”œ properties β”‚ β”‚ β”” Name: (documentation changed) β”‚ β”” types β”‚ β””[~] type JobFlowInstancesConfig β”‚ β”” properties β”‚ β”” UnhealthyNodeReplacement: (documentation changed) β”œ[~] service aws-fsx β”‚ β”” resources β”‚ β””[~] resource AWS::FSx::FileSystem β”‚ β”” types β”‚ β”œ[~] type DiskIopsConfiguration β”‚ β”‚ β”” properties β”‚ β”‚ β”” Mode: (documentation changed) β”‚ β””[~] type OntapConfiguration β”‚ β”” properties β”‚ β”œ HAPairs: (documentation changed) β”‚ β”” ThroughputCapacityPerHAPair: (documentation changed) β”œ[~] service aws-iotsitewise β”‚ β”” resources β”‚ β”œ[~] resource AWS::IoTSiteWise::AccessPolicy β”‚ β”‚ β”œ properties β”‚ β”‚ β”‚ β”” AccessPolicyPermission: (documentation changed) β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type AccessPolicyIdentity β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” User: (documentation changed) β”‚ β”‚ β”œ[~] type AccessPolicyResource β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”œ Portal: (documentation changed) β”‚ β”‚ β”‚ β”” Project: (documentation changed) β”‚ β”‚ β”œ[~] type Portal β”‚ β”‚ β”‚ β”” - documentation: The `Portal` property type specifies the AWS IoT SiteWise Monitor portal for an [AWS::IoTSiteWise::AccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html) . β”‚ β”‚ β”‚ + documentation: Identifies an AWS IoT SiteWise Monitor portal. β”‚ β”‚ β”œ[~] type Project β”‚ β”‚ β”‚ β”” - documentation: The `Project` property type specifies the AWS IoT SiteWise Monitor project for an [AWS::IoTSiteWise::AccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html) . β”‚ β”‚ β”‚ + documentation: Identifies a specific AWS IoT SiteWise Monitor project. β”‚ β”‚ β””[~] type User β”‚ β”‚ β”œ - documentation: The `User` property type specifies the AWS IoT SiteWise Monitor user for an [AWS::IoTSiteWise::AccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html) . β”‚ β”‚ β”‚ + documentation: Contains information for a user identity in an access policy. β”‚ β”‚ β”” properties β”‚ β”‚ β”” id: (documentation changed) β”‚ β”œ[~] resource AWS::IoTSiteWise::Asset β”‚ β”‚ β”œ properties β”‚ β”‚ β”‚ β”œ AssetDescription: (documentation changed) β”‚ β”‚ β”‚ β”œ AssetHierarchies: (documentation changed) β”‚ β”‚ β”‚ β”” AssetName: (documentation changed) β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type AssetHierarchy β”‚ β”‚ β”‚ β”œ - documentation: Describes an asset hierarchy that contains a `childAssetId` and `hierarchyLogicalId` . β”‚ β”‚ β”‚ β”‚ + documentation: Describes an asset hierarchy that contains a hierarchy's name and ID. β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” LogicalId: (documentation changed) β”‚ β”‚ β””[~] type AssetProperty β”‚ β”‚ β”” properties β”‚ β”‚ β”œ Alias: (documentation changed) β”‚ β”‚ β”œ LogicalId: (documentation changed) β”‚ β”‚ β”” NotificationState: (documentation changed) β”‚ β”œ[~] resource AWS::IoTSiteWise::AssetModel β”‚ β”‚ β”œ - documentation: Creates an asset model from specified property and hierarchy definitions. You create assets from asset models. With asset models, you can easily create assets of the same type that have standardized definitions. Each asset created from a model inherits the asset model's property and hierarchy definitions. For more information, see [Defining asset models](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/define-models.html) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β”‚ + documentation: Creates an asset model from specified property and hierarchy definitions. You create assets from asset models. With asset models, you can easily create assets of the same type that have standardized definitions. Each asset created from a model inherits the asset model's property and hierarchy definitions. For more information, see [Defining asset models](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/define-models.html) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β”‚ You can create two types of asset models, `ASSET_MODEL` or `COMPONENT_MODEL` . β”‚ β”‚ β”‚ - *ASSET_MODEL* – (default) An asset model that you can use to create assets. Can't be included as a component in another asset model. β”‚ β”‚ β”‚ - *COMPONENT_MODEL* – A reusable component that you can include in the composite models of other asset models. You can't create assets directly from this type of asset model. β”‚ β”‚ β”œ properties β”‚ β”‚ β”‚ β”œ AssetModelCompositeModels: (documentation changed) β”‚ β”‚ β”‚ β”œ AssetModelHierarchies: (documentation changed) β”‚ β”‚ β”‚ β”œ AssetModelName: (documentation changed) β”‚ β”‚ β”‚ β”” AssetModelProperties: (documentation changed) β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type AssetModelCompositeModel β”‚ β”‚ β”‚ β”” - documentation: Contains information about a composite model in an asset model. This object contains the asset property definitions that you define in the composite model. You can use composite asset models to define alarms on this asset model. β”‚ β”‚ β”‚ If you use the `AssetModelCompositeModel` property to create an alarm, you must use the following information to define three asset model properties: β”‚ β”‚ β”‚ - Use an asset model property to specify the alarm type. β”‚ β”‚ β”‚ - The name must be `AWS/ALARM_TYPE` . β”‚ β”‚ β”‚ - The data type must be `STRING` . β”‚ β”‚ β”‚ - For the `Type` property, the type name must be `Attribute` and the default value must be `IOT_EVENTS` . β”‚ β”‚ β”‚ - Use an asset model property to specify the alarm source. β”‚ β”‚ β”‚ - The name must be `AWS/ALARM_SOURCE` . β”‚ β”‚ β”‚ - The data type must be `STRING` . β”‚ β”‚ β”‚ - For the `Type` property, the type name must be `Attribute` and the default value must be the ARN of the alarm model that you created in AWS IoT Events . β”‚ β”‚ β”‚ > For the ARN of the alarm model, you can use the `Fn::Sub` intrinsic function to substitute the `AWS::Partition` , `AWS::Region` , and `AWS::AccountId` variables in an input string with values that you specify. β”‚ β”‚ β”‚ > β”‚ β”‚ β”‚ > For example, `Fn::Sub: "arn:${AWS::Partition}:iotevents:${AWS::Region}:${AWS::AccountId}:alarmModel/TestAlarmModel"` . β”‚ β”‚ β”‚ > β”‚ β”‚ β”‚ > Replace `TestAlarmModel` with the name of your alarm model. β”‚ β”‚ β”‚ > β”‚ β”‚ β”‚ > For more information about using the `Fn::Sub` intrinsic function, see [Fn::Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html) . β”‚ β”‚ β”‚ - Use an asset model property to specify the state of the alarm. β”‚ β”‚ β”‚ - The name must be `AWS/ALARM_STATE` . β”‚ β”‚ β”‚ - The data type must be `STRUCT` . β”‚ β”‚ β”‚ - The `DataTypeSpec` value must be `AWS/ALARM_STATE` . β”‚ β”‚ β”‚ - For the `Type` property, the type name must be `Measurement` . β”‚ β”‚ β”‚ At the bottom of this page, we provide a YAML example that you can modify to create an alarm. β”‚ β”‚ β”‚ + documentation: Contains information about a composite model in an asset model. This object contains the asset property definitions that you define in the composite model. β”‚ β”‚ β”œ[~] type AssetModelHierarchy β”‚ β”‚ β”‚ β”œ - documentation: Describes an asset hierarchy that contains a hierarchy's name, `LogicalID` , and child asset model ID that specifies the type of asset that can be in this hierarchy. β”‚ β”‚ β”‚ β”‚ + documentation: Describes an asset hierarchy that contains a hierarchy's name, ID, and child asset model ID that specifies the type of asset that can be in this hierarchy. β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”œ ChildAssetModelId: (documentation changed) β”‚ β”‚ β”‚ β”œ LogicalId: (documentation changed) β”‚ β”‚ β”‚ β”” Name: (documentation changed) β”‚ β”‚ β”œ[~] type AssetModelProperty β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”œ DataType: (documentation changed) β”‚ β”‚ β”‚ β”œ LogicalId: (documentation changed) β”‚ β”‚ β”‚ β”œ Name: (documentation changed) β”‚ β”‚ β”‚ β”” Type: (documentation changed) β”‚ β”‚ β”œ[~] type Attribute β”‚ β”‚ β”‚ β”” - documentation: Contains an asset attribute property. For more information, see [Defining data properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#attributes) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β”‚ + documentation: Contains an asset attribute property. For more information, see [Attributes](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#attributes) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β”œ[~] type ExpressionVariable β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” Name: (documentation changed) β”‚ β”‚ β”œ[~] type Metric β”‚ β”‚ β”‚ β”” - documentation: Contains an asset metric property. With metrics, you can calculate aggregate functions, such as an average, maximum, or minimum, as specified through an expression. A metric maps several values to a single value (such as a sum). β”‚ β”‚ β”‚ The maximum number of dependent/cascading variables used in any one metric calculation is 10. Therefore, a *root* metric can have up to 10 cascading metrics in its computational dependency tree. Additionally, a metric can only have a data type of `DOUBLE` and consume properties with data types of `INTEGER` or `DOUBLE` . β”‚ β”‚ β”‚ For more information, see [Defining data properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#metrics) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β”‚ + documentation: Contains an asset metric property. With metrics, you can calculate aggregate functions, such as an average, maximum, or minimum, as specified through an expression. A metric maps several values to a single value (such as a sum). β”‚ β”‚ β”‚ The maximum number of dependent/cascading variables used in any one metric calculation is 10. Therefore, a *root* metric can have up to 10 cascading metrics in its computational dependency tree. Additionally, a metric can only have a data type of `DOUBLE` and consume properties with data types of `INTEGER` or `DOUBLE` . β”‚ β”‚ β”‚ For more information, see [Metrics](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#metrics) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β”œ[~] type PropertyType β”‚ β”‚ β”‚ β”œ - documentation: Contains a property type, which can be one of `Attribute` , `Measurement` , `Metric` , or `Transform` . β”‚ β”‚ β”‚ β”‚ + documentation: Contains a property type, which can be one of `attribute` , `measurement` , `metric` , or `transform` . β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”œ Attribute: (documentation changed) β”‚ β”‚ β”‚ β”œ Metric: (documentation changed) β”‚ β”‚ β”‚ β”” Transform: (documentation changed) β”‚ β”‚ β”œ[~] type Transform β”‚ β”‚ β”‚ β”” - documentation: Contains an asset transform property. A transform is a one-to-one mapping of a property's data points from one form to another. For example, you can use a transform to convert a Celsius data stream to Fahrenheit by applying the transformation expression to each data point of the Celsius stream. Transforms can only input properties that are `INTEGER` , `DOUBLE` , or `BOOLEAN` type. Booleans convert to `0` ( `FALSE` ) and `1` ( `TRUE` ).. β”‚ β”‚ β”‚ For more information, see [Defining data properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#transforms) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β”‚ + documentation: Contains an asset transform property. A transform is a one-to-one mapping of a property's data points from one form to another. For example, you can use a transform to convert a Celsius data stream to Fahrenheit by applying the transformation expression to each data point of the Celsius stream. A transform can only have a data type of `DOUBLE` and consume properties with data types of `INTEGER` or `DOUBLE` . β”‚ β”‚ β”‚ For more information, see [Transforms](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#transforms) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ β””[~] type VariableValue β”‚ β”‚ β”” properties β”‚ β”‚ β”œ HierarchyLogicalId: (documentation changed) β”‚ β”‚ β”” PropertyLogicalId: (documentation changed) β”‚ β”œ[~] resource AWS::IoTSiteWise::Gateway β”‚ β”‚ β”œ properties β”‚ β”‚ β”‚ β”” GatewayName: (documentation changed) β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type GatewayCapabilitySummary β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” CapabilityNamespace: (documentation changed) β”‚ β”‚ β””[~] type Greengrass β”‚ β”‚ β”” properties β”‚ β”‚ β”” GroupArn: (documentation changed) β”‚ β””[~] resource AWS::IoTSiteWise::Portal β”‚ β”œ - documentation: Creates a portal, which can contain projects and dashboards. Before you can create a portal, you must enable IAM Identity Center . AWS IoT SiteWise Monitor uses IAM Identity Center to manage user permissions. For more information, see [Enabling IAM Identity Center](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ > Before you can sign in to a new portal, you must add at least one IAM Identity Center user or group to that portal. For more information, see [Adding or removing portal administrators](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/administer-portals.html#portal-change-admins) in the *AWS IoT SiteWise User Guide* . β”‚ β”‚ + documentation: Creates a portal, which can contain projects and dashboards. AWS IoT SiteWise Monitor uses IAM Identity Center or IAM to authenticate portal users and manage user permissions. β”‚ β”‚ > Before you can sign in to a new portal, you must add at least one identity to that portal. For more information, see [Adding or removing portal administrators](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/administer-portals.html#portal-change-admins) in the *AWS IoT SiteWise User Guide* . β”‚ β”” properties β”‚ β”” PortalAuthMode: (documentation changed) β”œ[~] service aws-iotwireless β”‚ β”” resources β”‚ β”œ[~] resource AWS::IoTWireless::WirelessDevice β”‚ β”‚ β”” properties β”‚ β”‚ β”” Positioning: (documentation changed) β”‚ β””[~] resource AWS::IoTWireless::WirelessDeviceImportTask β”‚ β”” attributes β”‚ β”” Sidewalk.DeviceCreationFileList: (documentation changed) β”œ[~] service aws-kendra β”‚ β”” resources β”‚ β””[~] resource AWS::Kendra::DataSource β”‚ β”” types β”‚ β””[~] type S3DataSourceConfiguration β”‚ β”” properties β”‚ β”œ ExclusionPatterns: (documentation changed) β”‚ β”” InclusionPatterns: (documentation changed) β”œ[~] service aws-lambda β”‚ β”” resources β”‚ β”œ[~] resource AWS::Lambda::Alias β”‚ β”‚ β”” properties β”‚ β”‚ β”” FunctionName: (documentation changed) β”‚ β”œ[~] resource AWS::Lambda::EventSourceMapping β”‚ β”‚ β”” properties β”‚ β”‚ β”” FunctionName: (documentation changed) β”‚ β”œ[~] resource AWS::Lambda::Permission β”‚ β”‚ β”” properties β”‚ β”‚ β”” FunctionName: (documentation changed) β”‚ β””[~] resource AWS::Lambda::Version β”‚ β”” properties β”‚ β”” FunctionName: (documentation changed) β”œ[~] service aws-rds β”‚ β”” resources β”‚ β”œ[~] resource AWS::RDS::DBCluster β”‚ β”‚ β”œ properties β”‚ β”‚ β”‚ β”œ EnableHttpEndpoint: (documentation changed) β”‚ β”‚ β”‚ β”” StorageType: (documentation changed) β”‚ β”‚ β”” attributes β”‚ β”‚ β””[+] StorageThroughput: integer β”‚ β””[~] resource AWS::RDS::DBInstance β”‚ β”” properties β”‚ β”œ DBInstanceClass: (documentation changed) β”‚ β”” StorageType: (documentation changed) β”œ[~] service aws-redshift β”‚ β”” resources β”‚ β””[~] resource AWS::Redshift::Cluster β”‚ β”” properties β”‚ β”” Port: (documentation changed) β”œ[~] service aws-redshiftserverless β”‚ β”” resources β”‚ β””[~] resource AWS::RedshiftServerless::Namespace β”‚ β”œ properties β”‚ β”‚ β””[-] SnapshotCopyConfigurations: Array β”‚ β”” types β”‚ β””[-] type SnapshotCopyConfiguration β”‚ β”œ name: SnapshotCopyConfiguration β”‚ β”” properties β”‚ β”œDestinationRegion: string (required) β”‚ β”œDestinationKmsKeyId: string β”‚ β””SnapshotRetentionPeriod: integer β”œ[~] service aws-sagemaker β”‚ β”” resources β”‚ β”œ[~] resource AWS::SageMaker::EndpointConfig β”‚ β”‚ β”” types β”‚ β”‚ β””[~] type ServerlessConfig β”‚ β”‚ β”” properties β”‚ β”‚ β”” ProvisionedConcurrency: (documentation changed) β”‚ β”œ[~] resource AWS::SageMaker::FeatureGroup β”‚ β”‚ β”” types β”‚ β”‚ β”œ[~] type FeatureDefinition β”‚ β”‚ β”‚ β”” properties β”‚ β”‚ β”‚ β”” FeatureName: (documentation changed) β”‚ β”‚ β””[~] type S3StorageConfig β”‚ β”‚ β”” - documentation: The Amazon Simple Storage (Amazon S3) location and and security configuration for `OfflineStore` . β”‚ β”‚ + documentation: The Amazon Simple Storage (Amazon S3) location and security configuration for `OfflineStore` . β”‚ β””[~] resource AWS::SageMaker::InferenceExperiment β”‚ β”” attributes β”‚ β”œ Arn: (documentation changed) β”‚ β”œ CreationTime: (documentation changed) β”‚ β”” Status: (documentation changed) β”œ[~] service aws-shield β”‚ β”” resources β”‚ β”œ[~] resource AWS::Shield::DRTAccess β”‚ β”‚ β”” properties β”‚ β”‚ β”” RoleArn: (documentation changed) β”‚ β””[~] resource AWS::Shield::ProtectionGroup β”‚ β”” properties β”‚ β”” Aggregation: (documentation changed) β”œ[~] service aws-ssm β”‚ β”” resources β”‚ β”œ[~] resource AWS::SSM::Association β”‚ β”‚ β”” properties β”‚ β”‚ β”” Targets: (documentation changed) β”‚ β””[~] resource AWS::SSM::Parameter β”‚ β”” properties β”‚ β”” Type: (documentation changed) β””[~] service aws-wafv2 β”” resources β”œ[~] resource AWS::WAFv2::RuleGroup β”‚ β”” types β”‚ β”œ[~] type FieldToMatch β”‚ β”‚ β”” properties β”‚ β”‚ β””[+] JA3Fingerprint: JA3Fingerprint β”‚ β”œ[+] type JA3Fingerprint β”‚ β”‚ β”œ documentation: Match against the request's JA3 fingerprint. The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information. β”‚ β”‚ β”‚ > You can use this choice only with a string match `ByteMatchStatement` with the `PositionalConstraint` set to `EXACTLY` . β”‚ β”‚ β”‚ You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see [Log fields](https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html) in the *AWS WAF Developer Guide* . β”‚ β”‚ β”‚ Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration. β”‚ β”‚ β”‚ name: JA3Fingerprint β”‚ β”‚ β”” properties β”‚ β”‚ β””FallbackBehavior: string (required) β”‚ β””[~] type RateBasedStatement β”‚ β”” properties β”‚ β””[+] EvaluationWindowSec: integer β””[~] resource AWS::WAFv2::WebACL β”” types β”œ[~] type FieldToMatch β”‚ β”” properties β”‚ β””[+] JA3Fingerprint: JA3Fingerprint β”œ[+] type JA3Fingerprint β”‚ β”œ documentation: Match against the request's JA3 fingerprint. The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information. β”‚ β”‚ > You can use this choice only with a string match `ByteMatchStatement` with the `PositionalConstraint` set to `EXACTLY` . β”‚ β”‚ You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see [Log fields](https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html) in the *AWS WAF Developer Guide* . β”‚ β”‚ Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration. β”‚ β”‚ name: JA3Fingerprint β”‚ β”” properties β”‚ β””FallbackBehavior: string (required) β””[~] type RateBasedStatement β”” properties β””[+] EvaluationWindowSec: integer ``` --- .../@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 0963f584b1b32..95d9fd32188df 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.0.52", - "@aws-cdk/service-spec-types": "^0.0.52", + "@aws-cdk/aws-service-spec": "^0.0.53", + "@aws-cdk/service-spec-types": "^0.0.53", "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 a41e82cbcfa34..1d04992fca455 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": "0.0.0", "@aws-cdk/cloudformation-diff": "0.0.0", "@aws-cdk/cx-api": "0.0.0", - "@aws-cdk/aws-service-spec": "^0.0.52", + "@aws-cdk/aws-service-spec": "^0.0.53", "cdk-assets": "0.0.0", "@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 cc3bd7c682bbe..994e5afd0eac6 100644 --- a/packages/aws-cdk-lib/package.json +++ b/packages/aws-cdk-lib/package.json @@ -135,7 +135,7 @@ "mime-types": "^2.1.35" }, "devDependencies": { - "@aws-cdk/aws-service-spec": "^0.0.52", + "@aws-cdk/aws-service-spec": "^0.0.53", "@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 3c9f8b5e968da..078e8928421c5 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.0.52", - "@aws-cdk/service-spec-importers": "^0.0.23", - "@aws-cdk/service-spec-types": "^0.0.52", + "@aws-cdk/aws-service-spec": "^0.0.53", + "@aws-cdk/service-spec-importers": "^0.0.24", + "@aws-cdk/service-spec-types": "^0.0.53", "@cdklabs/tskb": "^0.0.3", "@cdklabs/typewriter": "^0.0.3", "camelcase": "^6", diff --git a/yarn.lock b/yarn.lock index fd141c7631a27..6cc7ad5fddeb6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -56,12 +56,12 @@ resolved "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.1.tgz#6dc9b7cdb22ff622a7176141197962360c33e9ac" integrity sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg== -"@aws-cdk/aws-service-spec@^0.0.52": - version "0.0.52" - resolved "https://registry.npmjs.org/@aws-cdk/aws-service-spec/-/aws-service-spec-0.0.52.tgz#426bf8adebc825b49b152a3ba89d6816fa8be903" - integrity sha512-SJA4xtG2y5NpTmtKtFNbrYh6BaFgKEcr7ye8N+S4H3KByXIa0NLOh5bPTVBjvyXiRPDJ9q39Xu433vxC3BsDhg== +"@aws-cdk/aws-service-spec@^0.0.53": + version "0.0.53" + resolved "https://registry.npmjs.org/@aws-cdk/aws-service-spec/-/aws-service-spec-0.0.53.tgz#d8f7b2edc69e9819a304261fcc9c0c0b87916015" + integrity sha512-CcKhkQDuf4I9K93/5v/Bq3ekWIq2A5KmUQTWqnqWjXaof1J3mk+htsFU8vP7AhsLfTuYsJM9vTLF7WK6fPD5mA== dependencies: - "@aws-cdk/service-spec-types" "^0.0.52" + "@aws-cdk/service-spec-types" "^0.0.53" "@cdklabs/tskb" "^0.0.3" "@aws-cdk/lambda-layer-kubectl-v24@^2.0.242": @@ -69,12 +69,12 @@ resolved "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v24/-/lambda-layer-kubectl-v24-2.0.242.tgz#4273a5ad7714f933a7eba155eb9280823086db71" integrity sha512-7/wIOo685tmrEe4hh6zqDELhBZh5OQGf3Hd2FU2Vnwy2ZubW8qTmEw5gqJCsCrGKeYDoa1BcVhDRZ/nzjkaqyA== -"@aws-cdk/service-spec-importers@^0.0.23": - version "0.0.23" - resolved "https://registry.npmjs.org/@aws-cdk/service-spec-importers/-/service-spec-importers-0.0.23.tgz#eaade0ef38a2be6fe2932d6ba2a0f46c97a72dc8" - integrity sha512-U0e3AUfnmf/wFScWbXJHUIAqYOmIzhAbVuzvKVbVc5vC9o0OsQvjvdb5vnOnLbsjjgxCDsHtWF4nZhkxRIBK3g== +"@aws-cdk/service-spec-importers@^0.0.24": + version "0.0.24" + resolved "https://registry.npmjs.org/@aws-cdk/service-spec-importers/-/service-spec-importers-0.0.24.tgz#74c1e97afe252149c1c1ebfb6bf09b66d41e6aa0" + integrity sha512-bDA3wZT19FdpHZZVQfFpBt7ax5ppXC5u3gSk6j7SKV6JThaBXXtUjixD6AMPIGju/xmKuhUVOlhvezd0OS9/7w== dependencies: - "@aws-cdk/service-spec-types" "^0.0.52" + "@aws-cdk/service-spec-types" "^0.0.53" "@cdklabs/tskb" "^0.0.3" ajv "^6" canonicalize "^2.0.0" @@ -85,10 +85,10 @@ glob "^8" sort-json "^2.0.1" -"@aws-cdk/service-spec-types@^0.0.52": - version "0.0.52" - resolved "https://registry.npmjs.org/@aws-cdk/service-spec-types/-/service-spec-types-0.0.52.tgz#08824dcf78dbf8435c25c771ddd7a1e89897c3a0" - integrity sha512-vVoZPgEmkUPeTVJSQ9iyXTiwnb6GiBbntJdnsWTr6I9ao66TuU9HijEcAQHxkC7CxTkian+3KSX/NTl01Klm0A== +"@aws-cdk/service-spec-types@^0.0.53": + version "0.0.53" + resolved "https://registry.npmjs.org/@aws-cdk/service-spec-types/-/service-spec-types-0.0.53.tgz#026e203d973114973f1cdc67d8c2feb6026f2888" + integrity sha512-TbZ9/9wkGlwZyE4/Tuv0azCbUqHHPlp91SWwqd8CjNFHZ3r+1r0m8yKdJgGdfO6PO973Ojesr4+4IxMc8rmy/w== dependencies: "@cdklabs/tskb" "^0.0.3" From bf33efd01cf78bba04b50efb3fc7f90eae57d26f Mon Sep 17 00:00:00 2001 From: Jimmy Gaussen Date: Mon, 11 Mar 2024 18:28:00 +0100 Subject: [PATCH 03/11] chore(rds): update engine versions (#29422) ### Issue # (if applicable) Closes #29360, closes #23810 **Note**: #29421 already adds some of the missing Oracle versions, this PR also includes them ### Reason for this change Update the CDK RDS engine versions to match the current availability, as well as facilitate automated alerts for updates in the future ### Description of changes * Added missing engine version for all RDS engines * This includes engines missing in the CDK that are already deprecated, but still returned by the SDK. The goal is to remove any differences between the two, even if it means a few needless static fields * Updated missing or un-needed `@deprecated` TSDoc tags ### Description of how you validated changes Like I mentioned in https://github.com/aws/aws-cdk/issues/29360#issuecomment-1986892555, I'm working on a CLI that compares the `aws-cdk-lib` TypeScript declarations to SDK API calls, in this case `DescribeDBEngineVersions`. I am re-validating these locally edited files as I update them, until I have no differences between the CDK and the live SDK results. This is currently a mostly manual process. I'll add support for more version fields such as `ec2.WindowsVersion` before adding automation, to bridge the other currently missing versions ASAP. ### 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* --- .../aws-cdk-lib/aws-rds/lib/cluster-engine.ts | 77 +- .../aws-rds/lib/instance-engine.ts | 829 ++++++++++++++---- 2 files changed, 737 insertions(+), 169 deletions(-) diff --git a/packages/aws-cdk-lib/aws-rds/lib/cluster-engine.ts b/packages/aws-cdk-lib/aws-rds/lib/cluster-engine.ts index 38a44394d9f12..ae359182c0fe7 100644 --- a/packages/aws-cdk-lib/aws-rds/lib/cluster-engine.ts +++ b/packages/aws-cdk-lib/aws-rds/lib/cluster-engine.ts @@ -325,6 +325,11 @@ export class AuroraMysqlEngineVersion { * @deprecated Version 5.7.12 is no longer supported by Amazon RDS. */ public static readonly VER_5_7_12 = AuroraMysqlEngineVersion.builtIn_5_7('12', false); + /** + * Version "5.7.mysql_aurora.2.02.3" + * @deprecated Version 5.7.mysql_aurora.2.02.3 is no longer supported by Amazon RDS. + */ + public static readonly VER_2_02_3 = AuroraMysqlEngineVersion.builtIn_5_7('2.02.3'); /** * Version "5.7.mysql_aurora.2.03.2". * @deprecated Version 5.7.mysql_aurora.2.03.2 is no longer supported by Amazon RDS. @@ -385,11 +390,21 @@ export class AuroraMysqlEngineVersion { * @deprecated Version 5.7.mysql_aurora.2.04.8 is no longer supported by Amazon RDS. */ public static readonly VER_2_04_8 = AuroraMysqlEngineVersion.builtIn_5_7('2.04.8'); + /** + * Version "5.7.mysql_aurora.2.04.9" + * @deprecated Version 5.7.mysql_aurora.2.04.9 is no longer supported by Amazon RDS. + */ + public static readonly VER_2_04_9 = AuroraMysqlEngineVersion.builtIn_5_7('2.04.9'); /** * Version "5.7.mysql_aurora.2.05.0". * @deprecated Version 5.7.mysql_aurora.2.05.0 is no longer supported by Amazon RDS. */ public static readonly VER_2_05_0 = AuroraMysqlEngineVersion.builtIn_5_7('2.05.0'); + /** + * Version "5.7.mysql_aurora.2.05.1" + * @deprecated Version 5.7.mysql_aurora.2.05.1 is no longer supported by Amazon RDS. + */ + public static readonly VER_2_05_1 = AuroraMysqlEngineVersion.builtIn_5_7('2.05.1'); /** * Version "5.7.mysql_aurora.2.06.0". * @deprecated Version 5.7.mysql_aurora.2.06.0 is no longer supported by Amazon RDS. @@ -510,8 +525,8 @@ export class AuroraMysqlEngineVersion { */ public static readonly VER_2_10_3 = AuroraMysqlEngineVersion.builtIn_5_7('2.10.3'); /** - * Version "5.7.mysql_aurora.2.11.0". - * This version isn't available for new creations. + * Version "5.7.mysql_aurora.2.11.0" + * @deprecated Version 5.7.mysql_aurora.2.11.0 is no longer supported by Amazon RDS. */ public static readonly VER_2_11_0 = AuroraMysqlEngineVersion.builtIn_5_7('2.11.0'); /** Version "5.7.mysql_aurora.2.11.1". */ @@ -524,6 +539,8 @@ export class AuroraMysqlEngineVersion { public static readonly VER_2_11_4 = AuroraMysqlEngineVersion.builtIn_5_7('2.11.4'); /** Version "5.7.mysql_aurora.2.12.0". */ public static readonly VER_2_12_0 = AuroraMysqlEngineVersion.builtIn_5_7('2.12.0'); + /** Version "5.7.mysql_aurora.2.12.1". */ + public static readonly VER_2_12_1 = AuroraMysqlEngineVersion.builtIn_5_7('2.12.1'); /** Version "8.0.mysql_aurora.3.01.0". */ public static readonly VER_3_01_0 = AuroraMysqlEngineVersion.builtIn_8_0('3.01.0'); /** Version "8.0.mysql_aurora.3.01.1". */ @@ -540,16 +557,28 @@ export class AuroraMysqlEngineVersion { public static readonly VER_3_03_0 = AuroraMysqlEngineVersion.builtIn_8_0('3.03.0'); /** Version "8.0.mysql_aurora.3.03.1". */ public static readonly VER_3_03_1 = AuroraMysqlEngineVersion.builtIn_8_0('3.03.1'); + /** Version "8.0.mysql_aurora.3.03.2". */ + public static readonly VER_3_03_2 = AuroraMysqlEngineVersion.builtIn_8_0('3.03.2'); + /** Version "8.0.mysql_aurora.3.03.3". */ + public static readonly VER_3_03_3 = AuroraMysqlEngineVersion.builtIn_8_0('3.03.3'); /** Version "8.0.mysql_aurora.3.04.0". */ public static readonly VER_3_04_0 = AuroraMysqlEngineVersion.builtIn_8_0('3.04.0'); /** Version "8.0.mysql_aurora.3.04.1". */ public static readonly VER_3_04_1 = AuroraMysqlEngineVersion.builtIn_8_0('3.04.1'); - /** Version "8.0.mysql_aurora.3.05.0". */ + /** + * Version "8.0.mysql_aurora.3.05.0" + * @deprecated Aurora MySQL 8.0.mysql_aurora.3.05.0 is no longer supported by Amazon RDS. + */ public static readonly VER_3_05_0 = AuroraMysqlEngineVersion.builtIn_8_0('3.05.0'); - /** Version "8.0.mysql_aurora.3.05.1". */ + /** + * Version "8.0.mysql_aurora.3.05.1" + * @deprecated Aurora MySQL 8.0.mysql_aurora.3.05.1 is no longer supported by Amazon RDS. + */ public static readonly VER_3_05_1 = AuroraMysqlEngineVersion.builtIn_8_0('3.05.1'); /** Version "8.0.mysql_aurora.3.05.2". */ public static readonly VER_3_05_2 = AuroraMysqlEngineVersion.builtIn_8_0('3.05.2'); + /** Version "8.0.mysql_aurora.3.06.0". */ + public static readonly VER_3_06_0 = AuroraMysqlEngineVersion.builtIn_8_0('3.06.0'); /** * Create a new AuroraMysqlEngineVersion with an arbitrary version. @@ -689,6 +718,11 @@ export class AuroraPostgresEngineVersion { * @deprecated Version 9.6.19 is no longer supported by Amazon RDS. */ public static readonly VER_9_6_19 = AuroraPostgresEngineVersion.of('9.6.19', '9.6'); + /** + * Version "9.6.22" + * @deprecated Version 9.6.22 is no longer supported by Amazon RDS. + */ + public static readonly VER_9_6_22 = AuroraPostgresEngineVersion.of('9.6.22', '9.6'); /** * Version "10.4". * @deprecated Version 10.4 is no longer supported by Amazon RDS. @@ -806,15 +840,30 @@ export class AuroraPostgresEngineVersion { * @deprecated Version 11.15 is no longer supported by Amazon RDS. */ public static readonly VER_11_15 = AuroraPostgresEngineVersion.of('11.15', '11', { s3Import: true, s3Export: true }); - /** Version "11.16". */ + /** + * Version "11.16" + * @deprecated Version 11.16 is no longer supported by Amazon RDS. + */ public static readonly VER_11_16 = AuroraPostgresEngineVersion.of('11.16', '11', { s3Import: true, s3Export: true }); - /** Version "11.17". */ + /** + * Version "11.17" + * @deprecated Version 11.17 is no longer supported by Amazon RDS. + */ public static readonly VER_11_17 = AuroraPostgresEngineVersion.of('11.17', '11', { s3Import: true, s3Export: true }); - /** Version "11.18". */ + /** + * Version "11.18" + * @deprecated Version 11.18 is no longer supported by Amazon RDS. + */ public static readonly VER_11_18 = AuroraPostgresEngineVersion.of('11.18', '11', { s3Import: true, s3Export: true }); - /** Version "11.19". */ + /** + * Version "11.19" + * @deprecated Version 11.19 is no longer supported by Amazon RDS. + */ public static readonly VER_11_19 = AuroraPostgresEngineVersion.of('11.19', '11', { s3Import: true, s3Export: true }); - /** Version "11.20". */ + /** + * Version "11.20" + * @deprecated Version 11.20 is no longer supported by Amazon RDS. + */ public static readonly VER_11_20 = AuroraPostgresEngineVersion.of('11.20', '11', { s3Import: true, s3Export: true }); /** Version "11.21". */ public static readonly VER_11_21 = AuroraPostgresEngineVersion.of('11.21', '11', { s3Import: true, s3Export: true }); @@ -895,10 +944,7 @@ export class AuroraPostgresEngineVersion { public static readonly VER_13_13 = AuroraPostgresEngineVersion.of('13.13', '13', { s3Import: true, s3Export: true }); /** Version "14.3". */ public static readonly VER_14_3 = AuroraPostgresEngineVersion.of('14.3', '14', { s3Import: true, s3Export: true }); - /** - * Version "14.4". - * @deprecated Version 14.4 is no longer supported by Amazon RDS. - */ + /** Version "14.4". */ public static readonly VER_14_4 = AuroraPostgresEngineVersion.of('14.4', '14', { s3Import: true, s3Export: true }); /** Version "14.5". */ public static readonly VER_14_5 = AuroraPostgresEngineVersion.of('14.5', '14', { s3Import: true, s3Export: true }); @@ -920,7 +966,10 @@ export class AuroraPostgresEngineVersion { public static readonly VER_15_4 = AuroraPostgresEngineVersion.of('15.4', '15', { s3Import: true, s3Export: true }); /** Version "15.5". */ public static readonly VER_15_5 = AuroraPostgresEngineVersion.of('15.5', '15', { s3Import: true, s3Export: true }); - /** Version "16.0". */ + /** + * Version "16.0" + * @deprecated Version 16.0 is no longer supported by Amazon RDS. + */ public static readonly VER_16_0 = AuroraPostgresEngineVersion.of('16.0', '16', { s3Import: true, s3Export: true }); /** Version "16.1". */ public static readonly VER_16_1 = AuroraPostgresEngineVersion.of('16.1', '16', { s3Import: true, s3Export: true }); 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 7436dc116ac83..3774347e21e61 100644 --- a/packages/aws-cdk-lib/aws-rds/lib/instance-engine.ts +++ b/packages/aws-cdk-lib/aws-rds/lib/instance-engine.ts @@ -288,53 +288,129 @@ export class MariaDbEngineVersion { * @deprecated MariaDB 10.2 is no longer supported by Amazon RDS. */ public static readonly VER_10_2_41 = MariaDbEngineVersion.of('10.2.41', '10.2'); + /** + * Version "10.2.43" + * @deprecated MariaDB 10.2.43 is no longer supported by Amazon RDS. + */ + public static readonly VER_10_2_43 = MariaDbEngineVersion.of('10.2.43', '10.2'); + /** + * Version "10.2.44" + * @deprecated MariaDB 10.2.44 is no longer supported by Amazon RDS. + */ + public static readonly VER_10_2_44 = MariaDbEngineVersion.of('10.2.44', '10.2'); - /** Version "10.3" (only a major version, without a specific minor version). */ + /** + * Version "10.3" (only a major version, without a specific minor version). + * @deprecated MariaDB 10.3 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3 = MariaDbEngineVersion.of('10.3', '10.3'); - /** Version "10.3.8". */ + /** + * Version "10.3.8" + * @deprecated MariaDB 10.3.8 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_8 = MariaDbEngineVersion.of('10.3.8', '10.3'); - /** Version "10.3.13". */ + /** + * Version "10.3.13" + * @deprecated MariaDB 10.3.13 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_13 = MariaDbEngineVersion.of('10.3.13', '10.3'); - /** Version "10.3.20". */ + /** + * Version "10.3.20" + * @deprecated MariaDB 10.3.20 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_20 = MariaDbEngineVersion.of('10.3.20', '10.3'); - /** Version "10.3.23". */ + /** + * Version "10.3.23" + * @deprecated MariaDB 10.3.23 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_23 = MariaDbEngineVersion.of('10.3.23', '10.3'); - /** Version "10.3.28". */ + /** + * Version "10.3.28" + * @deprecated MariaDB 10.3.28 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_28 = MariaDbEngineVersion.of('10.3.28', '10.3'); - /** Version "10.3.31". */ + /** + * Version "10.3.31" + * @deprecated MariaDB 10.3.31 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_31 = MariaDbEngineVersion.of('10.3.31', '10.3'); - /** Version "10.3.32". */ + /** + * Version "10.3.32" + * @deprecated MariaDB 10.3.32 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_32 = MariaDbEngineVersion.of('10.3.32', '10.3'); - /** Version "10.3.34". */ + /** + * Version "10.3.34" + * @deprecated MariaDB 10.3.34 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_34 = MariaDbEngineVersion.of('10.3.34', '10.3'); - /** Version "10.3.35". */ + /** + * Version "10.3.35" + * @deprecated MariaDB 10.3.35 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_35 = MariaDbEngineVersion.of('10.3.35', '10.3'); - /** Version "10.3.36". */ + /** + * Version "10.3.36" + * @deprecated MariaDB 10.3.36 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_36 = MariaDbEngineVersion.of('10.3.36', '10.3'); - /** Version "10.3.37". */ + /** + * Version "10.3.37" + * @deprecated MariaDB 10.3.37 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_37 = MariaDbEngineVersion.of('10.3.37', '10.3'); - /** Version "10.3.38". */ + /** + * Version "10.3.38" + * @deprecated MariaDB 10.3.38 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_38 = MariaDbEngineVersion.of('10.3.38', '10.3'); - /** Version "10.3.39". */ + /** + * Version "10.3.39" + * @deprecated MariaDB 10.3.39 is no longer supported by Amazon RDS. + */ public static readonly VER_10_3_39 = MariaDbEngineVersion.of('10.3.39', '10.3'); /** Version "10.4" (only a major version, without a specific minor version). */ public static readonly VER_10_4 = MariaDbEngineVersion.of('10.4', '10.4'); - /** Version "10.4.8". */ + /** + * Version "10.4.8" + * @deprecated MariaDB 10.4.8 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_8 = MariaDbEngineVersion.of('10.4.8', '10.4'); - /** Version "10.4.13". */ + /** + * Version "10.4.13" + * @deprecated MariaDB 10.4.13 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_13 = MariaDbEngineVersion.of('10.4.13', '10.4'); - /** Version "10.4.18". */ + /** + * Version "10.4.18" + * @deprecated MariaDB 10.4.18 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_18 = MariaDbEngineVersion.of('10.4.18', '10.4'); - /** Version "10.4.21". */ + /** + * Version "10.4.21" + * @deprecated MariaDB 10.4.21 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_21 = MariaDbEngineVersion.of('10.4.21', '10.4'); - /** Version "10.4.22". */ + /** + * Version "10.4.22" + * @deprecated MariaDB 10.4.22 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_22 = MariaDbEngineVersion.of('10.4.22', '10.4'); - /** Version "10.4.24". */ + /** + * Version "10.4.24" + * @deprecated MariaDB 10.4.24 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_24 = MariaDbEngineVersion.of('10.4.24', '10.4'); - /** Version "10.4.25". */ + /** + * Version "10.4.25" + * @deprecated MariaDB 10.4.25 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_25 = MariaDbEngineVersion.of('10.4.25', '10.4'); - /** Version "10.4.26". */ + /** + * Version "10.4.26" + * @deprecated MariaDB 10.4.26 is no longer supported by Amazon RDS. + */ public static readonly VER_10_4_26 = MariaDbEngineVersion.of('10.4.26', '10.4'); /** Version "10.4.27". */ public static readonly VER_10_4_27 = MariaDbEngineVersion.of('10.4.27', '10.4') @@ -348,22 +424,45 @@ export class MariaDbEngineVersion { public static readonly VER_10_4_31 = MariaDbEngineVersion.of('10.4.31', '10.4') /** Version "10.4.32". */ public static readonly VER_10_4_32 = MariaDbEngineVersion.of('10.4.32', '10.4') + /** Version "10.4.33". */ + public static readonly VER_10_4_33 = MariaDbEngineVersion.of('10.4.33', '10.4'); /** Version "10.5" (only a major version, without a specific minor version). */ public static readonly VER_10_5 = MariaDbEngineVersion.of('10.5', '10.5'); - /** Version "10.5.8". */ + /** + * Version "10.5.8" + * @deprecated MariaDB 10.5.8 is no longer supported by Amazon RDS. + */ public static readonly VER_10_5_8 = MariaDbEngineVersion.of('10.5.8', '10.5'); - /** Version "10.5.9". */ + /** + * Version "10.5.9" + * @deprecated MariaDB 10.5.9 is no longer supported by Amazon RDS. + */ public static readonly VER_10_5_9 = MariaDbEngineVersion.of('10.5.9', '10.5'); - /** Version "10.5.12". */ + /** + * Version "10.5.12" + * @deprecated MariaDB 10.5.12 is no longer supported by Amazon RDS. + */ public static readonly VER_10_5_12 = MariaDbEngineVersion.of('10.5.12', '10.5'); - /** Version "10.5.13". */ + /** + * Version "10.5.13" + * @deprecated MariaDB 10.5.13 is no longer supported by Amazon RDS. + */ public static readonly VER_10_5_13 = MariaDbEngineVersion.of('10.5.13', '10.5'); - /** Version "10.5.15". */ + /** + * Version "10.5.15" + * @deprecated MariaDB 10.5.15 is no longer supported by Amazon RDS. + */ public static readonly VER_10_5_15 = MariaDbEngineVersion.of('10.5.15', '10.5'); - /** Version "10.5.16". */ + /** + * Version "10.5.16" + * @deprecated MariaDB 10.5.16 is no longer supported by Amazon RDS. + */ public static readonly VER_10_5_16 = MariaDbEngineVersion.of('10.5.16', '10.5'); - /** Version "10.5.17". */ + /** + * Version "10.5.17" + * @deprecated MariaDB 10.5.17 is no longer supported by Amazon RDS. + */ public static readonly VER_10_5_17 = MariaDbEngineVersion.of('10.5.17', '10.5'); /** Version "10.5.18". */ public static readonly VER_10_5_18 = MariaDbEngineVersion.of('10.5.18', '10.5'); @@ -377,14 +476,25 @@ export class MariaDbEngineVersion { public static readonly VER_10_5_22 = MariaDbEngineVersion.of('10.5.22', '10.5'); /** Version "10.5.23". */ public static readonly VER_10_5_23 = MariaDbEngineVersion.of('10.5.23', '10.5'); + /** Version "10.5.24". */ + public static readonly VER_10_5_24 = MariaDbEngineVersion.of('10.5.24', '10.5'); /** Version "10.6" (only a major version, without a specific minor version). */ public static readonly VER_10_6 = MariaDbEngineVersion.of('10.6', '10.6'); - /** Version "10.6.5". */ + /** + * Version "10.6.5" + * @deprecated MariaDB 10.6.5 is no longer supported by Amazon RDS. + */ public static readonly VER_10_6_5 = MariaDbEngineVersion.of('10.6.5', '10.6'); - /** Version "10.6.7". */ + /** + * Version "10.6.7" + * @deprecated MariaDB 10.6.7 is no longer supported by Amazon RDS. + */ public static readonly VER_10_6_7 = MariaDbEngineVersion.of('10.6.7', '10.6'); - /** Version "10.6.8". */ + /** + * Version "10.6.8" + * @deprecated MariaDB 10.6.8 is no longer supported by Amazon RDS. + */ public static readonly VER_10_6_8 = MariaDbEngineVersion.of('10.6.8', '10.6'); /** Version "10.6.10". */ public static readonly VER_10_6_10 = MariaDbEngineVersion.of('10.6.10', '10.6'); @@ -400,6 +510,8 @@ export class MariaDbEngineVersion { public static readonly VER_10_6_15 = MariaDbEngineVersion.of('10.6.15', '10.6'); /** Version "10.6.16". */ public static readonly VER_10_6_16 = MariaDbEngineVersion.of('10.6.16', '10.6'); + /** Version "10.6.17". */ + public static readonly VER_10_6_17 = MariaDbEngineVersion.of('10.6.17', '10.6'); /** Version "10.11" (only a major version, without a specific minor version). */ public static readonly VER_10_11 = MariaDbEngineVersion.of('10.11', '10.11'); @@ -409,6 +521,8 @@ export class MariaDbEngineVersion { public static readonly VER_10_11_5 = MariaDbEngineVersion.of('10.11.5', '10.11'); /** Version "10.11.6". */ public static readonly VER_10_11_6 = MariaDbEngineVersion.of('10.11.6', '10.11'); + /** Version "10.11.7". */ + public static readonly VER_10_11_7 = MariaDbEngineVersion.of('10.11.7', '10.11'); /** * Create a new MariaDbEngineVersion with an arbitrary version. @@ -487,6 +601,11 @@ export class MysqlEngineVersion { * @deprecated MySQL 5.5 is no longer supported by Amazon RDS. */ public static readonly VER_5_5_53 = MysqlEngineVersion.of('5.5.53', '5.5'); + /** + * Version "5.5.54" + * @deprecated MySQL 5.5.54 is no longer supported by Amazon RDS. + */ + public static readonly VER_5_5_54 = MysqlEngineVersion.of('5.5.54', '5.5'); /** * Version "5.5.57". * @deprecated MySQL 5.5 is no longer supported by Amazon RDS. @@ -571,37 +690,85 @@ export class MysqlEngineVersion { /** Version "5.7" (only a major version, without a specific minor version). */ public static readonly VER_5_7 = MysqlEngineVersion.of('5.7', '5.7'); - /** Version "5.7.16". */ + /** + * Version "5.7.16" + * @deprecated MySQL 5.7.16 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_16 = MysqlEngineVersion.of('5.7.16', '5.7'); - /** Version "5.7.17". */ + /** + * Version "5.7.17" + * @deprecated MySQL 5.7.17 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_17 = MysqlEngineVersion.of('5.7.17', '5.7'); - /** Version "5.7.19". */ + /** + * Version "5.7.19" + * @deprecated MySQL 5.7.19 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_19 = MysqlEngineVersion.of('5.7.19', '5.7'); - /** Version "5.7.21". */ + /** + * Version "5.7.21" + * @deprecated MySQL 5.7.21 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_21 = MysqlEngineVersion.of('5.7.21', '5.7'); - /** Version "5.7.22". */ + /** + * Version "5.7.22" + * @deprecated MySQL 5.7.22 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_22 = MysqlEngineVersion.of('5.7.22', '5.7'); - /** Version "5.7.23". */ + /** + * Version "5.7.23" + * @deprecated MySQL 5.7.23 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_23 = MysqlEngineVersion.of('5.7.23', '5.7'); - /** Version "5.7.24". */ + /** + * Version "5.7.24" + * @deprecated MySQL 5.7.24 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_24 = MysqlEngineVersion.of('5.7.24', '5.7'); - /** Version "5.7.25". */ + /** + * Version "5.7.25" + * @deprecated MySQL 5.7.25 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_25 = MysqlEngineVersion.of('5.7.25', '5.7'); - /** Version "5.7.26". */ + /** + * Version "5.7.26" + * @deprecated MySQL 5.7.26 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_26 = MysqlEngineVersion.of('5.7.26', '5.7'); - /** Version "5.7.28". */ + /** + * Version "5.7.28" + * @deprecated MySQL 5.7.28 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_28 = MysqlEngineVersion.of('5.7.28', '5.7'); - /** Version "5.7.30". */ + /** + * Version "5.7.30" + * @deprecated MySQL 5.7.30 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_30 = MysqlEngineVersion.of('5.7.30', '5.7'); - /** Version "5.7.31". */ + /** + * Version "5.7.31" + * @deprecated MySQL 5.7.31 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_31 = MysqlEngineVersion.of('5.7.31', '5.7'); - /** Version "5.7.33". */ + /** + * Version "5.7.33" + * @deprecated MySQL 5.7.33 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_33 = MysqlEngineVersion.of('5.7.33', '5.7'); - /** Version "5.7.34". */ + /** + * Version "5.7.34" + * @deprecated MySQL 5.7.34 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_34 = MysqlEngineVersion.of('5.7.34', '5.7'); - /** Version "5.7.35". */ + /** + * Version "5.7.35" + * @deprecated MySQL 5.7.35 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_35 = MysqlEngineVersion.of('5.7.35', '5.7'); - /** Version "5.7.36". */ + /** + * Version "5.7.36" + * @deprecated MySQL 5.7.36 is no longer supported by Amazon RDS. + */ public static readonly VER_5_7_36 = MysqlEngineVersion.of('5.7.36', '5.7'); /** Version "5.7.37". */ public static readonly VER_5_7_37 = MysqlEngineVersion.of('5.7.37', '5.7'); @@ -622,33 +789,77 @@ export class MysqlEngineVersion { /** Version "8.0" (only a major version, without a specific minor version). */ public static readonly VER_8_0 = MysqlEngineVersion.of('8.0', '8.0'); - /** Version "8.0.11". */ + /** + * Version "8.0.11" + * @deprecated MySQL 8.0.11 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_11 = MysqlEngineVersion.of('8.0.11', '8.0'); - /** Version "8.0.13". */ + /** + * Version "8.0.13" + * @deprecated MySQL 8.0.13 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_13 = MysqlEngineVersion.of('8.0.13', '8.0'); - /** Version "8.0.15". */ + /** + * Version "8.0.15" + * @deprecated MySQL 8.0.15 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_15 = MysqlEngineVersion.of('8.0.15', '8.0'); - /** Version "8.0.16". */ + /** + * Version "8.0.16" + * @deprecated MySQL 8.0.16 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_16 = MysqlEngineVersion.of('8.0.16', '8.0'); - /** Version "8.0.17". */ + /** + * Version "8.0.17" + * @deprecated MySQL 8.0.17 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_17 = MysqlEngineVersion.of('8.0.17', '8.0'); - /** Version "8.0.19". */ + /** + * Version "8.0.19" + * @deprecated MySQL 8.0.19 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_19 = MysqlEngineVersion.of('8.0.19', '8.0'); - /** Version "8.0.20 ". */ + /** + * Version "8.0.20" + * @deprecated MySQL 8.0.20 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_20 = MysqlEngineVersion.of('8.0.20', '8.0'); - /** Version "8.0.21 ". */ + /** + * Version "8.0.21" + * @deprecated MySQL 8.0.21 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_21 = MysqlEngineVersion.of('8.0.21', '8.0'); - /** Version "8.0.23". */ + /** + * Version "8.0.23" + * @deprecated MySQL 8.0.23 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_23 = MysqlEngineVersion.of('8.0.23', '8.0'); - /** Version "8.0.25". */ + /** + * Version "8.0.25" + * @deprecated MySQL 8.0.25 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_25 = MysqlEngineVersion.of('8.0.25', '8.0'); - /** Version "8.0.26". */ + /** + * Version "8.0.26" + * @deprecated MySQL 8.0.26 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_26 = MysqlEngineVersion.of('8.0.26', '8.0'); - /** Version "8.0.27". */ + /** + * Version "8.0.27" + * @deprecated MySQL 8.0.27 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_27 = MysqlEngineVersion.of('8.0.27', '8.0'); /** Version "8.0.28". */ public static readonly VER_8_0_28 = MysqlEngineVersion.of('8.0.28', '8.0'); - /** Version "8.0.30". */ + /** + * Version "8.0.29" + * @deprecated MySQL 8.0.29 is no longer supported by Amazon RDS. + */ + public static readonly VER_8_0_29 = MysqlEngineVersion.of('8.0.29', '8.0'); + /** + * Version "8.0.30" + * @deprecated MySQL 8.0.30 is no longer supported by Amazon RDS. + */ public static readonly VER_8_0_30 = MysqlEngineVersion.of('8.0.30', '8.0'); /** Version "8.0.31". */ public static readonly VER_8_0_31 = MysqlEngineVersion.of('8.0.31', '8.0'); @@ -660,6 +871,8 @@ export class MysqlEngineVersion { public static readonly VER_8_0_34 = MysqlEngineVersion.of('8.0.34', '8.0'); /** Version "8.0.35". */ public static readonly VER_8_0_35 = MysqlEngineVersion.of('8.0.35', '8.0'); + /** Version "8.0.36". */ + public static readonly VER_8_0_36 = MysqlEngineVersion.of('8.0.36', '8.0'); /** * Create a new MysqlEngineVersion with an arbitrary version. @@ -1131,7 +1344,10 @@ export class PostgresEngineVersion { * @deprecated PostgreSQL 11.15 is no longer supported by Amazon RDS. */ public static readonly VER_11_15 = PostgresEngineVersion.of('11.15', '11', { s3Import: true, s3Export: true }); - /** Version "11.16". */ + /** + * Version "11.16" + * @deprecated PostgreSQL 11.16 is no longer supported by Amazon RDS. + */ public static readonly VER_11_16 = PostgresEngineVersion.of('11.16', '11', { s3Import: true, s3Export: true }); /** Version "11.17". */ public static readonly VER_11_17 = PostgresEngineVersion.of('11.17', '11', { s3Import: true, s3Export: true }); @@ -1193,7 +1409,10 @@ export class PostgresEngineVersion { * @deprecated PostgreSQL 12.10 is no longer supported by Amazon RDS. */ public static readonly VER_12_10 = PostgresEngineVersion.of('12.10', '12', { s3Import: true, s3Export: true }); - /** Version "12.11". */ + /** + * Version "12.11" + * @deprecated PostgreSQL 12.11 is no longer supported by Amazon RDS. + */ public static readonly VER_12_11 = PostgresEngineVersion.of('12.11', '12', { s3Import: true, s3Export: true }); /** Version "12.12". */ public static readonly VER_12_12 = PostgresEngineVersion.of('12.12', '12', { s3Import: true, s3Export: true }); @@ -1207,6 +1426,8 @@ export class PostgresEngineVersion { public static readonly VER_12_16 = PostgresEngineVersion.of('12.16', '12', { s3Import: true, s3Export: true }); /** Version "12.17". */ public static readonly VER_12_17 = PostgresEngineVersion.of('12.17', '12', { s3Import: true, s3Export: true }); + /** Version "12.18". */ + public static readonly VER_12_18 = PostgresEngineVersion.of('12.18', '12', { s3Import: true, s3Export: true }); /** Version "13" (only a major version, without a specific minor version). */ public static readonly VER_13 = PostgresEngineVersion.of('13', '13', { s3Import: true, s3Export: true }); @@ -1240,7 +1461,10 @@ export class PostgresEngineVersion { * @deprecated PostgreSQL 13.6 is no longer supported by Amazon RDS. */ public static readonly VER_13_6 = PostgresEngineVersion.of('13.6', '13', { s3Import: true, s3Export: true }); - /** Version "13.7". */ + /** + * Version "13.7" + * @deprecated PostgreSQL 13.7 is no longer supported by Amazon RDS. + */ public static readonly VER_13_7 = PostgresEngineVersion.of('13.7', '13', { s3Import: true, s3Export: true }); /** Version "13.8". */ public static readonly VER_13_8 = PostgresEngineVersion.of('13.8', '13', { s3Import: true, s3Export: true }); @@ -1254,6 +1478,8 @@ export class PostgresEngineVersion { public static readonly VER_13_12 = PostgresEngineVersion.of('13.12', '13', { s3Import: true, s3Export: true }); /** Version "13.13". */ public static readonly VER_13_13 = PostgresEngineVersion.of('13.13', '13', { s3Import: true, s3Export: true }); + /** Version "13.14". */ + public static readonly VER_13_14 = PostgresEngineVersion.of('13.14', '13', { s3Import: true, s3Export: true }); /** Version "14" (only a major version, without a specific minor version). */ public static readonly VER_14 = PostgresEngineVersion.of('14', '14', { s3Import: true, s3Export: true }); @@ -1267,9 +1493,15 @@ export class PostgresEngineVersion { * @deprecated PostgreSQL 14.2 is no longer supported by Amazon RDS. */ public static readonly VER_14_2 = PostgresEngineVersion.of('14.2', '14', { s3Import: true, s3Export: true }); - /** Version "14.3". */ + /** + * Version "14.3" + * @deprecated PostgreSQL 14.3 is no longer supported by Amazon RDS. + */ public static readonly VER_14_3 = PostgresEngineVersion.of('14.3', '14', { s3Import: true, s3Export: true }); - /** Version "14.4". */ + /** + * Version "14.4" + * @deprecated PostgreSQL 14.4 is no longer supported by Amazon RDS. + */ public static readonly VER_14_4 = PostgresEngineVersion.of('14.4', '14', { s3Import: true, s3Export: true }); /** Version "14.5". */ public static readonly VER_14_5 = PostgresEngineVersion.of('14.5', '14', { s3Import: true, s3Export: true }); @@ -1283,6 +1515,8 @@ export class PostgresEngineVersion { public static readonly VER_14_9 = PostgresEngineVersion.of('14.9', '14', { s3Import: true, s3Export: true }); /** Version "14.10". */ public static readonly VER_14_10 = PostgresEngineVersion.of('14.10', '14', { s3Import: true, s3Export: true }); + /** Version "14.11". */ + public static readonly VER_14_11 = PostgresEngineVersion.of('14.11', '14', { s3Import: true, s3Export: true }); /** Version "15" (only a major version, without a specific minor version). */ public static readonly VER_15 = PostgresEngineVersion.of('15', '15', { s3Import: true, s3Export: true }); @@ -1294,11 +1528,15 @@ export class PostgresEngineVersion { public static readonly VER_15_4 = PostgresEngineVersion.of('15.4', '15', { s3Import: true, s3Export: true }); /** Version "15.5". */ public static readonly VER_15_5 = PostgresEngineVersion.of('15.5', '15', { s3Import: true, s3Export: true }); + /** Version "15.6". */ + public static readonly VER_15_6 = PostgresEngineVersion.of('15.6', '15', { s3Import: true, s3Export: true }); /** Version "16" (only a major version, without a specific minor version). */ public static readonly VER_16 = PostgresEngineVersion.of('16', '16', { s3Import: true, s3Export: true }); /** Version "16.1". */ public static readonly VER_16_1 = PostgresEngineVersion.of('16.1', '16', { s3Import: true, s3Export: true }); + /** Version "16.2". */ + public static readonly VER_16_2 = PostgresEngineVersion.of('16.2', '16', { s3Import: true, s3Export: true }); /** * Create a new PostgresEngineVersion with an arbitrary version. @@ -1451,115 +1689,277 @@ export class OracleLegacyEngineVersion { * - `DatabaseInstanceEngine.oracleEeCdb`. */ export class OracleEngineVersion { - /** Version "12.1" (only a major version, without a specific minor version). */ + /** + * Version "12.1" (only a major version, without a specific minor version). + * @deprecated Oracle 12.1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1 = OracleEngineVersion.of('12.1', '12.1'); - /** Version "12.1.0.2.v1". */ + /** + * Version "12.1.0.2.v1" + * @deprecated Oracle 12.1.0.2.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V1 = OracleEngineVersion.of('12.1.0.2.v1', '12.1'); - /** Version "12.1.0.2.v2". */ + /** + * Version "12.1.0.2.v2" + * @deprecated Oracle 12.1.0.2.v2 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V2 = OracleEngineVersion.of('12.1.0.2.v2', '12.1'); - /** Version "12.1.0.2.v3". */ + /** + * Version "12.1.0.2.v3" + * @deprecated Oracle 12.1.0.2.v3 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V3 = OracleEngineVersion.of('12.1.0.2.v3', '12.1'); - /** Version "12.1.0.2.v4". */ + /** + * Version "12.1.0.2.v4" + * @deprecated Oracle 12.1.0.2.v4 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V4 = OracleEngineVersion.of('12.1.0.2.v4', '12.1'); - /** Version "12.1.0.2.v5". */ + /** + * Version "12.1.0.2.v5" + * @deprecated Oracle 12.1.0.2.v5 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V5 = OracleEngineVersion.of('12.1.0.2.v5', '12.1'); - /** Version "12.1.0.2.v6". */ + /** + * Version "12.1.0.2.v6" + * @deprecated Oracle 12.1.0.2.v6 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V6 = OracleEngineVersion.of('12.1.0.2.v6', '12.1'); - /** Version "12.1.0.2.v7". */ + /** + * Version "12.1.0.2.v7" + * @deprecated Oracle 12.1.0.2.v7 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V7 = OracleEngineVersion.of('12.1.0.2.v7', '12.1'); - /** Version "12.1.0.2.v8". */ + /** + * Version "12.1.0.2.v8" + * @deprecated Oracle 12.1.0.2.v8 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V8 = OracleEngineVersion.of('12.1.0.2.v8', '12.1'); - /** Version "12.1.0.2.v9". */ + /** + * Version "12.1.0.2.v9" + * @deprecated Oracle 12.1.0.2.v9 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V9 = OracleEngineVersion.of('12.1.0.2.v9', '12.1'); - /** Version "12.1.0.2.v10". */ + /** + * Version "12.1.0.2.v10" + * @deprecated Oracle 12.1.0.2.v10 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V10 = OracleEngineVersion.of('12.1.0.2.v10', '12.1'); - /** Version "12.1.0.2.v11". */ + /** + * Version "12.1.0.2.v11" + * @deprecated Oracle 12.1.0.2.v11 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V11 = OracleEngineVersion.of('12.1.0.2.v11', '12.1'); - /** Version "12.1.0.2.v12". */ + /** + * Version "12.1.0.2.v12" + * @deprecated Oracle 12.1.0.2.v12 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V12 = OracleEngineVersion.of('12.1.0.2.v12', '12.1'); - /** Version "12.1.0.2.v13". */ + /** + * Version "12.1.0.2.v13" + * @deprecated Oracle 12.1.0.2.v13 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V13 = OracleEngineVersion.of('12.1.0.2.v13', '12.1'); - /** Version "12.1.0.2.v14". */ + /** + * Version "12.1.0.2.v14" + * @deprecated Oracle 12.1.0.2.v14 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V14 = OracleEngineVersion.of('12.1.0.2.v14', '12.1'); - /** Version "12.1.0.2.v15". */ + /** + * Version "12.1.0.2.v15" + * @deprecated Oracle 12.1.0.2.v15 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V15 = OracleEngineVersion.of('12.1.0.2.v15', '12.1'); - /** Version "12.1.0.2.v16". */ + /** + * Version "12.1.0.2.v16" + * @deprecated Oracle 12.1.0.2.v16 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V16 = OracleEngineVersion.of('12.1.0.2.v16', '12.1'); - /** Version "12.1.0.2.v17". */ + /** + * Version "12.1.0.2.v17" + * @deprecated Oracle 12.1.0.2.v17 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V17 = OracleEngineVersion.of('12.1.0.2.v17', '12.1'); - /** Version "12.1.0.2.v18". */ + /** + * Version "12.1.0.2.v18" + * @deprecated Oracle 12.1.0.2.v18 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V18 = OracleEngineVersion.of('12.1.0.2.v18', '12.1'); - /** Version "12.1.0.2.v19". */ + /** + * Version "12.1.0.2.v19" + * @deprecated Oracle 12.1.0.2.v19 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V19 = OracleEngineVersion.of('12.1.0.2.v19', '12.1'); - /** Version "12.1.0.2.v20". */ + /** + * Version "12.1.0.2.v20" + * @deprecated Oracle 12.1.0.2.v20 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V20 = OracleEngineVersion.of('12.1.0.2.v20', '12.1'); - /** Version "12.1.0.2.v21". */ + /** + * Version "12.1.0.2.v21" + * @deprecated Oracle 12.1.0.2.v21 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V21 = OracleEngineVersion.of('12.1.0.2.v21', '12.1'); - /** Version "12.1.0.2.v22". */ + /** + * Version "12.1.0.2.v22" + * @deprecated Oracle 12.1.0.2.v22 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V22 = OracleEngineVersion.of('12.1.0.2.v22', '12.1'); - /** Version "12.1.0.2.v23". */ + /** + * Version "12.1.0.2.v23" + * @deprecated Oracle 12.1.0.2.v23 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V23 = OracleEngineVersion.of('12.1.0.2.v23', '12.1'); - /** Version "12.1.0.2.v24". */ + /** + * Version "12.1.0.2.v24" + * @deprecated Oracle 12.1.0.2.v24 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V24 = OracleEngineVersion.of('12.1.0.2.v24', '12.1'); - /** Version "12.1.0.2.v25". */ + /** + * Version "12.1.0.2.v25" + * @deprecated Oracle 12.1.0.2.v25 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V25 = OracleEngineVersion.of('12.1.0.2.v25', '12.1'); - /** Version "12.1.0.2.v26". */ + /** + * Version "12.1.0.2.v26" + * @deprecated Oracle 12.1.0.2.v26 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V26 = OracleEngineVersion.of('12.1.0.2.v26', '12.1'); - /** Version "12.1.0.2.v27". */ + /** + * Version "12.1.0.2.v27" + * @deprecated Oracle 12.1.0.2.v27 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V27 = OracleEngineVersion.of('12.1.0.2.v27', '12.1'); - /** Version "12.1.0.2.v28". */ + /** + * Version "12.1.0.2.v28" + * @deprecated Oracle 12.1.0.2.v28 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V28 = OracleEngineVersion.of('12.1.0.2.v28', '12.1'); - /** Version "12.1.0.2.v29". */ + /** + * Version "12.1.0.2.v29" + * @deprecated Oracle 12.1.0.2.v29 is no longer supported by Amazon RDS. + */ public static readonly VER_12_1_0_2_V29 = OracleEngineVersion.of('12.1.0.2.v29', '12.1'); - /** Version "12.2" (only a major version, without a specific minor version). */ + /** + * Version "12.1" (only a major version, without a specific minor version). + * @deprecated Oracle 12.1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2 = OracleEngineVersion.of('12.2', '12.2'); - /** Version "12.2.0.1.ru-2018-10.rur-2018-10.r1". */ + /** + * Version "12.2.0.1.ru-2018-10.rur-2018-10.r1" + * @deprecated Oracle 12.2.0.1.ru-2018-10.rur-2018-10.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2018_10_R1 = OracleEngineVersion.of('12.2.0.1.ru-2018-10.rur-2018-10.r1', '12.2'); - /** Version "12.2.0.1.ru-2019-01.rur-2019-01.r1". */ + /** + * Version "12.2.0.1.ru-2019-01.rur-2019-01.r1" + * @deprecated Oracle 12.2.0.1.ru-2019-01.rur-2019-01.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2019_01_R1 = OracleEngineVersion.of('12.2.0.1.ru-2019-01.rur-2019-01.r1', '12.2'); - /** Version "12.2.0.1.ru-2019-04.rur-2019-04.r1". */ + /** + * Version "12.2.0.1.ru-2019-04.rur-2019-04.r1" + * @deprecated Oracle 12.2.0.1.ru-2019-04.rur-2019-04.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2019_04_R1 = OracleEngineVersion.of('12.2.0.1.ru-2019-04.rur-2019-04.r1', '12.2'); - /** Version "12.2.0.1.ru-2019-07.rur-2019-07.r1". */ + /** + * Version "12.2.0.1.ru-2019-07.rur-2019-07.r1" + * @deprecated Oracle 12.2.0.1.ru-2019-07.rur-2019-07.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2019_07_R1 = OracleEngineVersion.of('12.2.0.1.ru-2019-07.rur-2019-07.r1', '12.2'); - /** Version "12.2.0.1.ru-2019-10.rur-2019-10.r1". */ + /** + * Version "12.2.0.1.ru-2019-10.rur-2019-10.r1" + * @deprecated Oracle 12.2.0.1.ru-2019-10.rur-2019-10.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2019_10_R1 = OracleEngineVersion.of('12.2.0.1.ru-2019-10.rur-2019-10.r1', '12.2'); - /** Version "12.2.0.1.ru-2020-01.rur-2020-01.r1". */ + /** + * Version "12.2.0.1.ru-2020-01.rur-2020-01.r1" + * @deprecated Oracle 12.2.0.1.ru-2020-01.rur-2020-01.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2020_01_R1 = OracleEngineVersion.of('12.2.0.1.ru-2020-01.rur-2020-01.r1', '12.2'); - /** Version "12.2.0.1.ru-2020-04.rur-2020-04.r1". */ + /** + * Version "12.2.0.1.ru-2020-04.rur-2020-04.r1" + * @deprecated Oracle 12.2.0.1.ru-2020-04.rur-2020-04.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2020_04_R1 = OracleEngineVersion.of('12.2.0.1.ru-2020-04.rur-2020-04.r1', '12.2'); - /** Version "12.2.0.1.ru-2020-07.rur-2020-07.r1". */ + /** + * Version "12.2.0.1.ru-2020-07.rur-2020-07.r1" + * @deprecated Oracle 12.2.0.1.ru-2020-07.rur-2020-07.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2020_07_R1 = OracleEngineVersion.of('12.2.0.1.ru-2020-07.rur-2020-07.r1', '12.2'); - /** Version "12.2.0.1.ru-2021-10.rur-2020-10.r1". */ + /** + * Version "12.2.0.1.ru-2021-10.rur-2020-10.r1" + * @deprecated Oracle 12.2.0.1.ru-2021-10.rur-2020-10.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2020_10_R1 = OracleEngineVersion.of('12.2.0.1.ru-2020-10.rur-2020-10.r1', '12.2'); - /** Version "12.2.0.1.ru-2021-01.rur-2021-01.r1". */ + /** + * Version "12.2.0.1.ru-2021-01.rur-2021-01.r1" + * @deprecated Oracle 12.2.0.1.ru-2021-01.rur-2021-01.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2021_01_R1 = OracleEngineVersion.of('12.2.0.1.ru-2021-01.rur-2021-01.r1', '12.2'); - /** Version "12.2.0.1.ru-2021-04.rur-2021-04.r1". */ + /** + * Version "12.2.0.1.ru-2021-04.rur-2021-04.r1" + * @deprecated Oracle 12.2.0.1.ru-2021-04.rur-2021-04.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2021_04_R1 = OracleEngineVersion.of('12.2.0.1.ru-2021-04.rur-2021-04.r1', '12.2'); - /** Version "12.2.0.1.ru-2021-07.rur-2021-07.r1". */ + /** + * Version "12.2.0.1.ru-2021-07.rur-2021-07.r1" + * @deprecated Oracle 12.2.0.1.ru-2021-07.rur-2021-07.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2021_07_R1 = OracleEngineVersion.of('12.2.0.1.ru-2021-07.rur-2021-07.r1', '12.2'); - /** Version "12.2.0.1.ru-2021-10.rur-2021-10.r1". */ + /** + * Version "12.2.0.1.ru-2021-10.rur-2021-10.r1" + * @deprecated Oracle 12.2.0.1.ru-2021-10.rur-2021-10.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2021_10_R1 = OracleEngineVersion.of('12.2.0.1.ru-2021-10.rur-2021-10.r1', '12.2'); - /** Version "12.2.0.1.ru-2022-01.rur-2022-01.r1". */ + /** + * Version "12.2.0.1.ru-2022-01.rur-2022-01.r1" + * @deprecated Oracle 12.2.0.1.ru-2022-01.rur-2022-01.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_2_0_1_2022_01_R1 = OracleEngineVersion.of('12.2.0.1.ru-2022-01.rur-2022-01.r1', '12.2'); - /** Version "18" (only a major version, without a specific minor version). */ + /** + * Version "18" (only a major version, without a specific minor version). + * @deprecated Oracle 18 is no longer supported by Amazon RDS. + */ public static readonly VER_18 = OracleEngineVersion.of('18', '18'); - /** Version "18.0.0.0.ru-2019-07.rur-2019-07.r1". */ + /** + * Version "18.0.0.0.ru-2019-07.rur-2019-07.r1" + * @deprecated Oracle 18.0.0.0.ru-2019-07.rur-2019-07.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2019_07_R1 = OracleEngineVersion.of('18.0.0.0.ru-2019-07.rur-2019-07.r1', '18'); - /** Version "18.0.0.0.ru-2019-10.rur-2019-10.r1". */ + /** + * Version "18.0.0.0.ru-2019-10.rur-2019-10.r1" + * @deprecated Oracle 18.0.0.0.ru-2019-10.rur-2019-10.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2019_10_R1 = OracleEngineVersion.of('18.0.0.0.ru-2019-10.rur-2019-10.r1', '18'); - /** Version "18.0.0.0.ru-2020-01.rur-2020-01.r1". */ + /** + * Version "18.0.0.0.ru-2020-01.rur-2020-01.r1" + * @deprecated Oracle 18.0.0.0.ru-2020-01.rur-2020-01.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2020_01_R1 = OracleEngineVersion.of('18.0.0.0.ru-2020-01.rur-2020-01.r1', '18'); - /** Version "18.0.0.0.ru-2020-04.rur-2020-04.r1". */ + /** + * Version "18.0.0.0.ru-2020-04.rur-2020-04.r1" + * @deprecated Oracle 18.0.0.0.ru-2020-04.rur-2020-04.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2020_04_R1 = OracleEngineVersion.of('18.0.0.0.ru-2020-04.rur-2020-04.r1', '18'); - /** Version "18.0.0.0.ru-2020-07.rur-2020-07.r1". */ + /** + * Version "18.0.0.0.ru-2020-07.rur-2020-07.r1" + * @deprecated Oracle 18.0.0.0.ru-2020-07.rur-2020-07.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2020_07_R1 = OracleEngineVersion.of('18.0.0.0.ru-2020-07.rur-2020-07.r1', '18'); - /** Version "18.0.0.0.ru-2020-10.rur-2020-10.r1". */ + /** + * Version "18.0.0.0.ru-2020-10.rur-2020-10.r1" + * @deprecated Oracle 18.0.0.0.ru-2020-10.rur-2020-10.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2020_10_R1 = OracleEngineVersion.of('18.0.0.0.ru-2020-10.rur-2020-10.r1', '18'); - /** Version "18.0.0.0.ru-2021-01.rur-2021-01.r1". */ + /** + * Version "18.0.0.0.ru-2021-01.rur-2021-01.r1" + * @deprecated Oracle 18.0.0.0.ru-2021-01.rur-2021-01.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2021_01_R1 = OracleEngineVersion.of('18.0.0.0.ru-2021-01.rur-2021-01.r1', '18'); - /** Version "18.0.0.0.ru-2021-04.rur-2021-04.r1". */ + /** + * Version "18.0.0.0.ru-2021-04.rur-2021-04.r1" + * @deprecated Oracle 18.0.0.0.ru-2021-04.rur-2021-04.r1 is no longer supported by Amazon RDS. + */ public static readonly VER_18_0_0_0_2021_04_R1 = OracleEngineVersion.of('18.0.0.0.ru-2021-04.rur-2021-04.r1', '18'); /** Version "19" (only a major version, without a specific minor version). */ @@ -1596,12 +1996,16 @@ export class OracleEngineVersion { public static readonly VER_19_0_0_0_2022_10_R1 = OracleEngineVersion.of('19.0.0.0.ru-2022-10.rur-2022-10.r1', '19'); /** Version "19.0.0.0.ru-2023-01.rur-2023-01.r1". */ public static readonly VER_19_0_0_0_2023_01_R1 = OracleEngineVersion.of('19.0.0.0.ru-2023-01.rur-2023-01.r1', '19'); + /** Version "19.0.0.0.ru-2023-01.rur-2023-01.r2". */ + public static readonly VER_19_0_0_0_2023_01_R2 = OracleEngineVersion.of('19.0.0.0.ru-2023-01.rur-2023-01.r2', '19'); /** Version "19.0.0.0.ru-2023-04.rur-2023-04.r1". */ public static readonly VER_19_0_0_0_2023_04_R1 = OracleEngineVersion.of('19.0.0.0.ru-2023-04.rur-2023-04.r1', '19'); /** Version "19.0.0.0.ru-2023-07.rur-2023-07.r1" */ public static readonly VER_19_0_0_0_2023_07_R1 = OracleEngineVersion.of('19.0.0.0.ru-2023-07.rur-2023-07.r1', '19'); /** Version "19.0.0.0.ru-2023-10.rur-2023-10.r1" */ public static readonly VER_19_0_0_0_2023_10_R1 = OracleEngineVersion.of('19.0.0.0.ru-2023-10.rur-2023-10.r1', '19'); + /** Version "19.0.0.0.ru-2024-01.rur-2024-01.r1". */ + public static readonly VER_19_0_0_0_2024_01_R1 = OracleEngineVersion.of('19.0.0.0.ru-2024-01.rur-2024-01.r1', '19'); /** Version "21" (only a major version, without a specific minor version). */ public static readonly VER_21 = OracleEngineVersion.of('21', '21'); @@ -1615,12 +2019,16 @@ export class OracleEngineVersion { public static readonly VER_21_0_0_0_2022_10_R1 = OracleEngineVersion.of('21.0.0.0.ru-2022-10.rur-2022-10.r1', '21'); /** Version "21.0.0.0.ru-2023-01.rur-2023-01.r1". */ public static readonly VER_21_0_0_0_2023_01_R1 = OracleEngineVersion.of('21.0.0.0.ru-2023-01.rur-2023-01.r1', '21'); + /** Version "21.0.0.0.ru-2023-01.rur-2023-01.r2". */ + public static readonly VER_21_0_0_0_2023_01_R2 = OracleEngineVersion.of('21.0.0.0.ru-2023-01.rur-2023-01.r2', '21'); /** Version "21.0.0.0.ru-2023-04.rur-2023-04.r1". */ public static readonly VER_21_0_0_0_2023_04_R1 = OracleEngineVersion.of('21.0.0.0.ru-2023-04.rur-2023-04.r1', '21'); /** Version "21.0.0.0.ru-2023-07.rur-2023-07.r1". */ public static readonly VER_21_0_0_0_2023_07_R1 = OracleEngineVersion.of('21.0.0.0.ru-2023-07.rur-2023-07.r1', '21'); /** Version "21.0.0.0.ru-2023-10.rur-2023-10.r1". */ public static readonly VER_21_0_0_0_2023_10_R1 = OracleEngineVersion.of('21.0.0.0.ru-2023-10.rur-2023-10.r1', '21'); + /** Version "21.0.0.0.ru-2024-01.rur-2024-01.r1". */ + public static readonly VER_21_0_0_0_2024_01_R1 = OracleEngineVersion.of('21.0.0.0.ru-2024-01.rur-2024-01.r1', '21'); /** * Creates a new OracleEngineVersion with an arbitrary version. @@ -1841,67 +2249,159 @@ class OracleEeCdbInstanceEngine extends OracleInstanceEngineBase { * and `DatabaseInstanceEngine.sqlServerEe`). */ export class SqlServerEngineVersion { - /** Version "11.00" (only a major version, without a specific minor version). */ + /** + * Version "11.00" (only a major version, without a specific minor version). + * @deprecated SQL Server 11.00 is no longer supported by Amazon RDS. + */ public static readonly VER_11 = SqlServerEngineVersion.of('11.00', '11.00'); - /** Version "11.00.5058.0.v1". */ + /** + * Version "11.00.5058.0.v1". + * @deprecated SQL Server 11.00.5058.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_11_00_5058_0_V1 = SqlServerEngineVersion.of('11.00.5058.0.v1', '11.00'); - /** Version "11.00.6020.0.v1". */ + /** + * Version "11.00.6020.0.v1". + * @deprecated SQL Server 11.00.6020.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_11_00_6020_0_V1 = SqlServerEngineVersion.of('11.00.6020.0.v1', '11.00'); - /** Version "11.00.6594.0.v1". */ + /** + * Version "11.00.6594.0.v1". + * @deprecated SQL Server 11.00.6594.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_11_00_6594_0_V1 = SqlServerEngineVersion.of('11.00.6594.0.v1', '11.00'); - /** Version "11.00.7462.6.v1". */ + /** + * Version "11.00.7462.6.v1". + * @deprecated SQL Server 11.00.7462.6.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_11_00_7462_6_V1 = SqlServerEngineVersion.of('11.00.7462.6.v1', '11.00'); - /** Version "11.00.7493.4.v1". */ + /** + * Version "11.00.7493.4.v1". + * @deprecated SQL Server 11.00.7493.4.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_11_00_7493_4_V1 = SqlServerEngineVersion.of('11.00.7493.4.v1', '11.00'); - /** Version "12.00" (only a major version, without a specific minor version). */ + /** + * Version "12.00" (only a major version, without a specific minor version). + * @deprecated SQL Server 12.00 is no longer supported by Amazon RDS. + */ public static readonly VER_12 = SqlServerEngineVersion.of('12.00', '12.00'); - /** Version "12.00.5000.0.v1". */ + /** + * Version "12.00.4422.0.v1" + * @deprecated SQL Server 12.00.4422.0.v1 is no longer supported by Amazon RDS. + */ + public static readonly VER_12_00_4422_0_V1 = SqlServerEngineVersion.of('12.00.4422.0.v1', '12.00'); + /** + * Version "12.00.5000.0.v1". + * @deprecated SQL Server 12.00.5000.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_5000_0_V1 = SqlServerEngineVersion.of('12.00.5000.0.v1', '12.00'); - /** Version "12.00.5546.0.v1". */ + /** + * Version "12.00.5546.0.v1". + * @deprecated SQL Server 12.00.5546.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_5546_0_V1 = SqlServerEngineVersion.of('12.00.5546.0.v1', '12.00'); - /** Version "12.00.5571.0.v1". */ + /** + * Version "12.00.5571.0.v1". + * @deprecated SQL Server 12.00.5571.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_5571_0_V1 = SqlServerEngineVersion.of('12.00.5571.0.v1', '12.00'); - /** Version "12.00.6293.0.v1". */ + /** + * Version "12.00.6293.0.v1". + * @deprecated SQL Server 12.00.6293.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_6293_0_V1 = SqlServerEngineVersion.of('12.00.6293.0.v1', '12.00'); - /** Version "12.00.6329.1.v1". */ + /** + * Version "12.00.6329.1.v1". + * @deprecated SQL Server 12.00.6329.1.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_6329_1_V1 = SqlServerEngineVersion.of('12.00.6329.1.v1', '12.00'); - /** Version "12.00.6433.1.v1". */ + /** + * Version "12.00.6433.1.v1". + * @deprecated SQL Server 12.00.6433.1.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_6433_1_V1 = SqlServerEngineVersion.of('12.00.6433.1.v1', '12.00'); - /** Version "12.00.6439.10.v1". */ + /** + * Version "12.00.6439.10.v1". + * @deprecated SQL Server 12.00.6439.10.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_6439_10_V1 = SqlServerEngineVersion.of('12.00.6439.10.v1', '12.00'); - /** Version "12.00.6444.4.v1". */ + /** + * Version "12.00.6444.4.v1". + * @deprecated SQL Server 12.00.6444.4.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_6444_4_V1 = SqlServerEngineVersion.of('12.00.6444.4.v1', '12.00'); - /** Version "12.00.6449.1.v1". */ + /** + * Version "12.00.6449.1.v1". + * @deprecated SQL Server 12.00.6449.1.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_12_00_6449_1_V1 = SqlServerEngineVersion.of('12.00.6449.1.v1', '12.00'); /** Version "13.00" (only a major version, without a specific minor version). */ public static readonly VER_13 = SqlServerEngineVersion.of('13.00', '13.00'); - /** Version "13.00.2164.0.v1". */ + /** + * Version "13.00.2164.0.v1". + * @deprecated SQL Server 13.00.2164.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_2164_0_V1 = SqlServerEngineVersion.of('13.00.2164.0.v1', '13.00'); - /** Version "13.00.4422.0.v1". */ + /** + * Version "13.00.4422.0.v1". + * @deprecated SQL Server 13.00.4422.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_4422_0_V1 = SqlServerEngineVersion.of('13.00.4422.0.v1', '13.00'); - /** Version "13.00.4451.0.v1". */ + /** + * Version "13.00.4451.0.v1". + * @deprecated SQL Server 13.00.4451.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_4451_0_V1 = SqlServerEngineVersion.of('13.00.4451.0.v1', '13.00'); - /** Version "13.00.4466.4.v1". */ + /** + * Version "13.00.4466.4.v1". + * @deprecated SQL Server 13.00.4466.4.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_4466_4_V1 = SqlServerEngineVersion.of('13.00.4466.4.v1', '13.00'); - /** Version "13.00.4522.0.v1". */ + /** + * Version "13.00.4522.0.v1". + * @deprecated SQL Server 13.00.4522.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_4522_0_V1 = SqlServerEngineVersion.of('13.00.4522.0.v1', '13.00'); - /** Version "13.00.5216.0.v1". */ + /** + * Version "13.00.5216.0.v1". + * @deprecated SQL Server 13.00.5216.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5216_0_V1 = SqlServerEngineVersion.of('13.00.5216.0.v1', '13.00'); - /** Version "13.00.5292.0.v1". */ + /** + * Version "13.00.5292.0.v1". + * @deprecated SQL Server 13.00.5292.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5292_0_V1 = SqlServerEngineVersion.of('13.00.5292.0.v1', '13.00'); - /** Version "13.00.5366.0.v1". */ + /** + * Version "13.00.5366.0.v1". + * @deprecated SQL Server 13.00.5366.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5366_0_V1 = SqlServerEngineVersion.of('13.00.5366.0.v1', '13.00'); - /** Version "13.00.5426.0.v1". */ + /** + * Version "13.00.5426.0.v1". + * @deprecated SQL Server 13.00.5426.0.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5426_0_V1 = SqlServerEngineVersion.of('13.00.5426.0.v1', '13.00'); - /** Version "13.00.5598.27.v1". */ + /** + * Version "13.00.5598.27.v1". + * @deprecated SQL Server 13.00.5598.27.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5598_27_V1 = SqlServerEngineVersion.of('13.00.5598.27.v1', '13.00'); - /** Version "13.00.5820.21.v1". */ + /** + * Version "13.00.5820.21.v1". + * @deprecated SQL Server 13.00.5820.21.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5820_21_V1 = SqlServerEngineVersion.of('13.00.5820.21.v1', '13.00'); - /** Version "13.00.5850.14.v1". */ + /** + * Version "13.00.5850.14.v1". + * @deprecated SQL Server 13.00.5850.14.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5850_14_V1 = SqlServerEngineVersion.of('13.00.5850.14.v1', '13.00'); - /** Version "13.00.5882.1.v1". */ + /** + * Version "13.00.5882.1.v1". + * @deprecated SQL Server 13.00.5882.1.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_13_00_5882_1_V1 = SqlServerEngineVersion.of('13.00.5882.1.v1', '13.00'); /** Version "13.00.6300.2.v1". */ public static readonly VER_13_00_6300_2_V1 = SqlServerEngineVersion.of('13.00.6300.2.v1', '13.00'); @@ -1914,20 +2414,35 @@ export class SqlServerEngineVersion { /** Version "14.00" (only a major version, without a specific minor version). */ public static readonly VER_14 = SqlServerEngineVersion.of('14.00', '14.00'); - /** Version "14.00.1000.169.v1". */ + /** + * Version "14.00.1000.169.v1". + * @deprecated SQL Server 14.00.1000.169.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_14_00_1000_169_V1 = SqlServerEngineVersion.of('14.00.1000.169.v1', '14.00'); - /** Version "14.00.3015.40.v1". */ + /** + * Version "14.00.3015.40.v1". + * @deprecated SQL Server 14.00.3015.40.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_14_00_3015_40_V1 = SqlServerEngineVersion.of('14.00.3015.40.v1', '14.00'); - /** Version "14.00.3035.2.v1". */ + /** + * Version "14.00.3035.2.v1". + * @deprecated SQL Server 14.00.3035.2.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_14_00_3035_2_V1 = SqlServerEngineVersion.of('14.00.3035.2.v1', '14.00'); - /** Version "14.00.3049.1.v1". */ + /** + * Version "14.00.3049.1.v1". + * @deprecated SQL Server 14.00.3049.1.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_14_00_3049_1_V1 = SqlServerEngineVersion.of('14.00.3049.1.v1', '14.00'); /** * Version "14.00.3192.2.v1". - * @deprecated SQL Server version 14.00.3192.2.v1 reached end of life + * @deprecated SQL Server 14.00.3192.2.v1 is no longer supported by Amazon RDS. */ public static readonly VER_14_00_3192_2_V1 = SqlServerEngineVersion.of('14.00.3192.2.v1', '14.00'); - /** Version "14.00.3223.3.v1". */ + /** + * Version "14.00.3223.3.v1". + * @deprecated SQL Server 14.00.3223.3.v1 is no longer supported by Amazon RDS. + */ public static readonly VER_14_00_3223_3_V1 = SqlServerEngineVersion.of('14.00.3223.3.v1', '14.00'); /** Version "14.00.3281.6.v1". */ public static readonly VER_14_00_3281_6_V1 = SqlServerEngineVersion.of('14.00.3281.6.v1', '14.00'); @@ -1952,6 +2467,8 @@ export class SqlServerEngineVersion { public static readonly VER_15 = SqlServerEngineVersion.of('15.00', '15.00'); /** Version "15.00.4043.16.v1". */ public static readonly VER_15_00_4043_16_V1 = SqlServerEngineVersion.of('15.00.4043.16.v1', '15.00'); + /** Version "15.00.4355.3.v1". */ + public static readonly VER_15_00_4355_3_V1 = SqlServerEngineVersion.of('15.00.4355.3.v1', '15.00'); /** * Version "15.00.4043.23.v1". * @deprecated This version is erroneous. You might be looking for `SqlServerEngineVersion.VER_15_00_4073_23_V1`, instead. @@ -1982,6 +2499,8 @@ export class SqlServerEngineVersion { public static readonly VER_16_00_4085_2_V1 = SqlServerEngineVersion.of('16.00.4085.2.v1', '16.00'); /** Version "16.00.4095.4.v1". */ public static readonly VER_16_00_4095_4_V1 = SqlServerEngineVersion.of('16.00.4095.4.v1', '16.00'); + /** Version "16.00.4105.2.v1". */ + public static readonly VER_16_00_4105_2_V1 = SqlServerEngineVersion.of('16.00.4105.2.v1', '16.00'); /** * Create a new SqlServerEngineVersion with an arbitrary version. From 840ec977b09a48395c6be411250836edbc81b14c Mon Sep 17 00:00:00 2001 From: Jimmy Gaussen Date: Mon, 11 Mar 2024 21:37:07 +0100 Subject: [PATCH 04/11] chore(ec2): add missing instance types (#29427) ### Issue # (if applicable) Closes #23854 ### Reason for this change Update the CDK EC2 instance class and size enums to match the current availability ### Description of changes Added the missing instance class and sizes ### Description of how you validated changes This was generated with the help of the same tool I used to create #29422, using the live SDK data to match against the CDK. For the instance types, I am using the `DescribeInstanceTypes` API command in multiple regions (`us-east-1`, `us-east-2`, `us-west-1`, `eu-west-1`.) As far as I could tell, the union of `us-east-1` and `us-east-2` cover all possible instance classes and sizes, but correct me if I'm wrong. As a sanity check, I'm also checking that the CDK does not have more instance types and sizes that the SDK does. It does vary between regions, but of note, there were: * `p4de`, in developer preview * `x2g`, RDS exclusive and not returned by `DescribeInstanceTypes` Finally, I am ignoring some of the previous generation instance classes missing from the CDK, as they are very outdated and weren't added in first place, i.e. `c1`, `t1`, `m1`, `m2`, and `i2`. ### 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* --- .../aws-cdk-lib/aws-ec2/lib/instance-types.ts | 99 ++++++++++++++++++- 1 file changed, 98 insertions(+), 1 deletion(-) diff --git a/packages/aws-cdk-lib/aws-ec2/lib/instance-types.ts b/packages/aws-cdk-lib/aws-ec2/lib/instance-types.ts index bcf63f59a0260..890363932a68f 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/instance-types.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/instance-types.ts @@ -1110,6 +1110,36 @@ export enum InstanceClass { */ MAC1 = 'mac1', + /** + * Macintosh instances built on Apple Mac mini 2020 computers, 2nd generation with Apple silicon M1 processors + */ + MACINTOSH2_M1 = 'macintosh2-m1', + + /** + * Macintosh instances built on Apple Mac mini 2020 computers, 2nd generation with Apple silicon M1 processors + */ + MAC2 = 'mac2', + + /** + * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 processors + */ + MACINTOSH2_M2 = 'macintosh2-m2', + + /** + * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 processors + */ + MAC2_M2 = 'mac2-m2', + + /** + * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 Pro processors + */ + MACINTOSH2_M2_PRO = 'macintosh2-m2-pro', + + /** + * Macintosh instances built on Apple Mac mini 2023 computers, 2nd generation with Apple silicon M2 Pro processors + */ + MAC2_M2PRO = 'mac2-m2pro', + /** * Multi-stream video transcoding instances for resolutions up to 4K UHD, 1st generation */ @@ -1130,6 +1160,36 @@ export enum InstanceClass { */ HPC6A = 'hpc6a', + /** + * High performance computing with local NVME drive based on 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake), 6th generation + */ + HIGH_PERFORMANCE_COMPUTING6_INTEL_NVME_DRIVE = 'high-performance-computing6-intel-nvme-drive', + + /** + * High performance computing with local NVME drive based on 6th generation with Intel Xeon Scalable processors (3rd generation processors code named Ice Lake), 6th generation + */ + HPC6ID = 'hpc6id', + + /** + * High performance computing based on AMD EPYC, 7th generation + */ + HIGH_PERFORMANCE_COMPUTING7_AMD = 'high-performance-computing7-amd', + + /** + * High performance computing based on AMD EPYC, 7th generation + */ + HPC7A = 'hpc7a', + + /** + * High performance computing based on Graviton, 7th generation + */ + HIGH_PERFORMANCE_COMPUTING7_GRAVITON = 'high-performance-computing7-graviton', + + /** + * High performance computing based on Graviton, 7th generation + */ + HPC7G = 'hpc7g', + /** * Deep learning instances powered by Gaudi accelerators from Habana Labs (an Intel company), 1st generation */ @@ -1261,7 +1321,12 @@ export enum InstanceSize { XLARGE56 = '56xlarge', /** - * Instance size XLARGE56 (112xlarge) + * Instance size XLARGE96 (96xlarge) + */ + XLARGE96 = '96xlarge', + + /** + * Instance size XLARGE112 (112xlarge) */ XLARGE112 = '112xlarge', @@ -1269,6 +1334,26 @@ export enum InstanceSize { * Instance size METAL (metal) */ METAL = 'metal', + + /** + * Instance size XLARGE16METAL (metal-16xl) + */ + XLARGE16METAL = 'metal-16xl', + + /** + * Instance size XLARGE24METAL (metal-24xl) + */ + XLARGE24METAL = 'metal-24xl', + + /** + * Instance size XLARGE32METAL (metal-32xl) + */ + XLARGE32METAL = 'metal-32xl', + + /** + * Instance size XLARGE48METAL (metal-48xl) + */ + XLARGE48METAL = 'metal-48xl', } /** @@ -1495,10 +1580,22 @@ export class InstanceType { [InstanceClass.INF2]: 'inf2', [InstanceClass.MACINTOSH1_INTEL]: 'mac1', [InstanceClass.MAC1]: 'mac1', + [InstanceClass.MACINTOSH2_M1]: 'mac2', + [InstanceClass.MAC2]: 'mac2', + [InstanceClass.MACINTOSH2_M2]: 'mac2-m2', + [InstanceClass.MAC2_M2]: 'mac2-m2', + [InstanceClass.MACINTOSH2_M2_PRO]: 'mac2-m2pro', + [InstanceClass.MAC2_M2PRO]: 'mac2-m2pro', [InstanceClass.VIDEO_TRANSCODING1]: 'vt1', [InstanceClass.VT1]: 'vt1', [InstanceClass.HIGH_PERFORMANCE_COMPUTING6_AMD]: 'hpc6a', [InstanceClass.HPC6A]: 'hpc6a', + [InstanceClass.HIGH_PERFORMANCE_COMPUTING6_INTEL_NVME_DRIVE]: 'hpc6id', + [InstanceClass.HPC6ID]: 'hpc6id', + [InstanceClass.HIGH_PERFORMANCE_COMPUTING7_AMD]: 'hpc7a', + [InstanceClass.HPC7A]: 'hpc7a', + [InstanceClass.HIGH_PERFORMANCE_COMPUTING7_GRAVITON]: 'hpc7g', + [InstanceClass.HPC7G]: 'hpc7g', [InstanceClass.I4I]: 'i4i', [InstanceClass.IO4_INTEL]: 'i4i', [InstanceClass.X2IEDN]: 'x2iedn', From 5592553ac5edc6b2c29a786031b8bec139b2aef7 Mon Sep 17 00:00:00 2001 From: kazuho cryer-shinozuka Date: Tue, 12 Mar 2024 08:53:07 +0900 Subject: [PATCH 05/11] feat(stepfunctions-tasks): start glue crawler (#29016) ### Issue Closes #24188. ### Reason for this change AWS Step Functions supports the ability to start a Glue Crawler as a task within a state machine. However, this is not configurable. ### Description of changes I've implemented `GlueStartCrawlerRun` class in stepfunctions-tasks and we can create start crawler task easily: ```ts const task = new GlueStartCrawlerRun(stack, 'Task', { crawlerName: 'glue-crawler-name', }); ``` ### Description of how you validated changes I've added both unit and integ tests. ### 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* --------- Co-authored-by: Luca Pizzini Co-authored-by: GZ --- ...efaultTestDeployAssertA6573788.assets.json | 19 + ...aultTestDeployAssertA6573788.template.json | 36 ++ .../aws-cdk-glue-crawler.assets.json | 19 + .../aws-cdk-glue-crawler.template.json | 214 +++++++++ .../cdk.out | 1 + .../integ.json | 12 + .../manifest.json | 149 +++++++ .../tree.json | 416 ++++++++++++++++++ .../test/glue/integ.glue-start-crawler.ts | 63 +++ .../aws-stepfunctions-tasks/README.md | 22 + .../lib/glue/start-crawler-run.ts | 61 +++ .../aws-stepfunctions-tasks/lib/index.ts | 1 + .../test/glue/start-crawler-run.test.ts | 76 ++++ 13 files changed, 1089 insertions(+) create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.template.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.assets.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.template.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/cdk.out create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/integ.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/manifest.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/tree.json create mode 100644 packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.ts create mode 100644 packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/glue/start-crawler-run.ts create mode 100644 packages/aws-cdk-lib/aws-stepfunctions-tasks/test/glue/start-crawler-run.test.ts diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets.json new file mode 100644 index 0000000000000..2b4cb4f0e4ce1 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets.json @@ -0,0 +1,19 @@ +{ + "version": "36.0.0", + "files": { + "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { + "source": { + "path": "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.template.json new file mode 100644 index 0000000000000..ad9d0fb73d1dd --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.template.json @@ -0,0 +1,36 @@ +{ + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.assets.json new file mode 100644 index 0000000000000..929c70bebc213 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.assets.json @@ -0,0 +1,19 @@ +{ + "version": "36.0.0", + "files": { + "2696c3da684e3f0b5017ac207dcb6b3e007ba12083d1a7ae40e3e1b0fb6b584e": { + "source": { + "path": "aws-cdk-glue-crawler.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "2696c3da684e3f0b5017ac207dcb6b3e007ba12083d1a7ae40e3e1b0fb6b584e.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.template.json new file mode 100644 index 0000000000000..b26c0776ea56b --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/aws-cdk-glue-crawler.template.json @@ -0,0 +1,214 @@ +{ + "Resources": { + "Bucket83908E77": { + "Type": "AWS::S3::Bucket", + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "GluecrawlwerRole4E24839F": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "glue.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSGlueServiceRole" + ] + ] + } + ] + } + }, + "Database": { + "Type": "AWS::Glue::Database", + "Properties": { + "CatalogId": { + "Ref": "AWS::AccountId" + }, + "DatabaseInput": { + "Description": "My database", + "Name": "my-database" + } + } + }, + "Crawler": { + "Type": "AWS::Glue::Crawler", + "Properties": { + "DatabaseName": { + "Ref": "Database" + }, + "Role": { + "Fn::GetAtt": [ + "GluecrawlwerRole4E24839F", + "Arn" + ] + }, + "Targets": { + "S3Targets": [ + { + "Path": { + "Fn::Join": [ + "", + [ + "s3://", + { + "Ref": "Bucket83908E77" + }, + "/" + ] + ] + } + } + ] + } + } + }, + "StateMachineRole543B9670": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "states.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "StateMachineRoleDefaultPolicyDA5F7DA8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "glue:GetCrawler", + "glue:StartCrawler" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":glue:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":crawler/", + { + "Ref": "Crawler" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "StateMachineRoleDefaultPolicyDA5F7DA8", + "Roles": [ + { + "Ref": "StateMachineRole543B9670" + } + ] + } + }, + "StateMachine81935E76": { + "Type": "AWS::StepFunctions::StateMachine", + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "", + [ + "{\"StartAt\":\"Start Task\",\"States\":{\"Start Task\":{\"Type\":\"Pass\",\"Next\":\"Glue Crawler Task\"},\"Glue Crawler Task\":{\"Next\":\"End Task\",\"Type\":\"Task\",\"Resource\":\"arn:", + { + "Ref": "AWS::Partition" + }, + ":states:::aws-sdk:glue:startCrawler\",\"Parameters\":{\"Name\":\"", + { + "Ref": "Crawler" + }, + "\"}},\"End Task\":{\"Type\":\"Pass\",\"End\":true}}}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "StateMachineRole543B9670", + "Arn" + ] + } + }, + "DependsOn": [ + "StateMachineRoleDefaultPolicyDA5F7DA8", + "StateMachineRole543B9670" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/cdk.out b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/cdk.out new file mode 100644 index 0000000000000..1f0068d32659a --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/cdk.out @@ -0,0 +1 @@ +{"version":"36.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/integ.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/integ.json new file mode 100644 index 0000000000000..e7e16aaf4c251 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/integ.json @@ -0,0 +1,12 @@ +{ + "version": "36.0.0", + "testCases": { + "EcsDeploymentConfigTest/DefaultTest": { + "stacks": [ + "aws-cdk-glue-crawler" + ], + "assertionStack": "EcsDeploymentConfigTest/DefaultTest/DeployAssert", + "assertionStackName": "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/manifest.json new file mode 100644 index 0000000000000..9914823b67fd3 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/manifest.json @@ -0,0 +1,149 @@ +{ + "version": "36.0.0", + "artifacts": { + "aws-cdk-glue-crawler.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "aws-cdk-glue-crawler.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "aws-cdk-glue-crawler": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "aws-cdk-glue-crawler.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/2696c3da684e3f0b5017ac207dcb6b3e007ba12083d1a7ae40e3e1b0fb6b584e.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "aws-cdk-glue-crawler.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "aws-cdk-glue-crawler.assets" + ], + "metadata": { + "/aws-cdk-glue-crawler/Bucket/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "Bucket83908E77" + } + ], + "/aws-cdk-glue-crawler/Glue crawlwer Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "GluecrawlwerRole4E24839F" + } + ], + "/aws-cdk-glue-crawler/Database": [ + { + "type": "aws:cdk:logicalId", + "data": "Database" + } + ], + "/aws-cdk-glue-crawler/Crawler": [ + { + "type": "aws:cdk:logicalId", + "data": "Crawler" + } + ], + "/aws-cdk-glue-crawler/State Machine/Role/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "StateMachineRole543B9670" + } + ], + "/aws-cdk-glue-crawler/State Machine/Role/DefaultPolicy/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "StateMachineRoleDefaultPolicyDA5F7DA8" + } + ], + "/aws-cdk-glue-crawler/State Machine/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "StateMachine81935E76" + } + ], + "/aws-cdk-glue-crawler/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/aws-cdk-glue-crawler/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "aws-cdk-glue-crawler" + }, + "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets": { + "type": "cdk:asset-manifest", + "properties": { + "file": "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788": { + "type": "aws:cloudformation:stack", + "environment": "aws://unknown-account/unknown-region", + "properties": { + "templateFile": "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.template.json", + "terminationProtection": false, + "validateOnSynth": false, + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", + "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", + "requiresBootstrapStackVersion": 6, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", + "additionalDependencies": [ + "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets" + ], + "lookupRole": { + "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", + "requiresBootstrapStackVersion": 8, + "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" + } + }, + "dependencies": [ + "EcsDeploymentConfigTestDefaultTestDeployAssertA6573788.assets" + ], + "metadata": { + "/EcsDeploymentConfigTest/DefaultTest/DeployAssert/BootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "BootstrapVersion" + } + ], + "/EcsDeploymentConfigTest/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + { + "type": "aws:cdk:logicalId", + "data": "CheckBootstrapVersion" + } + ] + }, + "displayName": "EcsDeploymentConfigTest/DefaultTest/DeployAssert" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/tree.json new file mode 100644 index 0000000000000..d58012eebd2e3 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.js.snapshot/tree.json @@ -0,0 +1,416 @@ +{ + "version": "tree-0.1", + "tree": { + "id": "App", + "path": "", + "children": { + "aws-cdk-glue-crawler": { + "id": "aws-cdk-glue-crawler", + "path": "aws-cdk-glue-crawler", + "children": { + "Bucket": { + "id": "Bucket", + "path": "aws-cdk-glue-crawler/Bucket", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-glue-crawler/Bucket/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::S3::Bucket", + "aws:cdk:cloudformation:props": {} + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.CfnBucket", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_s3.Bucket", + "version": "0.0.0" + } + }, + "Glue crawlwer Role": { + "id": "Glue crawlwer Role", + "path": "aws-cdk-glue-crawler/Glue crawlwer Role", + "children": { + "ImportGlue crawlwer Role": { + "id": "ImportGlue crawlwer Role", + "path": "aws-cdk-glue-crawler/Glue crawlwer Role/ImportGlue crawlwer Role", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-glue-crawler/Glue crawlwer Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "glue.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "managedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSGlueServiceRole" + ] + ] + } + ] + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Role", + "version": "0.0.0" + } + }, + "Database": { + "id": "Database", + "path": "aws-cdk-glue-crawler/Database", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Glue::Database", + "aws:cdk:cloudformation:props": { + "catalogId": { + "Ref": "AWS::AccountId" + }, + "databaseInput": { + "name": "my-database", + "description": "My database" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_glue.CfnDatabase", + "version": "0.0.0" + } + }, + "Crawler": { + "id": "Crawler", + "path": "aws-cdk-glue-crawler/Crawler", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::Glue::Crawler", + "aws:cdk:cloudformation:props": { + "databaseName": { + "Ref": "Database" + }, + "role": { + "Fn::GetAtt": [ + "GluecrawlwerRole4E24839F", + "Arn" + ] + }, + "targets": { + "s3Targets": [ + { + "path": { + "Fn::Join": [ + "", + [ + "s3://", + { + "Ref": "Bucket83908E77" + }, + "/" + ] + ] + } + } + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_glue.CfnCrawler", + "version": "0.0.0" + } + }, + "Glue Crawler Task": { + "id": "Glue Crawler Task", + "path": "aws-cdk-glue-crawler/Glue Crawler Task", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.GlueStartCrawlerRun", + "version": "0.0.0" + } + }, + "Start Task": { + "id": "Start Task", + "path": "aws-cdk-glue-crawler/Start Task", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_stepfunctions.Pass", + "version": "0.0.0" + } + }, + "End Task": { + "id": "End Task", + "path": "aws-cdk-glue-crawler/End Task", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_stepfunctions.Pass", + "version": "0.0.0" + } + }, + "State Machine": { + "id": "State Machine", + "path": "aws-cdk-glue-crawler/State Machine", + "children": { + "Role": { + "id": "Role", + "path": "aws-cdk-glue-crawler/State Machine/Role", + "children": { + "ImportRole": { + "id": "ImportRole", + "path": "aws-cdk-glue-crawler/State Machine/Role/ImportRole", + "constructInfo": { + "fqn": "aws-cdk-lib.Resource", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-glue-crawler/State Machine/Role/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Role", + "aws:cdk:cloudformation:props": { + "assumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "states.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnRole", + "version": "0.0.0" + } + }, + "DefaultPolicy": { + "id": "DefaultPolicy", + "path": "aws-cdk-glue-crawler/State Machine/Role/DefaultPolicy", + "children": { + "Resource": { + "id": "Resource", + "path": "aws-cdk-glue-crawler/State Machine/Role/DefaultPolicy/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::IAM::Policy", + "aws:cdk:cloudformation:props": { + "policyDocument": { + "Statement": [ + { + "Action": [ + "glue:GetCrawler", + "glue:StartCrawler" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":glue:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":crawler/", + { + "Ref": "Crawler" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "policyName": "StateMachineRoleDefaultPolicyDA5F7DA8", + "roles": [ + { + "Ref": "StateMachineRole543B9670" + } + ] + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.CfnPolicy", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Policy", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_iam.Role", + "version": "0.0.0" + } + }, + "Resource": { + "id": "Resource", + "path": "aws-cdk-glue-crawler/State Machine/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", + "aws:cdk:cloudformation:props": { + "definitionString": { + "Fn::Join": [ + "", + [ + "{\"StartAt\":\"Start Task\",\"States\":{\"Start Task\":{\"Type\":\"Pass\",\"Next\":\"Glue Crawler Task\"},\"Glue Crawler Task\":{\"Next\":\"End Task\",\"Type\":\"Task\",\"Resource\":\"arn:", + { + "Ref": "AWS::Partition" + }, + ":states:::aws-sdk:glue:startCrawler\",\"Parameters\":{\"Name\":\"", + { + "Ref": "Crawler" + }, + "\"}},\"End Task\":{\"Type\":\"Pass\",\"End\":true}}}" + ] + ] + }, + "roleArn": { + "Fn::GetAtt": [ + "StateMachineRole543B9670", + "Arn" + ] + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine", + "version": "0.0.0" + } + }, + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "aws-cdk-glue-crawler/BootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnParameter", + "version": "0.0.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "aws-cdk-glue-crawler/CheckBootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnRule", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Stack", + "version": "0.0.0" + } + }, + "EcsDeploymentConfigTest": { + "id": "EcsDeploymentConfigTest", + "path": "EcsDeploymentConfigTest", + "children": { + "DefaultTest": { + "id": "DefaultTest", + "path": "EcsDeploymentConfigTest/DefaultTest", + "children": { + "Default": { + "id": "Default", + "path": "EcsDeploymentConfigTest/DefaultTest/Default", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" + } + }, + "DeployAssert": { + "id": "DeployAssert", + "path": "EcsDeploymentConfigTest/DefaultTest/DeployAssert", + "children": { + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "EcsDeploymentConfigTest/DefaultTest/DeployAssert/BootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnParameter", + "version": "0.0.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "EcsDeploymentConfigTest/DefaultTest/DeployAssert/CheckBootstrapVersion", + "constructInfo": { + "fqn": "aws-cdk-lib.CfnRule", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.Stack", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "@aws-cdk/integ-tests-alpha.IntegTest", + "version": "0.0.0" + } + }, + "Tree": { + "id": "Tree", + "path": "Tree", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.App", + "version": "0.0.0" + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.ts new file mode 100644 index 0000000000000..6b69a7fda3f0e --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions-tasks/test/glue/integ.glue-start-crawler.ts @@ -0,0 +1,63 @@ +import * as glue from 'aws-cdk-lib/aws-glue'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as sfn from 'aws-cdk-lib/aws-stepfunctions'; +import * as s3 from 'aws-cdk-lib/aws-s3'; +import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks'; +import * as integ from '@aws-cdk/integ-tests-alpha'; +import { App, RemovalPolicy, Stack, StackProps } from 'aws-cdk-lib'; +import { Construct } from 'constructs'; + +class TestStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const bucket = new s3.Bucket(this, 'Bucket', { + removalPolicy: RemovalPolicy.DESTROY, + }); + + const jobRole = new iam.Role(this, 'Glue crawlwer Role', { + assumedBy: new iam.ServicePrincipal('glue.amazonaws.com'), + managedPolicies: [ + iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSGlueServiceRole'), + ], + }); + + const database = new glue.CfnDatabase(this, 'Database', { + catalogId: Stack.of(this).account, + databaseInput: { + name: 'my-database', + description: 'My database', + }, + }); + + const crawler = new glue.CfnCrawler(this, 'Crawler', { + databaseName: database.ref, + role: jobRole.roleArn, + targets: { + s3Targets: [ + { + path: `s3://${bucket.bucketName}/`, + }, + ], + }, + }); + + const crawlerTask = new tasks.GlueStartCrawlerRun(this, 'Glue Crawler Task', { + crawlerName: crawler.ref, + }); + + const startTask = new sfn.Pass(this, 'Start Task'); + const endTask = new sfn.Pass(this, 'End Task'); + + new sfn.StateMachine(this, 'State Machine', { + definition: sfn.Chain.start(startTask).next(crawlerTask).next(endTask), + }); + } +} + +const app = new App(); +const stack = new TestStack(app, 'aws-cdk-glue-crawler'); + +new integ.IntegTest(app, 'EcsDeploymentConfigTest', { + testCases: [stack], +}); diff --git a/packages/aws-cdk-lib/aws-stepfunctions-tasks/README.md b/packages/aws-cdk-lib/aws-stepfunctions-tasks/README.md index 7d6d69da5df58..17ab14275f6bb 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions-tasks/README.md +++ b/packages/aws-cdk-lib/aws-stepfunctions-tasks/README.md @@ -1080,6 +1080,8 @@ new tasks.EventBridgePutEvents(this, 'Send an event to EventBridge', { Step Functions supports [AWS Glue](https://docs.aws.amazon.com/step-functions/latest/dg/connect-glue.html) through the service integration pattern. +### StartJobRun + You can call the [`StartJobRun`](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-runs.html#aws-glue-api-jobs-runs-StartJobRun) API from a `Task` state. ```ts @@ -1093,6 +1095,26 @@ new tasks.GlueStartJobRun(this, 'Task', { }); ``` +### StartCrawlerRun + +You can call the [`StartCrawler`](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-crawling.html#aws-glue-api-crawler-crawling-StartCrawler) API from a `Task` state through AWS SDK service integrations. + +```ts +import * as glue from 'aws-cdk-lib/aws-glue'; + +declare const myCrawler: glue.CfnCrawler; + +// You can get the crawler name from `crawler.ref` +new tasks.GlueStartCrawlerRun(this, 'Task1', { + crawlerName: myCrawler.ref, +}); + +// Of course, you can also specify the crawler name directly. +new tasks.GlueStartCrawlerRun(this, 'Task2', { + crawlerName: 'my-crawler-job', +}); +``` + ## Glue DataBrew Step Functions supports [AWS Glue DataBrew](https://docs.aws.amazon.com/step-functions/latest/dg/connect-databrew.html) through the service integration pattern. diff --git a/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/glue/start-crawler-run.ts b/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/glue/start-crawler-run.ts new file mode 100644 index 0000000000000..7f7af3cbeb011 --- /dev/null +++ b/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/glue/start-crawler-run.ts @@ -0,0 +1,61 @@ +import { Construct } from 'constructs'; +import * as iam from '../../../aws-iam'; +import * as sfn from '../../../aws-stepfunctions'; +import { Stack } from '../../../core'; +import { integrationResourceArn } from '../private/task-utils'; + +/** + * Properties for starting an AWS Glue Crawler as a task + */ +export interface GlueStartCrawlerRunProps extends sfn.TaskStateBaseProps { + + /** + * Glue crawler name + */ + readonly crawlerName: string; + +} + +/** + * Starts an AWS Glue Crawler in a Task state + * + * @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-crawling.html#aws-glue-api-crawler-crawling-StartCrawler + */ +export class GlueStartCrawlerRun extends sfn.TaskStateBase { + + protected readonly taskMetrics?: sfn.TaskMetricsConfig; + protected readonly taskPolicies?: iam.PolicyStatement[]; + + private readonly integrationPattern: sfn.IntegrationPattern; + + constructor(scope: Construct, id: string, private readonly props: GlueStartCrawlerRunProps) { + super(scope, id, props); + + this.integrationPattern = props.integrationPattern ?? sfn.IntegrationPattern.REQUEST_RESPONSE; + this.taskPolicies = [new iam.PolicyStatement({ + resources: [ + Stack.of(this).formatArn({ + service: 'glue', + resource: 'crawler', + resourceName: this.props.crawlerName, + }), + ], + actions: [ + 'glue:StartCrawler', + 'glue:GetCrawler', + ], + })]; + } + + /** + * @internal + */ + protected _renderTask(): any { + return { + Resource: integrationResourceArn('aws-sdk:glue', 'startCrawler', this.integrationPattern), + Parameters: { + Name: this.props.crawlerName, + }, + }; + } +} \ No newline at end of file diff --git a/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/index.ts b/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/index.ts index 1021c7e9950a6..372f8d724293e 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/index.ts +++ b/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/index.ts @@ -34,6 +34,7 @@ export * from './emrcontainers/delete-virtual-cluster'; export * from './emrcontainers/start-job-run'; export * from './glue/run-glue-job-task'; export * from './glue/start-job-run'; +export * from './glue/start-crawler-run'; export * from './batch/run-batch-job'; export * from './batch/submit-job'; export * from './dynamodb/get-item'; diff --git a/packages/aws-cdk-lib/aws-stepfunctions-tasks/test/glue/start-crawler-run.test.ts b/packages/aws-cdk-lib/aws-stepfunctions-tasks/test/glue/start-crawler-run.test.ts new file mode 100644 index 0000000000000..de099c19ebb1d --- /dev/null +++ b/packages/aws-cdk-lib/aws-stepfunctions-tasks/test/glue/start-crawler-run.test.ts @@ -0,0 +1,76 @@ +import { Template } from '../../../assertions'; +import * as sfn from '../../../aws-stepfunctions'; +import { App, Stack } from '../../../core'; +import { GlueStartCrawlerRun } from '../../lib/glue/start-crawler-run'; + +const crawlerName = 'GlueCrawler'; +let stack: Stack; +beforeEach(() => { + const app = new App(); + stack = new Stack(app); +}); + +test('Invoke glue crawler with crawler name', () => { + const task = new GlueStartCrawlerRun(stack, 'Task', { + crawlerName, + }); + + new sfn.StateMachine(stack, 'StateMachine', { + definitionBody: sfn.DefinitionBody.fromChainable(task), + }); + + expect(stack.resolve(task.toStateJson())).toEqual({ + Type: 'Task', + Resource: { + 'Fn::Join': [ + '', + [ + 'arn:', + { + Ref: 'AWS::Partition', + }, + ':states:::aws-sdk:glue:startCrawler', + ], + ], + }, + End: true, + Parameters: { + Name: crawlerName, + }, + }); + + const template = Template.fromStack(stack); + expect(template.hasResourceProperties('AWS::IAM::Policy', { + PolicyDocument: { + Statement: [ + { + Action: [ + 'glue:StartCrawler', + 'glue:GetCrawler', + ], + Effect: 'Allow', + Resource: { + 'Fn::Join': [ + '', + [ + 'arn:', + { + Ref: 'AWS::Partition', + }, + ':glue:', + { + Ref: 'AWS::Region', + }, + ':', + { + Ref: 'AWS::AccountId', + }, + `:crawler/${crawlerName}`, + ], + ], + }, + }, + ], + }, + })); +}); From bd41b9ff91d3482abc310c24ee5e622a498316bd Mon Sep 17 00:00:00 2001 From: paulhcsun <47882901+paulhcsun@users.noreply.github.com> Date: Mon, 11 Mar 2024 17:59:06 -0700 Subject: [PATCH 06/11] chore: add weekly workflow for github issues/pr metrics (#29444) ### Issue # (if applicable) Closes #. ### Reason for this change Generate weekly version of the [PR/issues metrics](https://github.com/aws/aws-cdk/issues/28952). ### Description of changes Add new workflow that runs weekly on Mondays @ 9 AM to generate a PR/Issue metrics report for the past week (Monday - Sunday). ### Description of how you validated changes ### 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* --- ...o-metrics.yml => repo-metrics-monthly.yml} | 0 .github/workflows/repo-metrics-weekly.yml | 58 +++++++++++++++++++ 2 files changed, 58 insertions(+) rename .github/workflows/{repo-metrics.yml => repo-metrics-monthly.yml} (100%) create mode 100644 .github/workflows/repo-metrics-weekly.yml diff --git a/.github/workflows/repo-metrics.yml b/.github/workflows/repo-metrics-monthly.yml similarity index 100% rename from .github/workflows/repo-metrics.yml rename to .github/workflows/repo-metrics-monthly.yml diff --git a/.github/workflows/repo-metrics-weekly.yml b/.github/workflows/repo-metrics-weekly.yml new file mode 100644 index 0000000000000..f993bebe7c4dd --- /dev/null +++ b/.github/workflows/repo-metrics-weekly.yml @@ -0,0 +1,58 @@ +name: Weekly repo metrics +on: + workflow_dispatch: + schedule: + - cron: '0 9 * * MON' + +permissions: + issues: write + pull-requests: read + +jobs: + build: + # this workflow will always fail in forks; bail if this isn't running in the upstream + if: github.repository == 'aws/aws-cdk' + name: metrics + runs-on: ubuntu-latest + + steps: + - name: Get dates for last week + shell: bash + run: | + # Calculate the date of the previous Monday + PREVIOUS_MONDAY=$(date -d "7 days ago" "+%Y-%m-%d") + + # Calculate the date of the current Sunday + CURRENT_SUNDAY=$(date -d "1 day ago" "+%Y-%m-%d") + + # Set an environment variable with the date range + echo "$PREVIOUS_MONDAY..$CURRENT_SUNDAY" + echo "last_week=$PREVIOUS_MONDAY..$CURRENT_SUNDAY" >> "$GITHUB_ENV" + + - name: Report on issues + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:aws/aws-cdk is:issue created:${{ env.last_week }} -reason:"not planned"' + + - name: Create report for issues + uses: peter-evans/create-issue-from-file@v5 + with: + title: Weekly issue metrics report + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: paulhcsun + + - name: Report on PRs + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:aws/aws-cdk is:pr created:${{ env.last_week }} -is:draft' + + - name: Create report for PRs + uses: peter-evans/create-issue-from-file@v5 + with: + title: Weekly PR metrics report + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: paulhcsun From 77189be16b4ab007450176010f71f1558ced6430 Mon Sep 17 00:00:00 2001 From: SankyRed <121981451+SankyRed@users.noreply.github.com> Date: Mon, 11 Mar 2024 21:07:58 -0500 Subject: [PATCH 07/11] fix(cli): `cdk ls` returns stack id instead of stack display name (#29447) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Issue # (if applicable) Closes #29420 ### Reason for this change The `cdk list` functionality displays the stacks . For instance ``` > cdk ls producer consumer ``` With the latest changes for list stack dependencies we did add a new flag `-d` to show the dependencies. The dependencies between stacks can be established in 2 ways: 1. Using the resource defined from one stack in another. 2. Using `addDependency()` to add dependency among stacks. Current we are fetching the dependency details through the `CloudStackArtifact`. * Establishing the dependency between stacks through the first method would have the same `displayName` and `id` for the stacks. Using the `-d` flag to display dependencies - ``` ❯ cdk list --show-dependencies - id: producer dependencies: [] - id: consumer dependencies: - id: producer dependencies: [] ``` * Establishing the dependency through `addDependency()` will create a different `displayName` and `id`. In such a case when a user runs `cdk ls` we would want to show the `displayName` and if not present then use the `id` For instance: ``` > cdk ls producer producer/consumer ``` With the `-d` flag we would want to display something like: ``` > cdk ls -d - id: producer dependencies: [] - id: producer/consumer dependencies: - id: producer dependencies: [] ``` With our previous change we didn't consider `displayName` and just fetched `id`s which changes the previous functionality and caused a regression. ### Description of changes With the new changes we are looking out for `displayName` first and if it does not exist we fetch the `id`. ### Description of how you validated changes Added a new unit test and updated integ tests. ### 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* --- .../cli-regression-patches/v2.132.0/NOTES.md | 1 + .../v2.132.0/skip-tests.txt | 4 + .../tests/cli-integ-tests/cli.integtest.ts | 8 +- packages/aws-cdk/lib/list-stacks.ts | 4 +- packages/aws-cdk/test/list-stacks.test.ts | 92 ++++++++++++++++++- 5 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md create mode 100644 packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt diff --git a/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md new file mode 100644 index 0000000000000..6f59e64a3b0b7 --- /dev/null +++ b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md @@ -0,0 +1 @@ +This patch brings the [fix](https://github.com/aws/aws-cdk/issues/29420) into the regression suite. \ No newline at end of file diff --git a/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt new file mode 100644 index 0000000000000..744f3c3396861 --- /dev/null +++ b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt @@ -0,0 +1,4 @@ +# Skipping the test to fix issue https://github.com/aws/aws-cdk/issues/29420. +# cli-integ tests failing for the old tests with the new cli changes for list stacks. + +cdk ls --show-dependencies --json \ No newline at end of file diff --git a/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts b/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts index d3d5b12d94154..3c69673e775ba 100644 --- a/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts +++ b/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts @@ -886,10 +886,10 @@ integTest('cdk ls --show-dependencies --json', withDefaultFixture(async (fixture id: 'list-stacks', dependencies: [ { - id: 'liststacksDependentStack', + id: 'list-stacks/DependentStack', dependencies: [ { - id: 'liststacksDependentStackInnerDependentStack', + id: 'list-stacks/DependentStack/InnerDependentStack', dependencies: [], }, ], @@ -900,11 +900,11 @@ integTest('cdk ls --show-dependencies --json', withDefaultFixture(async (fixture id: 'list-multiple-dependent-stacks', dependencies: [ { - id: 'listmultipledependentstacksDependentStack1', + id: 'list-multiple-dependent-stacks/DependentStack1', dependencies: [], }, { - id: 'listmultipledependentstacksDependentStack2', + id: 'list-multiple-dependent-stacks/DependentStack2', dependencies: [], }, ], diff --git a/packages/aws-cdk/lib/list-stacks.ts b/packages/aws-cdk/lib/list-stacks.ts index e76a1f393a0a9..dddf6fda3613e 100644 --- a/packages/aws-cdk/lib/list-stacks.ts +++ b/packages/aws-cdk/lib/list-stacks.ts @@ -56,7 +56,7 @@ export async function listStacks(toolkit: CdkToolkit, options: ListStacksOptions for (const stack of collectionOfStacks.stackArtifacts) { const data: StackDetails = { - id: stack.id, + id: stack.displayName ?? stack.id, name: stack.stackName, environment: stack.environment, dependencies: [], @@ -82,7 +82,7 @@ export async function listStacks(toolkit: CdkToolkit, options: ListStacksOptions } } else { data.dependencies.push({ - id: depStack.stackArtifacts[0].id, + id: depStack.stackArtifacts[0].displayName ?? depStack.stackArtifacts[0].id, dependencies: [], }); } diff --git a/packages/aws-cdk/test/list-stacks.test.ts b/packages/aws-cdk/test/list-stacks.test.ts index e36081e99c1d2..016a7160549a7 100644 --- a/packages/aws-cdk/test/list-stacks.test.ts +++ b/packages/aws-cdk/test/list-stacks.test.ts @@ -171,7 +171,7 @@ describe('list', () => { dependencies: [], }, { - id: 'Test-Stack-B', + id: 'Test-Stack-A/Test-Stack-B', name: 'Test-Stack-B', environment: { account: '123456789012', @@ -185,7 +185,7 @@ describe('list', () => { }])); }); - test('stacks with nested dependencies', async () => { + test('stacks with display names and have nested dependencies', async () => { let cloudExecutable = new MockCloudExecutable({ stacks: [ MockStack.MOCK_STACK_A, @@ -201,9 +201,84 @@ describe('list', () => { ], }, depends: ['Test-Stack-A'], + displayName: 'Test-Stack-A/Test-Stack-B', }, { stackName: 'Test-Stack-C', + template: { Resources: { TemplateName: 'Test-Stack-C' } }, + env: 'aws://123456789012/bermuda-triangle-1', + metadata: { + '/Test-Stack-C': [ + { + type: cxschema.ArtifactMetadataEntryType.STACK_TAGS, + }, + ], + }, + depends: ['Test-Stack-B'], + displayName: 'Test-Stack-A/Test-Stack-B/Test-Stack-C', + }, + ], + }); + + // GIVEN + const toolkit = new CdkToolkit({ + cloudExecutable, + configuration: cloudExecutable.configuration, + sdkProvider: cloudExecutable.sdkProvider, + deployments: cloudFormation, + }); + + // WHEN + const workflow = await listStacks( toolkit, { selectors: ['Test-Stack-A', 'Test-Stack-A/Test-Stack-B', 'Test-Stack-A/Test-Stack-B/Test-Stack-C'] }); + + // THEN + expect(JSON.stringify(workflow)).toEqual(JSON.stringify([{ + id: 'Test-Stack-A', + name: 'Test-Stack-A', + environment: { + account: '123456789012', + region: 'bermuda-triangle-1', + name: 'aws://123456789012/bermuda-triangle-1', + }, + dependencies: [], + }, + { + id: 'Test-Stack-A/Test-Stack-B', + name: 'Test-Stack-B', + environment: { + account: '123456789012', + region: 'bermuda-triangle-1', + name: 'aws://123456789012/bermuda-triangle-1', + }, + dependencies: [{ + id: 'Test-Stack-A', + dependencies: [], + }], + }, + { + id: 'Test-Stack-A/Test-Stack-B/Test-Stack-C', + name: 'Test-Stack-C', + environment: { + account: '123456789012', + region: 'bermuda-triangle-1', + name: 'aws://123456789012/bermuda-triangle-1', + }, + dependencies: [{ + id: 'Test-Stack-A/Test-Stack-B', + dependencies: [{ + id: 'Test-Stack-A', + dependencies: [], + }], + }], + }])); + }); + + test('stacks with nested dependencies', async () => { + let cloudExecutable = new MockCloudExecutable({ + stacks: [ + MockStack.MOCK_STACK_A, + { + stackName: 'Test-Stack-B', template: { Resources: { TemplateName: 'Test-Stack-B' } }, env: 'aws://123456789012/bermuda-triangle-1', metadata: { @@ -213,6 +288,19 @@ describe('list', () => { }, ], }, + depends: ['Test-Stack-A'], + }, + { + stackName: 'Test-Stack-C', + template: { Resources: { TemplateName: 'Test-Stack-C' } }, + env: 'aws://123456789012/bermuda-triangle-1', + metadata: { + '/Test-Stack-C': [ + { + type: cxschema.ArtifactMetadataEntryType.STACK_TAGS, + }, + ], + }, depends: ['Test-Stack-B'], }, ], From effad1cf8a854789070e963691b30fadf1597afb Mon Sep 17 00:00:00 2001 From: SankyRed <121981451+SankyRed@users.noreply.github.com> Date: Mon, 11 Mar 2024 21:07:58 -0500 Subject: [PATCH 08/11] fix(cli): `cdk ls` returns stack id instead of stack display name (#29447) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Issue # (if applicable) Closes #29420 ### Reason for this change The `cdk list` functionality displays the stacks . For instance ``` > cdk ls producer consumer ``` With the latest changes for list stack dependencies we did add a new flag `-d` to show the dependencies. The dependencies between stacks can be established in 2 ways: 1. Using the resource defined from one stack in another. 2. Using `addDependency()` to add dependency among stacks. Current we are fetching the dependency details through the `CloudStackArtifact`. * Establishing the dependency between stacks through the first method would have the same `displayName` and `id` for the stacks. Using the `-d` flag to display dependencies - ``` ❯ cdk list --show-dependencies - id: producer dependencies: [] - id: consumer dependencies: - id: producer dependencies: [] ``` * Establishing the dependency through `addDependency()` will create a different `displayName` and `id`. In such a case when a user runs `cdk ls` we would want to show the `displayName` and if not present then use the `id` For instance: ``` > cdk ls producer producer/consumer ``` With the `-d` flag we would want to display something like: ``` > cdk ls -d - id: producer dependencies: [] - id: producer/consumer dependencies: - id: producer dependencies: [] ``` With our previous change we didn't consider `displayName` and just fetched `id`s which changes the previous functionality and caused a regression. ### Description of changes With the new changes we are looking out for `displayName` first and if it does not exist we fetch the `id`. ### Description of how you validated changes Added a new unit test and updated integ tests. ### 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* --- .../cli-regression-patches/v2.132.0/NOTES.md | 1 + .../v2.132.0/skip-tests.txt | 4 + .../tests/cli-integ-tests/cli.integtest.ts | 8 +- packages/aws-cdk/lib/list-stacks.ts | 4 +- packages/aws-cdk/test/list-stacks.test.ts | 92 ++++++++++++++++++- 5 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md create mode 100644 packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt diff --git a/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md new file mode 100644 index 0000000000000..6f59e64a3b0b7 --- /dev/null +++ b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/NOTES.md @@ -0,0 +1 @@ +This patch brings the [fix](https://github.com/aws/aws-cdk/issues/29420) into the regression suite. \ No newline at end of file diff --git a/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt new file mode 100644 index 0000000000000..744f3c3396861 --- /dev/null +++ b/packages/@aws-cdk-testing/cli-integ/resources/cli-regression-patches/v2.132.0/skip-tests.txt @@ -0,0 +1,4 @@ +# Skipping the test to fix issue https://github.com/aws/aws-cdk/issues/29420. +# cli-integ tests failing for the old tests with the new cli changes for list stacks. + +cdk ls --show-dependencies --json \ No newline at end of file diff --git a/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts b/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts index d3d5b12d94154..3c69673e775ba 100644 --- a/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts +++ b/packages/@aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts @@ -886,10 +886,10 @@ integTest('cdk ls --show-dependencies --json', withDefaultFixture(async (fixture id: 'list-stacks', dependencies: [ { - id: 'liststacksDependentStack', + id: 'list-stacks/DependentStack', dependencies: [ { - id: 'liststacksDependentStackInnerDependentStack', + id: 'list-stacks/DependentStack/InnerDependentStack', dependencies: [], }, ], @@ -900,11 +900,11 @@ integTest('cdk ls --show-dependencies --json', withDefaultFixture(async (fixture id: 'list-multiple-dependent-stacks', dependencies: [ { - id: 'listmultipledependentstacksDependentStack1', + id: 'list-multiple-dependent-stacks/DependentStack1', dependencies: [], }, { - id: 'listmultipledependentstacksDependentStack2', + id: 'list-multiple-dependent-stacks/DependentStack2', dependencies: [], }, ], diff --git a/packages/aws-cdk/lib/list-stacks.ts b/packages/aws-cdk/lib/list-stacks.ts index e76a1f393a0a9..dddf6fda3613e 100644 --- a/packages/aws-cdk/lib/list-stacks.ts +++ b/packages/aws-cdk/lib/list-stacks.ts @@ -56,7 +56,7 @@ export async function listStacks(toolkit: CdkToolkit, options: ListStacksOptions for (const stack of collectionOfStacks.stackArtifacts) { const data: StackDetails = { - id: stack.id, + id: stack.displayName ?? stack.id, name: stack.stackName, environment: stack.environment, dependencies: [], @@ -82,7 +82,7 @@ export async function listStacks(toolkit: CdkToolkit, options: ListStacksOptions } } else { data.dependencies.push({ - id: depStack.stackArtifacts[0].id, + id: depStack.stackArtifacts[0].displayName ?? depStack.stackArtifacts[0].id, dependencies: [], }); } diff --git a/packages/aws-cdk/test/list-stacks.test.ts b/packages/aws-cdk/test/list-stacks.test.ts index e36081e99c1d2..016a7160549a7 100644 --- a/packages/aws-cdk/test/list-stacks.test.ts +++ b/packages/aws-cdk/test/list-stacks.test.ts @@ -171,7 +171,7 @@ describe('list', () => { dependencies: [], }, { - id: 'Test-Stack-B', + id: 'Test-Stack-A/Test-Stack-B', name: 'Test-Stack-B', environment: { account: '123456789012', @@ -185,7 +185,7 @@ describe('list', () => { }])); }); - test('stacks with nested dependencies', async () => { + test('stacks with display names and have nested dependencies', async () => { let cloudExecutable = new MockCloudExecutable({ stacks: [ MockStack.MOCK_STACK_A, @@ -201,9 +201,84 @@ describe('list', () => { ], }, depends: ['Test-Stack-A'], + displayName: 'Test-Stack-A/Test-Stack-B', }, { stackName: 'Test-Stack-C', + template: { Resources: { TemplateName: 'Test-Stack-C' } }, + env: 'aws://123456789012/bermuda-triangle-1', + metadata: { + '/Test-Stack-C': [ + { + type: cxschema.ArtifactMetadataEntryType.STACK_TAGS, + }, + ], + }, + depends: ['Test-Stack-B'], + displayName: 'Test-Stack-A/Test-Stack-B/Test-Stack-C', + }, + ], + }); + + // GIVEN + const toolkit = new CdkToolkit({ + cloudExecutable, + configuration: cloudExecutable.configuration, + sdkProvider: cloudExecutable.sdkProvider, + deployments: cloudFormation, + }); + + // WHEN + const workflow = await listStacks( toolkit, { selectors: ['Test-Stack-A', 'Test-Stack-A/Test-Stack-B', 'Test-Stack-A/Test-Stack-B/Test-Stack-C'] }); + + // THEN + expect(JSON.stringify(workflow)).toEqual(JSON.stringify([{ + id: 'Test-Stack-A', + name: 'Test-Stack-A', + environment: { + account: '123456789012', + region: 'bermuda-triangle-1', + name: 'aws://123456789012/bermuda-triangle-1', + }, + dependencies: [], + }, + { + id: 'Test-Stack-A/Test-Stack-B', + name: 'Test-Stack-B', + environment: { + account: '123456789012', + region: 'bermuda-triangle-1', + name: 'aws://123456789012/bermuda-triangle-1', + }, + dependencies: [{ + id: 'Test-Stack-A', + dependencies: [], + }], + }, + { + id: 'Test-Stack-A/Test-Stack-B/Test-Stack-C', + name: 'Test-Stack-C', + environment: { + account: '123456789012', + region: 'bermuda-triangle-1', + name: 'aws://123456789012/bermuda-triangle-1', + }, + dependencies: [{ + id: 'Test-Stack-A/Test-Stack-B', + dependencies: [{ + id: 'Test-Stack-A', + dependencies: [], + }], + }], + }])); + }); + + test('stacks with nested dependencies', async () => { + let cloudExecutable = new MockCloudExecutable({ + stacks: [ + MockStack.MOCK_STACK_A, + { + stackName: 'Test-Stack-B', template: { Resources: { TemplateName: 'Test-Stack-B' } }, env: 'aws://123456789012/bermuda-triangle-1', metadata: { @@ -213,6 +288,19 @@ describe('list', () => { }, ], }, + depends: ['Test-Stack-A'], + }, + { + stackName: 'Test-Stack-C', + template: { Resources: { TemplateName: 'Test-Stack-C' } }, + env: 'aws://123456789012/bermuda-triangle-1', + metadata: { + '/Test-Stack-C': [ + { + type: cxschema.ArtifactMetadataEntryType.STACK_TAGS, + }, + ], + }, depends: ['Test-Stack-B'], }, ], From cac419929ef693922987e6f3a7c9ba48d150a241 Mon Sep 17 00:00:00 2001 From: SankyRed Date: Mon, 11 Mar 2024 22:20:24 -0500 Subject: [PATCH 09/11] chore(release): 2.132.1 --- CHANGELOG.v2.alpha.md | 2 ++ CHANGELOG.v2.md | 7 +++++++ version.v2.json | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.v2.alpha.md b/CHANGELOG.v2.alpha.md index 80d4811c7e8fd..65a6fe0616826 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.132.1-alpha.0](https://github.com/aws/aws-cdk/compare/v2.132.0-alpha.0...v2.132.1-alpha.0) (2024-03-12) + ## [2.132.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.131.0-alpha.0...v2.132.0-alpha.0) (2024-03-08) diff --git a/CHANGELOG.v2.md b/CHANGELOG.v2.md index 98fcef35a476f..c1a7bbc1e3a26 100644 --- a/CHANGELOG.v2.md +++ b/CHANGELOG.v2.md @@ -2,6 +2,13 @@ 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.132.1](https://github.com/aws/aws-cdk/compare/v2.132.0...v2.132.1) (2024-03-12) + + +### Bug Fixes + +* **cli:** `cdk ls` returns stack id instead of stack display name ([#29447](https://github.com/aws/aws-cdk/issues/29447)) ([effad1c](https://github.com/aws/aws-cdk/commit/effad1cf8a854789070e963691b30fadf1597afb)), closes [#29420](https://github.com/aws/aws-cdk/issues/29420) + ## [2.132.0](https://github.com/aws/aws-cdk/compare/v2.131.0...v2.132.0) (2024-03-08) diff --git a/version.v2.json b/version.v2.json index 176e52d9a2492..213eefdc1ca87 100644 --- a/version.v2.json +++ b/version.v2.json @@ -1,4 +1,4 @@ { - "version": "2.132.0", - "alphaVersion": "2.132.0-alpha.0" + "version": "2.132.1", + "alphaVersion": "2.132.1-alpha.0" } \ No newline at end of file From 79730e6acc1f3883c2c93f3439879271f81fdbf7 Mon Sep 17 00:00:00 2001 From: SankyRed Date: Mon, 11 Mar 2024 22:47:38 -0500 Subject: [PATCH 10/11] chore: update changelog --- CHANGELOG.v2.alpha.md | 2 +- CHANGELOG.v2.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.v2.alpha.md b/CHANGELOG.v2.alpha.md index 65a6fe0616826..c65bc01de5f12 100644 --- a/CHANGELOG.v2.alpha.md +++ b/CHANGELOG.v2.alpha.md @@ -2,7 +2,7 @@ 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.132.1-alpha.0](https://github.com/aws/aws-cdk/compare/v2.132.0-alpha.0...v2.132.1-alpha.0) (2024-03-12) +## [2.132.1-alpha.0](https://github.com/aws/aws-cdk/compare/v2.132.0-alpha.0...v2.132.1-alpha.0) (2024-03-12) ## [2.132.0-alpha.0](https://github.com/aws/aws-cdk/compare/v2.131.0-alpha.0...v2.132.0-alpha.0) (2024-03-08) diff --git a/CHANGELOG.v2.md b/CHANGELOG.v2.md index c1a7bbc1e3a26..bf338bfa1ad6d 100644 --- a/CHANGELOG.v2.md +++ b/CHANGELOG.v2.md @@ -2,7 +2,7 @@ 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.132.1](https://github.com/aws/aws-cdk/compare/v2.132.0...v2.132.1) (2024-03-12) +## [2.132.1](https://github.com/aws/aws-cdk/compare/v2.132.0...v2.132.1) (2024-03-12) ### Bug Fixes From a1fbd51d7fa6791b6a55004a938ec157194b89ba Mon Sep 17 00:00:00 2001 From: Nicolas Abdelnour <107426072+abdelnn@users.noreply.github.com> Date: Tue, 12 Mar 2024 11:00:39 -0700 Subject: [PATCH 11/11] fix(stepfunctions): the retry field in CustomState is not iterable (#29403) ### Issue # (if applicable) Closes #29274 ### Reason for this change CDK users were unable to specify their retry strategy if it was specified inline in their ASL state machine definition ### Description of changes Checks if the state definition has an inline retry policy defined. If it does, add it to the existing strategy defined using `addRetry` (if there is one defined, this is where it was failing before) ### Description of how you validated changes Added unit and integration tests ### 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* --- ...epfunctions-custom-state-integ.assets.json | 4 +- ...functions-custom-state-integ.template.json | 2 +- .../manifest.json | 2 +- .../integ.custom-state.js.snapshot/tree.json | 10 ++- .../test/integ.custom-state.ts | 6 +- .../lib/states/custom-state.ts | 4 +- .../test/custom-state.test.ts | 67 +++++++++++++++++++ 7 files changed, 87 insertions(+), 8 deletions(-) diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.assets.json index 3454b8b875b21..05b3c392f0c6d 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.assets.json @@ -1,7 +1,7 @@ { "version": "36.0.0", "files": { - "71bbec51055d157bf20b5d4967405c92dfbeb3ed29cc17b9d9bb976120c48d1c": { + "d69f65db580786444054b9064fa98c75f899eca808bd6a50efdcb9a27ecf5bdf": { "source": { "path": "aws-stepfunctions-custom-state-integ.template.json", "packaging": "file" @@ -9,7 +9,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "71bbec51055d157bf20b5d4967405c92dfbeb3ed29cc17b9d9bb976120c48d1c.json", + "objectKey": "d69f65db580786444054b9064fa98c75f899eca808bd6a50efdcb9a27ecf5bdf.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.template.json index d01f5b47541fd..e350c49d15925 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/aws-stepfunctions-custom-state-integ.template.json @@ -20,7 +20,7 @@ "StateMachine2E01A3A5": { "Type": "AWS::StepFunctions::StateMachine", "Properties": { - "DefinitionString": "{\"StartAt\":\"my custom task\",\"States\":{\"my custom task\":{\"Next\":\"final step\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::dynamodb:putItem\",\"Parameters\":{\"TableName\":\"my-cool-table\",\"Item\":{\"id\":{\"S\":\"my-entry\"}}},\"ResultPath\":null,\"Retry\":[{\"ErrorEquals\":[\"States.Timeout\"],\"IntervalSeconds\":10,\"MaxAttempts\":5},{\"ErrorEquals\":[\"States.Permissions\"],\"IntervalSeconds\":20,\"MaxAttempts\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"Next\":\"failed\"}]},\"final step\":{\"Type\":\"Pass\",\"End\":true},\"failed\":{\"Type\":\"Fail\",\"Error\":\"DidNotWork\",\"Cause\":\"We got stuck\"}},\"TimeoutSeconds\":30}", + "DefinitionString": "{\"StartAt\":\"my custom task\",\"States\":{\"my custom task\":{\"Next\":\"my custom task with inline Retriers\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::dynamodb:putItem\",\"Parameters\":{\"TableName\":\"my-cool-table\",\"Item\":{\"id\":{\"S\":\"my-entry\"}}},\"ResultPath\":null,\"Retry\":[{\"ErrorEquals\":[\"States.Timeout\"],\"IntervalSeconds\":10,\"MaxAttempts\":5},{\"ErrorEquals\":[\"States.Permissions\"],\"IntervalSeconds\":20,\"MaxAttempts\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"Next\":\"failed\"}]},\"my custom task with inline Retriers\":{\"Next\":\"final step\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::dynamodb:putItem\",\"Parameters\":{\"TableName\":\"my-cool-table\",\"Item\":{\"id\":{\"S\":\"my-entry\"}}},\"ResultPath\":null,\"Retry\":[{\"ErrorEquals\":[\"States.Permissions\"],\"IntervalSeconds\":20,\"MaxAttempts\":2}]},\"final step\":{\"Type\":\"Pass\",\"End\":true},\"failed\":{\"Type\":\"Fail\",\"Error\":\"DidNotWork\",\"Cause\":\"We got stuck\"}},\"TimeoutSeconds\":30}", "RoleArn": { "Fn::GetAtt": [ "StateMachineRoleB840431D", diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/manifest.json index a244339d85089..dcd9a742e3a48 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/manifest.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/manifest.json @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/71bbec51055d157bf20b5d4967405c92dfbeb3ed29cc17b9d9bb976120c48d1c.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d69f65db580786444054b9064fa98c75f899eca808bd6a50efdcb9a27ecf5bdf.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/tree.json index cb3e3dafba612..76e337ccedcba 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/tree.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.js.snapshot/tree.json @@ -32,6 +32,14 @@ "version": "0.0.0" } }, + "my custom task with inline Retriers": { + "id": "my custom task with inline Retriers", + "path": "aws-stepfunctions-custom-state-integ/my custom task with inline Retriers", + "constructInfo": { + "fqn": "aws-cdk-lib.aws_stepfunctions.CustomState", + "version": "0.0.0" + } + }, "StateMachine": { "id": "StateMachine", "path": "aws-stepfunctions-custom-state-integ/StateMachine", @@ -85,7 +93,7 @@ "attributes": { "aws:cdk:cloudformation:type": "AWS::StepFunctions::StateMachine", "aws:cdk:cloudformation:props": { - "definitionString": "{\"StartAt\":\"my custom task\",\"States\":{\"my custom task\":{\"Next\":\"final step\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::dynamodb:putItem\",\"Parameters\":{\"TableName\":\"my-cool-table\",\"Item\":{\"id\":{\"S\":\"my-entry\"}}},\"ResultPath\":null,\"Retry\":[{\"ErrorEquals\":[\"States.Timeout\"],\"IntervalSeconds\":10,\"MaxAttempts\":5},{\"ErrorEquals\":[\"States.Permissions\"],\"IntervalSeconds\":20,\"MaxAttempts\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"Next\":\"failed\"}]},\"final step\":{\"Type\":\"Pass\",\"End\":true},\"failed\":{\"Type\":\"Fail\",\"Error\":\"DidNotWork\",\"Cause\":\"We got stuck\"}},\"TimeoutSeconds\":30}", + "definitionString": "{\"StartAt\":\"my custom task\",\"States\":{\"my custom task\":{\"Next\":\"my custom task with inline Retriers\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::dynamodb:putItem\",\"Parameters\":{\"TableName\":\"my-cool-table\",\"Item\":{\"id\":{\"S\":\"my-entry\"}}},\"ResultPath\":null,\"Retry\":[{\"ErrorEquals\":[\"States.Timeout\"],\"IntervalSeconds\":10,\"MaxAttempts\":5},{\"ErrorEquals\":[\"States.Permissions\"],\"IntervalSeconds\":20,\"MaxAttempts\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"Next\":\"failed\"}]},\"my custom task with inline Retriers\":{\"Next\":\"final step\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::dynamodb:putItem\",\"Parameters\":{\"TableName\":\"my-cool-table\",\"Item\":{\"id\":{\"S\":\"my-entry\"}}},\"ResultPath\":null,\"Retry\":[{\"ErrorEquals\":[\"States.Permissions\"],\"IntervalSeconds\":20,\"MaxAttempts\":2}]},\"final step\":{\"Type\":\"Pass\",\"End\":true},\"failed\":{\"Type\":\"Fail\",\"Error\":\"DidNotWork\",\"Cause\":\"We got stuck\"}},\"TimeoutSeconds\":30}", "roleArn": { "Fn::GetAtt": [ "StateMachineRoleB840431D", diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.ts index 4beae53782d81..a3bd05c8de318 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-stepfunctions/test/integ.custom-state.ts @@ -39,6 +39,10 @@ const custom = new sfn.CustomState(stack, 'my custom task', { stateJson, }); +const customWithInlineRetry = new sfn.CustomState(stack, 'my custom task with inline Retriers', { + stateJson, +}); + custom.addCatch(failure); custom.addRetry({ errors: [sfn.Errors.TIMEOUT], @@ -46,7 +50,7 @@ custom.addRetry({ maxAttempts: 5, }); -const chain = sfn.Chain.start(custom).next(finalStatus); +const chain = sfn.Chain.start(custom).next(customWithInlineRetry).next(finalStatus); const sm = new sfn.StateMachine(stack, 'StateMachine', { definition: chain, diff --git a/packages/aws-cdk-lib/aws-stepfunctions/lib/states/custom-state.ts b/packages/aws-cdk-lib/aws-stepfunctions/lib/states/custom-state.ts index 4f79376c0cded..63744f75e9433 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions/lib/states/custom-state.ts +++ b/packages/aws-cdk-lib/aws-stepfunctions/lib/states/custom-state.ts @@ -74,9 +74,9 @@ export class CustomState extends State implements IChainable, INextable { ...this.renderRetryCatch(), }; - // merge the Retry filed defined in the stateJson into the state + // merge the Retry field defined in the stateJson into the state if (Array.isArray(this.stateJson.Retry)) { - state.Retry = [...state.Retry, ...this.stateJson.Retry]; + state.Retry = Array.isArray(state.Retry) ? [...state.Retry, ...this.stateJson.Retry] : [...this.stateJson.Retry]; } return state; diff --git a/packages/aws-cdk-lib/aws-stepfunctions/test/custom-state.test.ts b/packages/aws-cdk-lib/aws-stepfunctions/test/custom-state.test.ts index 1d5d868ad96ea..610e25b425ad9 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions/test/custom-state.test.ts +++ b/packages/aws-cdk-lib/aws-stepfunctions/test/custom-state.test.ts @@ -242,4 +242,71 @@ describe('Custom State', () => { }, ); }); + + test('expect retry to not fail when specifying strategy inline', () => { + // GIVEN + const custom = new sfn.CustomState(stack, 'Custom', { + stateJson: { + Type: 'Task', + Resource: 'arn:aws:states:::dynamodb:putItem', + Parameters: { + TableName: 'MyTable', + Item: { + id: { + S: 'MyEntry', + }, + }, + }, + ResultPath: null, + Retry: [ + { + ErrorEquals: [ + 'Lambda.ServiceException', + 'Lambda.AWSLambdaException', + 'Lambda.SdkClientException', + 'Lambda.TooManyRequestsException', + ], + IntervalSeconds: 20, + MaxAttempts: 2, + }, + ], + }, + }); + const chain = sfn.Chain.start(custom); + + // THEN + expect(render(stack, chain)).toStrictEqual( + { + StartAt: 'Custom', + States: { + Custom: { + Type: 'Task', + Resource: 'arn:aws:states:::dynamodb:putItem', + Parameters: { + TableName: 'MyTable', + Item: { + id: { + S: 'MyEntry', + }, + }, + }, + ResultPath: null, + Retry: [ + { + ErrorEquals: [ + 'Lambda.ServiceException', + 'Lambda.AWSLambdaException', + 'Lambda.SdkClientException', + 'Lambda.TooManyRequestsException', + ], + IntervalSeconds: 20, + MaxAttempts: 2, + }, + ], + End: true, + }, + }, + }, + ); + }); }); \ No newline at end of file