From c2889d8339d510f2ffd0eb304b8130db665abfe4 Mon Sep 17 00:00:00 2001 From: Michael Sambol Date: Mon, 9 Sep 2024 11:31:32 -0700 Subject: [PATCH 1/3] chore(neptune-alpha): add engine versions, instance types (#31363) Closes #31244. --- .../@aws-cdk/aws-neptune-alpha/lib/cluster.ts | 20 +++ .../aws-neptune-alpha/lib/instance.ts | 163 +++++++++++++++++- 2 files changed, 181 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-neptune-alpha/lib/cluster.ts b/packages/@aws-cdk/aws-neptune-alpha/lib/cluster.ts index cc68d8a49cefd..089333b436237 100644 --- a/packages/@aws-cdk/aws-neptune-alpha/lib/cluster.ts +++ b/packages/@aws-cdk/aws-neptune-alpha/lib/cluster.ts @@ -76,6 +76,14 @@ export class EngineVersion { * Neptune engine version 1.2.1.0 */ public static readonly V1_2_1_0 = new EngineVersion('1.2.1.0'); + /** + * Neptune engine version 1.2.1.1 + */ + public static readonly V1_2_1_1 = new EngineVersion('1.2.1.1'); + /** + * Neptune engine version 1.2.1.2 + */ + public static readonly V1_2_1_2 = new EngineVersion('1.2.1.2'); /** * Neptune engine version 1.3.0.0 */ @@ -84,6 +92,18 @@ export class EngineVersion { * Neptune engine version 1.3.1.0 */ public static readonly V1_3_1_0 = new EngineVersion('1.3.1.0'); + /** + * Neptune engine version 1.3.2.0 + */ + public static readonly V1_3_2_0 = new EngineVersion('1.3.2.0'); + /** + * Neptune engine version 1.3.2.1 + */ + public static readonly V1_3_2_1 = new EngineVersion('1.3.2.1'); + /** + * Neptune engine version 1.3.3.0 + */ + public static readonly V1_3_3_0 = new EngineVersion('1.3.3.0'); /** * Constructor for specifying a custom engine version diff --git a/packages/@aws-cdk/aws-neptune-alpha/lib/instance.ts b/packages/@aws-cdk/aws-neptune-alpha/lib/instance.ts index eac8c65df3aa5..a3c8bae9cf389 100644 --- a/packages/@aws-cdk/aws-neptune-alpha/lib/instance.ts +++ b/packages/@aws-cdk/aws-neptune-alpha/lib/instance.ts @@ -12,6 +12,75 @@ import { IParameterGroup } from './parameter-group'; * used for defining `DatabaseInstanceProps.instanceType`. */ export class InstanceType { + /** + * db.x2g.large + */ + public static readonly X2G_LARGE = InstanceType.of('db.x2g.large'); + + /** + * db.x2g.xlarge + */ + public static readonly X2G_XLARGE = InstanceType.of('db.x2g.xlarge'); + + /** + * db.x2g.2xlarge + */ + public static readonly X2G_2XLARGE = InstanceType.of('db.x2g.2xlarge'); + + /** + * db.x2g.4xlarge + */ + public static readonly X2G_4XLARGE = InstanceType.of('db.x2g.4xlarge'); + + /** + * db.x2g.8xlarge + */ + public static readonly X2G_8XLARGE = InstanceType.of('db.x2g.8xlarge'); + + /** + * db.x2g.12xlarge + */ + public static readonly X2G_12XLARGE = InstanceType.of('db.x2g.12xlarge'); + + /** + * db.x2g.16xlarge + */ + public static readonly X2G_16XLARGE = InstanceType.of('db.x2g.16xlarge'); + + /** + * db.x2iedn.xlarge + */ + public static readonly X2IEDN_XLARGE = InstanceType.of('db.x2iedn.xlarge'); + + /** + * db.x2iedn.2xlarge + */ + public static readonly X2IEDN_2XLARGE = InstanceType.of('db.x2iedn.2xlarge'); + + /** + * db.x2iedn.4xlarge + */ + public static readonly X2IEDN_4XLARGE = InstanceType.of('db.x2iedn.4xlarge'); + + /** + * db.x2iedn.8xlarge + */ + public static readonly X2IEDN_8XLARGE = InstanceType.of('db.x2iedn.8xlarge'); + + /** + * db.x2iedn.16xlarge + */ + public static readonly X2IEDN_16XLARGE = InstanceType.of('db.x2iedn.16xlarge'); + + /** + * db.x2iedn.24xlarge + */ + public static readonly X2IEDN_24XLARGE = InstanceType.of('db.x2iedn.24xlarge'); + + /** + * db.x2iedn.32xlarge + */ + public static readonly X2IEDN_32XLARGE = InstanceType.of('db.x2iedn.32xlarge'); /** * db.r6g.large @@ -49,9 +118,49 @@ export class InstanceType { public static readonly R6G_16XLARGE = InstanceType.of('db.r6g.16xlarge'); /** - * db.t4g.medium + * db.r6i.large */ - public static readonly T4G_MEDIUM = InstanceType.of('db.t4g.medium'); + public static readonly R6I_LARGE = InstanceType.of('db.r6i.large'); + + /** + * db.r6i.xlarge + */ + public static readonly R6I_XLARGE = InstanceType.of('db.r6i.xlarge'); + + /** + * db.r6i.2xlarge + */ + public static readonly R6I_2XLARGE = InstanceType.of('db.r6i.2xlarge'); + + /** + * db.r6i.4xlarge + */ + public static readonly R6I_4XLARGE = InstanceType.of('db.r6i.4xlarge'); + + /** + * db.r6i.8xlarge + */ + public static readonly R6I_8XLARGE = InstanceType.of('db.r6i.8xlarge'); + + /** + * db.r6i.12xlarge + */ + public static readonly R6I_12XLARGE = InstanceType.of('db.r6i.12xlarge'); + + /** + * db.r6i.16xlarge + */ + public static readonly R6I_16XLARGE = InstanceType.of('db.r6i.16xlarge'); + + /** + * db.r6i.24xlarge + */ + public static readonly R6I_24XLARGE = InstanceType.of('db.r6i.24xlarge'); + + /** + * db.r6i.32xlarge + */ + public static readonly R6I_32XLARGE = InstanceType.of('db.r6i.32xlarge'); /** * db.r5.large @@ -83,11 +192,56 @@ export class InstanceType { */ public static readonly R5_12XLARGE = InstanceType.of('db.r5.12xlarge'); + /** + * db.r5.16xlarge + */ + public static readonly R5_16XLARGE = InstanceType.of('db.r5.16xlarge'); + /** * db.r5.24xlarge */ public static readonly R5_24XLARGE = InstanceType.of('db.r5.24xlarge'); + /** + * db.r5d.large + */ + public static readonly R5D_LARGE = InstanceType.of('db.r5d.large'); + + /** + * db.r5d.xlarge + */ + public static readonly R5D_XLARGE = InstanceType.of('db.r5d.xlarge'); + + /** + * db.r5d.2xlarge + */ + public static readonly R5D_2XLARGE = InstanceType.of('db.r5d.2xlarge'); + + /** + * db.r5d.4xlarge + */ + public static readonly R5D_4XLARGE = InstanceType.of('db.r5d.4xlarge'); + + /** + * db.r5d.8xlarge + */ + public static readonly R5D_8XLARGE = InstanceType.of('db.r5d.8xlarge'); + + /** + * db.r5d.12xlarge + */ + public static readonly R5D_12XLARGE = InstanceType.of('db.r5d.12xlarge'); + + /** + * db.r5d.16xlarge + */ + public static readonly R5D_16XLARGE = InstanceType.of('db.r5d.16xlarge'); + + /** + * db.r5d.24xlarge + */ + public static readonly R5D_24XLARGE = InstanceType.of('db.r5d.24xlarge'); + /** * db.r4.large */ @@ -113,6 +267,11 @@ export class InstanceType { */ public static readonly R4_8XLARGE = InstanceType.of('db.r4.8xlarge'); + /** + * db.t4g.medium + */ + public static readonly T4G_MEDIUM = InstanceType.of('db.t4g.medium'); + /** * db.t3.medium */ From 00043b7bcdc8c961aee4fe60b5f53c2e8a1766e1 Mon Sep 17 00:00:00 2001 From: Kazuho Cryer-Shinozuka Date: Tue, 10 Sep 2024 04:12:14 +0900 Subject: [PATCH 2/3] chore(ec2): add interface VPC endpoints (#31359) ### Issue # (if applicable) None ### Reason for this change There some interface vpc endpoints which is not supported by AWS CDK. ### Description of changes I've added the following VPC endpoints. - airflow.api-fips - airflow.env-fips - applicationinsights - emr-serverless-services.livy - pcs - pcs-fips - pi - pi-fips - q - rbin - service.user-subscriptions - ssm-fips - ssm-quicksetup - timestream-influxdb-fips - wellarchitected Since a PR has already been created for the following endpoints, this PR does not address them. - kinesis-streams-fips (#31350) - dynamodb (#30162) ### Description of how you validated changes These endpoints are obtained from AWS CLI. ```sh $ aws ec2 describe-vpc-endpoint-services --filters Name=service-type,Values=Interface Name=owner,Values=amazon --region us-east-1 --query ServiceNames ``` ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts index 29ac27d97d8f2..2225a2ea48ef9 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts @@ -275,7 +275,9 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly ACCESS_ANALYZER = new InterfaceVpcEndpointAwsService('access-analyzer'); public static readonly ACCOUNT_MANAGEMENT = new InterfaceVpcEndpointAwsService('account'); public static readonly AIRFLOW_API = new InterfaceVpcEndpointAwsService('airflow.api'); + public static readonly AIRFLOW_API_FIPS = new InterfaceVpcEndpointAwsService('airflow.api-fips'); public static readonly AIRFLOW_ENV = new InterfaceVpcEndpointAwsService('airflow.env'); + public static readonly AIRFLOW_ENV_FIPS = new InterfaceVpcEndpointAwsService('airflow.env-fips'); public static readonly AIRFLOW_OPS = new InterfaceVpcEndpointAwsService('airflow.ops'); public static readonly APIGATEWAY = new InterfaceVpcEndpointAwsService('execute-api'); /** @deprecated - Use InterfaceVpcEndpointAwsService.APP_MESH_ENVOY_MANAGEMENT instead. */ @@ -323,6 +325,7 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly CODEWHISPERER = new InterfaceVpcEndpointAwsService('codewhisperer'); /** @deprecated - Use InterfaceVpcEndpointAwsService.CLOUDWATCH_MONITORING instead. */ public static readonly CLOUDWATCH = new InterfaceVpcEndpointAwsService('monitoring'); + public static readonly CLOUDWATCH_APPLICATION_INSIGHTS = new InterfaceVpcEndpointAwsService('applicationinsights'); public static readonly CLOUDWATCH_APPLICATION_SIGNALS = new InterfaceVpcEndpointAwsService('application-signals'); /** @deprecated - Use InterfaceVpcEndpointAwsService.EVENTBRIDGE instead. */ public static readonly CLOUDWATCH_EVENTS = new InterfaceVpcEndpointAwsService('events'); @@ -395,6 +398,7 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly EMR = new InterfaceVpcEndpointAwsService('elasticmapreduce'); public static readonly EMR_EKS = new InterfaceVpcEndpointAwsService('emr-containers'); public static readonly EMR_SERVERLESS = new InterfaceVpcEndpointAwsService('emr-serverless'); + public static readonly EMR_SERVERLESS_LIVY = new InterfaceVpcEndpointAwsService('emr-serverless-services.livy'); public static readonly EMR_WAL = new InterfaceVpcEndpointAwsService('emrwal.prod'); public static readonly ENTITY_RESOLUTION = new InterfaceVpcEndpointAwsService('entityresolution'); public static readonly EVENTBRIDGE = new InterfaceVpcEndpointAwsService('events'); @@ -485,6 +489,8 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly OMICS_TAGS = new InterfaceVpcEndpointAwsService('tags-omics'); public static readonly OMICS_WORKFLOWS = new InterfaceVpcEndpointAwsService('workflows-omics'); public static readonly PANORAMA = new InterfaceVpcEndpointAwsService('panorama'); + public static readonly PARALLEL_COMPUTING_SERVICE = new InterfaceVpcEndpointAwsService('pcs'); + public static readonly PARALLEL_COMPUTING_SERVICE_FIPS = new InterfaceVpcEndpointAwsService('pcs-fips'); public static readonly PAYMENT_CRYPTOGRAPHY_CONTROLPLANE = new InterfaceVpcEndpointAwsService('payment-cryptography.controlplane'); public static readonly PAYMENT_CRYTOGRAPHY_DATAPLANE = new InterfaceVpcEndpointAwsService('payment-cryptography.dataplane'); public static readonly PERSONALIZE = new InterfaceVpcEndpointAwsService('personalize'); @@ -505,12 +511,16 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly PROMETHEUS_WORKSPACES = new InterfaceVpcEndpointAwsService('aps-workspaces'); public static readonly PROTON = new InterfaceVpcEndpointAwsService('proton'); public static readonly Q_BUSSINESS = new InterfaceVpcEndpointAwsService('qbusiness', 'aws.api'); + public static readonly Q_DEVELOPER = new InterfaceVpcEndpointAwsService('q'); public static readonly Q_DEVELOPER_CODE_WHISPERER = new InterfaceVpcEndpointAwsService('codewhisperer'); public static readonly Q_DEVELOPER_QAPPS = new InterfaceVpcEndpointAwsService('qapps'); + public static readonly Q_USER_SUBSCRIPTIONS = new InterfaceVpcEndpointAwsService('service.user-subscriptions'); public static readonly QLDB = new InterfaceVpcEndpointAwsService('qldb.session'); public static readonly QUICKSIGHT_WEBSITE = new InterfaceVpcEndpointAwsService('quicksight-website'); public static readonly RDS = new InterfaceVpcEndpointAwsService('rds'); public static readonly RDS_DATA = new InterfaceVpcEndpointAwsService('rds-data'); + public static readonly RDS_PERFORMANCE_INSIGHTS = new InterfaceVpcEndpointAwsService('pi'); + public static readonly RDS_PERFORMANCE_INSIGHTS_FIPS = new InterfaceVpcEndpointAwsService('pi-fips'); public static readonly REDSHIFT = new InterfaceVpcEndpointAwsService('redshift'); public static readonly REDSHIFT_FIPS = new InterfaceVpcEndpointAwsService('redshift-fips'); public static readonly REDSHIFT_DATA = new InterfaceVpcEndpointAwsService('redshift-data'); @@ -523,6 +533,7 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly REKOGNITION_STREAMING_FIPS = new InterfaceVpcEndpointAwsService('streaming-rekognition-fips'); public static readonly REPOST_SPACE = new InterfaceVpcEndpointAwsService('repostspace'); public static readonly ROBOMAKER = new InterfaceVpcEndpointAwsService('robomaker'); + public static readonly RECYCLE_BIN = new InterfaceVpcEndpointAwsService('rbin'); public static readonly S3 = new InterfaceVpcEndpointAwsService('s3'); public static readonly S3_OUTPOSTS = new InterfaceVpcEndpointAwsService('s3-outposts'); public static readonly S3_MULTI_REGION_ACCESS_POINTS = new InterfaceVpcEndpointAwsService('s3-global.accesspoint', 'com.amazonaws', undefined, { global: true }); @@ -548,9 +559,11 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly SNS = new InterfaceVpcEndpointAwsService('sns'); public static readonly SQS = new InterfaceVpcEndpointAwsService('sqs'); public static readonly SSM = new InterfaceVpcEndpointAwsService('ssm'); + public static readonly SSM_FIPS = new InterfaceVpcEndpointAwsService('ssm-fips'); public static readonly SSM_MESSAGES = new InterfaceVpcEndpointAwsService('ssmmessages'); public static readonly SSM_CONTACTS = new InterfaceVpcEndpointAwsService('ssm-contacts'); public static readonly SSM_INCIDENTS = new InterfaceVpcEndpointAwsService('ssm-incidents'); + public static readonly SSM_QUICK_SETUP = new InterfaceVpcEndpointAwsService('ssm-quicksetup'); public static readonly STEP_FUNCTIONS = new InterfaceVpcEndpointAwsService('states'); public static readonly STEP_FUNCTIONS_SYNC = new InterfaceVpcEndpointAwsService('sync-states'); public static readonly STORAGE_GATEWAY = new InterfaceVpcEndpointAwsService('storagegateway'); @@ -562,12 +575,14 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly TEXTRACT = new InterfaceVpcEndpointAwsService('textract'); public static readonly TEXTRACT_FIPS = new InterfaceVpcEndpointAwsService('textract-fips'); public static readonly TIMESTREAM_INFLUXDB = new InterfaceVpcEndpointAwsService('timestream-influxdb'); + public static readonly TIMESTREAM_INFLUXDB_FIPS = new InterfaceVpcEndpointAwsService('timestream-influxdb-fips'); public static readonly TRANSCRIBE = new InterfaceVpcEndpointAwsService('transcribe'); public static readonly TRANSCRIBE_STREAMING = new InterfaceVpcEndpointAwsService('transcribestreaming'); public static readonly TRANSFER = new InterfaceVpcEndpointAwsService('transfer'); public static readonly TRANSFER_SERVER = new InterfaceVpcEndpointAwsService('transfer.server'); public static readonly TRANSLATE = new InterfaceVpcEndpointAwsService('translate'); public static readonly TRUSTED_ADVISOR = new InterfaceVpcEndpointAwsService('trustedadvisor'); + public static readonly WELL_ARCHITECTED_TOOL = new InterfaceVpcEndpointAwsService('wellarchitected'); public static readonly WORKSPACES = new InterfaceVpcEndpointAwsService('workspaces'); public static readonly WORKSPACES_THIN_CLIENT = new InterfaceVpcEndpointAwsService('thinclient.api'); public static readonly XRAY = new InterfaceVpcEndpointAwsService('xray'); From 1132887c99c0f156a0438bee7df5a7b3397bec76 Mon Sep 17 00:00:00 2001 From: mazyu36 Date: Tue, 10 Sep 2024 05:58:47 +0900 Subject: [PATCH 3/3] chore(ec2): support FIPS interface VPC endpoint for Kinesis Data Streams (#31350) Add FIPS 140-3 enabled interface VPC endpoint for KDS. Ref * https://aws.amazon.com/about-aws/whats-new/2024/09/amazon-kinesis-data-streams-fips-140-3-interface-vpc-endpoint/ * https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts index 2225a2ea48ef9..f69caf275bd24 100644 --- a/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts +++ b/packages/aws-cdk-lib/aws-ec2/lib/vpc-endpoint.ts @@ -450,6 +450,7 @@ export class InterfaceVpcEndpointAwsService implements IInterfaceVpcEndpointServ public static readonly KEYSPACES = new InterfaceVpcEndpointAwsService('cassandra', '', 9142); public static readonly KEYSPACES_FIPS = new InterfaceVpcEndpointAwsService('cassandra-fips', '', 9142); public static readonly KINESIS_STREAMS = new InterfaceVpcEndpointAwsService('kinesis-streams'); + public static readonly KINESIS_STREAMS_FIPS = new InterfaceVpcEndpointAwsService('kinesis-streams-fips'); public static readonly KINESIS_FIREHOSE = new InterfaceVpcEndpointAwsService('kinesis-firehose'); public static readonly KMS = new InterfaceVpcEndpointAwsService('kms'); public static readonly KMS_FIPS = new InterfaceVpcEndpointAwsService('kms-fips');