aws-cdk-lib 2.194.0__py3-none-any.whl → 2.196.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (108) hide show
  1. aws_cdk/__init__.py +435 -20
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.194.0.jsii.tgz → aws-cdk-lib@2.196.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +1 -1
  5. aws_cdk/aws_amazonmq/__init__.py +2 -2
  6. aws_cdk/aws_apigateway/__init__.py +208 -70
  7. aws_cdk/aws_apigatewayv2/__init__.py +155 -24
  8. aws_cdk/aws_appconfig/__init__.py +24 -0
  9. aws_cdk/aws_applicationautoscaling/__init__.py +6 -0
  10. aws_cdk/aws_appmesh/__init__.py +42 -0
  11. aws_cdk/aws_appsync/__init__.py +92 -20
  12. aws_cdk/aws_autoscaling/__init__.py +24 -0
  13. aws_cdk/aws_backup/__init__.py +53 -14
  14. aws_cdk/aws_batch/__init__.py +72 -0
  15. aws_cdk/aws_bedrock/__init__.py +1201 -18
  16. aws_cdk/aws_budgets/__init__.py +569 -0
  17. aws_cdk/aws_certificatemanager/__init__.py +21 -0
  18. aws_cdk/aws_chatbot/__init__.py +6 -0
  19. aws_cdk/aws_cloudfront/__init__.py +277 -120
  20. aws_cdk/aws_cloudfront/experimental/__init__.py +6 -0
  21. aws_cdk/aws_cloudtrail/__init__.py +6 -0
  22. aws_cdk/aws_cloudwatch/__init__.py +18 -0
  23. aws_cdk/aws_cloudwatch_actions/__init__.py +75 -1
  24. aws_cdk/aws_codebuild/__init__.py +48 -0
  25. aws_cdk/aws_codecommit/__init__.py +6 -0
  26. aws_cdk/aws_codedeploy/__init__.py +63 -0
  27. aws_cdk/aws_codeguruprofiler/__init__.py +6 -0
  28. aws_cdk/aws_codepipeline/__init__.py +114 -0
  29. aws_cdk/aws_codepipeline_actions/__init__.py +4 -4
  30. aws_cdk/aws_codestarnotifications/__init__.py +6 -0
  31. aws_cdk/aws_cognito/__init__.py +215 -10
  32. aws_cdk/aws_cognito_identitypool/__init__.py +6 -0
  33. aws_cdk/aws_config/__init__.py +36 -0
  34. aws_cdk/aws_datazone/__init__.py +1013 -100
  35. aws_cdk/aws_docdb/__init__.py +27 -3
  36. aws_cdk/aws_dsql/__init__.py +29 -12
  37. aws_cdk/aws_dynamodb/__init__.py +25 -11
  38. aws_cdk/aws_ec2/__init__.py +408 -23
  39. aws_cdk/aws_ecr/__init__.py +22 -14
  40. aws_cdk/aws_ecr_assets/__init__.py +6 -0
  41. aws_cdk/aws_ecs/__init__.py +116 -34
  42. aws_cdk/aws_ecs_patterns/__init__.py +58 -0
  43. aws_cdk/aws_efs/__init__.py +12 -0
  44. aws_cdk/aws_eks/__init__.py +42 -0
  45. aws_cdk/aws_elasticloadbalancing/__init__.py +6 -0
  46. aws_cdk/aws_elasticloadbalancingv2/__init__.py +112 -9
  47. aws_cdk/aws_elasticsearch/__init__.py +9 -0
  48. aws_cdk/aws_events/__init__.py +36 -0
  49. aws_cdk/aws_events_targets/__init__.py +10 -10
  50. aws_cdk/aws_fsx/__init__.py +8 -3
  51. aws_cdk/aws_globalaccelerator/__init__.py +18 -0
  52. aws_cdk/aws_iam/__init__.py +66 -0
  53. aws_cdk/aws_imagebuilder/__init__.py +181 -26
  54. aws_cdk/aws_inspector/__init__.py +6 -0
  55. aws_cdk/aws_kinesis/__init__.py +19 -1
  56. aws_cdk/aws_kinesisanalytics/__init__.py +7 -7
  57. aws_cdk/aws_kinesisanalyticsv2/__init__.py +7 -7
  58. aws_cdk/aws_kinesisfirehose/__init__.py +6 -0
  59. aws_cdk/aws_kms/__init__.py +16 -4
  60. aws_cdk/aws_lambda/__init__.py +76 -6
  61. aws_cdk/aws_lambda_nodejs/__init__.py +6 -0
  62. aws_cdk/aws_logs/__init__.py +155 -12
  63. aws_cdk/aws_medialive/__init__.py +4 -6
  64. aws_cdk/aws_mediatailor/__init__.py +115 -0
  65. aws_cdk/aws_oam/__init__.py +43 -10
  66. aws_cdk/aws_opensearchservice/__init__.py +12 -0
  67. aws_cdk/aws_qbusiness/__init__.py +2 -2
  68. aws_cdk/aws_quicksight/__init__.py +22 -22
  69. aws_cdk/aws_rds/__init__.py +347 -36
  70. aws_cdk/aws_redshiftserverless/__init__.py +7 -7
  71. aws_cdk/aws_route53/__init__.py +735 -33
  72. aws_cdk/aws_route53_targets/__init__.py +62 -1
  73. aws_cdk/aws_route53profiles/__init__.py +1 -1
  74. aws_cdk/aws_s3/__init__.py +37 -10
  75. aws_cdk/aws_s3_deployment/__init__.py +6 -0
  76. aws_cdk/aws_s3_notifications/__init__.py +5 -5
  77. aws_cdk/aws_sagemaker/__init__.py +452 -8
  78. aws_cdk/aws_scheduler/__init__.py +12 -0
  79. aws_cdk/aws_secretsmanager/__init__.py +24 -0
  80. aws_cdk/aws_servicecatalog/__init__.py +24 -0
  81. aws_cdk/aws_servicediscovery/__init__.py +48 -0
  82. aws_cdk/aws_ses/__init__.py +133 -33
  83. aws_cdk/aws_signer/__init__.py +6 -0
  84. aws_cdk/aws_sns/__init__.py +18 -0
  85. aws_cdk/aws_sns_subscriptions/__init__.py +6 -0
  86. aws_cdk/aws_sqs/__init__.py +12 -0
  87. aws_cdk/aws_ssm/__init__.py +12 -0
  88. aws_cdk/aws_ssmcontacts/__init__.py +53 -2
  89. aws_cdk/aws_ssmguiconnect/__init__.py +544 -0
  90. aws_cdk/aws_stepfunctions/__init__.py +153 -7
  91. aws_cdk/aws_stepfunctions_tasks/__init__.py +46 -10
  92. aws_cdk/aws_synthetics/__init__.py +32 -0
  93. aws_cdk/aws_verifiedpermissions/__init__.py +168 -3
  94. aws_cdk/aws_vpclattice/__init__.py +3 -1
  95. aws_cdk/aws_wisdom/__init__.py +6 -4
  96. aws_cdk/cloud_assembly_schema/__init__.py +7 -1
  97. aws_cdk/custom_resources/__init__.py +18 -0
  98. aws_cdk/cx_api/__init__.py +33 -0
  99. aws_cdk/lambda_layer_awscli/__init__.py +6 -0
  100. aws_cdk/lambda_layer_node_proxy_agent/__init__.py +6 -0
  101. aws_cdk/pipelines/__init__.py +10 -10
  102. aws_cdk/triggers/__init__.py +6 -0
  103. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/METADATA +84 -6
  104. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/RECORD +108 -107
  105. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/LICENSE +0 -0
  106. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/NOTICE +0 -0
  107. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/WHEEL +0 -0
  108. {aws_cdk_lib-2.194.0.dist-info → aws_cdk_lib-2.196.0.dist-info}/top_level.txt +0 -0
@@ -197,6 +197,23 @@ api = apigwv2.HttpApi(self, "HttpProxyProdApi",
197
197
  )
198
198
  ```
199
199
 
200
+ The IP address type for the domain name can be configured by using the `ipAddressType`
201
+ property. Valid values are `IPV4` (default) and `DUAL_STACK`.
202
+
203
+ ```python
204
+ import aws_cdk.aws_certificatemanager as acm
205
+
206
+ # certificate: acm.ICertificate
207
+ # domain_name: str
208
+
209
+
210
+ dn = apigwv2.DomainName(self, "DN",
211
+ domain_name=domain_name,
212
+ certificate=certificate,
213
+ ip_address_type=apigwv2.IpAddressType.DUAL_STACK
214
+ )
215
+ ```
216
+
200
217
  To migrate a domain endpoint from one type to another, you can add a new endpoint configuration via `addEndpoint()`
201
218
  and then configure DNS records to route traffic to the new endpoint. After that, you can remove the previous endpoint configuration.
202
219
  Learn more at [Migrating a custom domain name](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-migrate.html)
@@ -8888,6 +8905,7 @@ class DomainNameAttributes:
8888
8905
  "certificate": "certificate",
8889
8906
  "certificate_name": "certificateName",
8890
8907
  "endpoint_type": "endpointType",
8908
+ "ip_address_type": "ipAddressType",
8891
8909
  "ownership_certificate": "ownershipCertificate",
8892
8910
  "security_policy": "securityPolicy",
8893
8911
  },
@@ -8899,6 +8917,7 @@ class EndpointOptions:
8899
8917
  certificate: _ICertificate_c194c70b,
8900
8918
  certificate_name: typing.Optional[builtins.str] = None,
8901
8919
  endpoint_type: typing.Optional["EndpointType"] = None,
8920
+ ip_address_type: typing.Optional["IpAddressType"] = None,
8902
8921
  ownership_certificate: typing.Optional[_ICertificate_c194c70b] = None,
8903
8922
  security_policy: typing.Optional["SecurityPolicy"] = None,
8904
8923
  ) -> None:
@@ -8907,6 +8926,7 @@ class EndpointOptions:
8907
8926
  :param certificate: The ACM certificate for this domain name. Certificate can be both ACM issued or imported.
8908
8927
  :param certificate_name: The user-friendly name of the certificate that will be used by the endpoint for this domain name. Default: - No friendly certificate name
8909
8928
  :param endpoint_type: The type of endpoint for this DomainName. Default: EndpointType.REGIONAL
8929
+ :param ip_address_type: The IP address types that can invoke the API. Default: undefined - AWS default is IPV4
8910
8930
  :param ownership_certificate: A public certificate issued by ACM to validate that you own a custom domain. This parameter is required only when you configure mutual TLS authentication and you specify an ACM imported or private CA certificate for ``certificate``. The ownership certificate validates that you have permissions to use the domain name. Default: - only required when configuring mTLS
8911
8931
  :param security_policy: The Transport Layer Security (TLS) version + cipher suite for this domain name. Default: SecurityPolicy.TLS_1_2
8912
8932
 
@@ -8927,6 +8947,7 @@ class EndpointOptions:
8927
8947
  # the properties below are optional
8928
8948
  certificate_name="certificateName",
8929
8949
  endpoint_type=apigatewayv2.EndpointType.EDGE,
8950
+ ip_address_type=apigatewayv2.IpAddressType.IPV4,
8930
8951
  ownership_certificate=certificate,
8931
8952
  security_policy=apigatewayv2.SecurityPolicy.TLS_1_0
8932
8953
  )
@@ -8936,6 +8957,7 @@ class EndpointOptions:
8936
8957
  check_type(argname="argument certificate", value=certificate, expected_type=type_hints["certificate"])
8937
8958
  check_type(argname="argument certificate_name", value=certificate_name, expected_type=type_hints["certificate_name"])
8938
8959
  check_type(argname="argument endpoint_type", value=endpoint_type, expected_type=type_hints["endpoint_type"])
8960
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
8939
8961
  check_type(argname="argument ownership_certificate", value=ownership_certificate, expected_type=type_hints["ownership_certificate"])
8940
8962
  check_type(argname="argument security_policy", value=security_policy, expected_type=type_hints["security_policy"])
8941
8963
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -8945,6 +8967,8 @@ class EndpointOptions:
8945
8967
  self._values["certificate_name"] = certificate_name
8946
8968
  if endpoint_type is not None:
8947
8969
  self._values["endpoint_type"] = endpoint_type
8970
+ if ip_address_type is not None:
8971
+ self._values["ip_address_type"] = ip_address_type
8948
8972
  if ownership_certificate is not None:
8949
8973
  self._values["ownership_certificate"] = ownership_certificate
8950
8974
  if security_policy is not None:
@@ -8978,6 +9002,17 @@ class EndpointOptions:
8978
9002
  result = self._values.get("endpoint_type")
8979
9003
  return typing.cast(typing.Optional["EndpointType"], result)
8980
9004
 
9005
+ @builtins.property
9006
+ def ip_address_type(self) -> typing.Optional["IpAddressType"]:
9007
+ '''The IP address types that can invoke the API.
9008
+
9009
+ :default: undefined - AWS default is IPV4
9010
+
9011
+ :see: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-ip-address-type.html
9012
+ '''
9013
+ result = self._values.get("ip_address_type")
9014
+ return typing.cast(typing.Optional["IpAddressType"], result)
9015
+
8981
9016
  @builtins.property
8982
9017
  def ownership_certificate(self) -> typing.Optional[_ICertificate_c194c70b]:
8983
9018
  '''A public certificate issued by ACM to validate that you own a custom domain.
@@ -13412,6 +13447,12 @@ class VpcLink(
13412
13447
  check_type(argname="argument subnets", value=subnets, expected_type=typing.Tuple[type_hints["subnets"], ...]) # pyright: ignore [reportGeneralTypeIssues]
13413
13448
  return typing.cast(None, jsii.invoke(self, "addSubnets", [*subnets]))
13414
13449
 
13450
+ @jsii.python.classproperty
13451
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
13452
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
13453
+ '''Uniquely identifies this class.'''
13454
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
13455
+
13415
13456
  @builtins.property
13416
13457
  @jsii.member(jsii_name="vpc")
13417
13458
  def vpc(self) -> _IVpc_f30d5663:
@@ -13828,6 +13869,12 @@ class WebSocketApi(
13828
13869
 
13829
13870
  return typing.cast(_Metric_e396a4dc, jsii.invoke(self, "metric", [metric_name, props]))
13830
13871
 
13872
+ @jsii.python.classproperty
13873
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
13874
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
13875
+ '''Uniquely identifies this class.'''
13876
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
13877
+
13831
13878
  @builtins.property
13832
13879
  @jsii.member(jsii_name="apiEndpoint")
13833
13880
  def api_endpoint(self) -> builtins.str:
@@ -14235,6 +14282,12 @@ class WebSocketAuthorizer(
14235
14282
 
14236
14283
  return typing.cast(IWebSocketRouteAuthorizer, jsii.sinvoke(cls, "fromWebSocketAuthorizerAttributes", [scope, id, attrs]))
14237
14284
 
14285
+ @jsii.python.classproperty
14286
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
14287
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
14288
+ '''Uniquely identifies this class.'''
14289
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
14290
+
14238
14291
  @builtins.property
14239
14292
  @jsii.member(jsii_name="authorizerId")
14240
14293
  def authorizer_id(self) -> builtins.str:
@@ -14543,6 +14596,12 @@ class WebSocketIntegration(
14543
14596
 
14544
14597
  jsii.create(self.__class__, self, [scope, id, props])
14545
14598
 
14599
+ @jsii.python.classproperty
14600
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
14601
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
14602
+ '''Uniquely identifies this class.'''
14603
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
14604
+
14546
14605
  @builtins.property
14547
14606
  @jsii.member(jsii_name="integrationId")
14548
14607
  def integration_id(self) -> builtins.str:
@@ -14915,6 +14974,12 @@ class WebSocketRoute(
14915
14974
 
14916
14975
  jsii.create(self.__class__, self, [scope, id, props])
14917
14976
 
14977
+ @jsii.python.classproperty
14978
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
14979
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
14980
+ '''Uniquely identifies this class.'''
14981
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
14982
+
14918
14983
  @builtins.property
14919
14984
  @jsii.member(jsii_name="routeId")
14920
14985
  def route_id(self) -> builtins.str:
@@ -15839,6 +15904,12 @@ class WebSocketStage(
15839
15904
 
15840
15905
  return typing.cast(_Metric_e396a4dc, jsii.invoke(self, "metric", [metric_name, props]))
15841
15906
 
15907
+ @jsii.python.classproperty
15908
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
15909
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
15910
+ '''Uniquely identifies this class.'''
15911
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
15912
+
15842
15913
  @builtins.property
15843
15914
  @jsii.member(jsii_name="api")
15844
15915
  def api(self) -> IWebSocketApi:
@@ -16317,6 +16388,12 @@ class ApiMapping(
16317
16388
 
16318
16389
  return typing.cast(IApiMapping, jsii.sinvoke(cls, "fromApiMappingAttributes", [scope, id, attrs]))
16319
16390
 
16391
+ @jsii.python.classproperty
16392
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
16393
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
16394
+ '''Uniquely identifies this class.'''
16395
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
16396
+
16320
16397
  @builtins.property
16321
16398
  @jsii.member(jsii_name="apiMappingId")
16322
16399
  def api_mapping_id(self) -> builtins.str:
@@ -16348,25 +16425,21 @@ class DomainName(
16348
16425
 
16349
16426
  Example::
16350
16427
 
16428
+ import aws_cdk.aws_s3 as s3
16351
16429
  import aws_cdk.aws_certificatemanager as acm
16352
- from aws_cdk.aws_apigatewayv2_integrations import HttpLambdaIntegration
16353
-
16354
- # handler: lambda.Function
16430
+ # bucket: s3.Bucket
16355
16431
 
16356
16432
 
16357
16433
  cert_arn = "arn:aws:acm:us-east-1:111111111111:certificate"
16358
16434
  domain_name = "example.com"
16359
16435
 
16360
- dn = apigwv2.DomainName(self, "DN",
16436
+ apigwv2.DomainName(self, "DomainName",
16361
16437
  domain_name=domain_name,
16362
- certificate=acm.Certificate.from_certificate_arn(self, "cert", cert_arn)
16363
- )
16364
- api = apigwv2.HttpApi(self, "HttpProxyProdApi",
16365
- default_integration=HttpLambdaIntegration("DefaultIntegration", handler),
16366
- # https://${dn.domainName}/foo goes to prodApi $default stage
16367
- default_domain_mapping=apigwv2.DomainMappingOptions(
16368
- domain_name=dn,
16369
- mapping_key="foo"
16438
+ certificate=acm.Certificate.from_certificate_arn(self, "cert", cert_arn),
16439
+ mtls=apigwv2.MTLSConfig(
16440
+ bucket=bucket,
16441
+ key="someca.pem",
16442
+ version="version"
16370
16443
  )
16371
16444
  )
16372
16445
  '''
@@ -16381,6 +16454,7 @@ class DomainName(
16381
16454
  certificate: _ICertificate_c194c70b,
16382
16455
  certificate_name: typing.Optional[builtins.str] = None,
16383
16456
  endpoint_type: typing.Optional[EndpointType] = None,
16457
+ ip_address_type: typing.Optional[IpAddressType] = None,
16384
16458
  ownership_certificate: typing.Optional[_ICertificate_c194c70b] = None,
16385
16459
  security_policy: typing.Optional[SecurityPolicy] = None,
16386
16460
  ) -> None:
@@ -16392,6 +16466,7 @@ class DomainName(
16392
16466
  :param certificate: The ACM certificate for this domain name. Certificate can be both ACM issued or imported.
16393
16467
  :param certificate_name: The user-friendly name of the certificate that will be used by the endpoint for this domain name. Default: - No friendly certificate name
16394
16468
  :param endpoint_type: The type of endpoint for this DomainName. Default: EndpointType.REGIONAL
16469
+ :param ip_address_type: The IP address types that can invoke the API. Default: undefined - AWS default is IPV4
16395
16470
  :param ownership_certificate: A public certificate issued by ACM to validate that you own a custom domain. This parameter is required only when you configure mutual TLS authentication and you specify an ACM imported or private CA certificate for ``certificate``. The ownership certificate validates that you have permissions to use the domain name. Default: - only required when configuring mTLS
16396
16471
  :param security_policy: The Transport Layer Security (TLS) version + cipher suite for this domain name. Default: SecurityPolicy.TLS_1_2
16397
16472
  '''
@@ -16405,6 +16480,7 @@ class DomainName(
16405
16480
  certificate=certificate,
16406
16481
  certificate_name=certificate_name,
16407
16482
  endpoint_type=endpoint_type,
16483
+ ip_address_type=ip_address_type,
16408
16484
  ownership_certificate=ownership_certificate,
16409
16485
  security_policy=security_policy,
16410
16486
  )
@@ -16449,6 +16525,7 @@ class DomainName(
16449
16525
  certificate: _ICertificate_c194c70b,
16450
16526
  certificate_name: typing.Optional[builtins.str] = None,
16451
16527
  endpoint_type: typing.Optional[EndpointType] = None,
16528
+ ip_address_type: typing.Optional[IpAddressType] = None,
16452
16529
  ownership_certificate: typing.Optional[_ICertificate_c194c70b] = None,
16453
16530
  security_policy: typing.Optional[SecurityPolicy] = None,
16454
16531
  ) -> None:
@@ -16457,6 +16534,7 @@ class DomainName(
16457
16534
  :param certificate: The ACM certificate for this domain name. Certificate can be both ACM issued or imported.
16458
16535
  :param certificate_name: The user-friendly name of the certificate that will be used by the endpoint for this domain name. Default: - No friendly certificate name
16459
16536
  :param endpoint_type: The type of endpoint for this DomainName. Default: EndpointType.REGIONAL
16537
+ :param ip_address_type: The IP address types that can invoke the API. Default: undefined - AWS default is IPV4
16460
16538
  :param ownership_certificate: A public certificate issued by ACM to validate that you own a custom domain. This parameter is required only when you configure mutual TLS authentication and you specify an ACM imported or private CA certificate for ``certificate``. The ownership certificate validates that you have permissions to use the domain name. Default: - only required when configuring mTLS
16461
16539
  :param security_policy: The Transport Layer Security (TLS) version + cipher suite for this domain name. Default: SecurityPolicy.TLS_1_2
16462
16540
  '''
@@ -16464,12 +16542,19 @@ class DomainName(
16464
16542
  certificate=certificate,
16465
16543
  certificate_name=certificate_name,
16466
16544
  endpoint_type=endpoint_type,
16545
+ ip_address_type=ip_address_type,
16467
16546
  ownership_certificate=ownership_certificate,
16468
16547
  security_policy=security_policy,
16469
16548
  )
16470
16549
 
16471
16550
  return typing.cast(None, jsii.invoke(self, "addEndpoint", [options]))
16472
16551
 
16552
+ @jsii.python.classproperty
16553
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
16554
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
16555
+ '''Uniquely identifies this class.'''
16556
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
16557
+
16473
16558
  @builtins.property
16474
16559
  @jsii.member(jsii_name="name")
16475
16560
  def name(self) -> builtins.str:
@@ -16496,6 +16581,7 @@ class DomainName(
16496
16581
  "certificate": "certificate",
16497
16582
  "certificate_name": "certificateName",
16498
16583
  "endpoint_type": "endpointType",
16584
+ "ip_address_type": "ipAddressType",
16499
16585
  "ownership_certificate": "ownershipCertificate",
16500
16586
  "security_policy": "securityPolicy",
16501
16587
  "domain_name": "domainName",
@@ -16509,6 +16595,7 @@ class DomainNameProps(EndpointOptions):
16509
16595
  certificate: _ICertificate_c194c70b,
16510
16596
  certificate_name: typing.Optional[builtins.str] = None,
16511
16597
  endpoint_type: typing.Optional[EndpointType] = None,
16598
+ ip_address_type: typing.Optional[IpAddressType] = None,
16512
16599
  ownership_certificate: typing.Optional[_ICertificate_c194c70b] = None,
16513
16600
  security_policy: typing.Optional[SecurityPolicy] = None,
16514
16601
  domain_name: builtins.str,
@@ -16519,6 +16606,7 @@ class DomainNameProps(EndpointOptions):
16519
16606
  :param certificate: The ACM certificate for this domain name. Certificate can be both ACM issued or imported.
16520
16607
  :param certificate_name: The user-friendly name of the certificate that will be used by the endpoint for this domain name. Default: - No friendly certificate name
16521
16608
  :param endpoint_type: The type of endpoint for this DomainName. Default: EndpointType.REGIONAL
16609
+ :param ip_address_type: The IP address types that can invoke the API. Default: undefined - AWS default is IPV4
16522
16610
  :param ownership_certificate: A public certificate issued by ACM to validate that you own a custom domain. This parameter is required only when you configure mutual TLS authentication and you specify an ACM imported or private CA certificate for ``certificate``. The ownership certificate validates that you have permissions to use the domain name. Default: - only required when configuring mTLS
16523
16611
  :param security_policy: The Transport Layer Security (TLS) version + cipher suite for this domain name. Default: SecurityPolicy.TLS_1_2
16524
16612
  :param domain_name: The custom domain name.
@@ -16528,25 +16616,21 @@ class DomainNameProps(EndpointOptions):
16528
16616
 
16529
16617
  Example::
16530
16618
 
16619
+ import aws_cdk.aws_s3 as s3
16531
16620
  import aws_cdk.aws_certificatemanager as acm
16532
- from aws_cdk.aws_apigatewayv2_integrations import HttpLambdaIntegration
16533
-
16534
- # handler: lambda.Function
16621
+ # bucket: s3.Bucket
16535
16622
 
16536
16623
 
16537
16624
  cert_arn = "arn:aws:acm:us-east-1:111111111111:certificate"
16538
16625
  domain_name = "example.com"
16539
16626
 
16540
- dn = apigwv2.DomainName(self, "DN",
16627
+ apigwv2.DomainName(self, "DomainName",
16541
16628
  domain_name=domain_name,
16542
- certificate=acm.Certificate.from_certificate_arn(self, "cert", cert_arn)
16543
- )
16544
- api = apigwv2.HttpApi(self, "HttpProxyProdApi",
16545
- default_integration=HttpLambdaIntegration("DefaultIntegration", handler),
16546
- # https://${dn.domainName}/foo goes to prodApi $default stage
16547
- default_domain_mapping=apigwv2.DomainMappingOptions(
16548
- domain_name=dn,
16549
- mapping_key="foo"
16629
+ certificate=acm.Certificate.from_certificate_arn(self, "cert", cert_arn),
16630
+ mtls=apigwv2.MTLSConfig(
16631
+ bucket=bucket,
16632
+ key="someca.pem",
16633
+ version="version"
16550
16634
  )
16551
16635
  )
16552
16636
  '''
@@ -16557,6 +16641,7 @@ class DomainNameProps(EndpointOptions):
16557
16641
  check_type(argname="argument certificate", value=certificate, expected_type=type_hints["certificate"])
16558
16642
  check_type(argname="argument certificate_name", value=certificate_name, expected_type=type_hints["certificate_name"])
16559
16643
  check_type(argname="argument endpoint_type", value=endpoint_type, expected_type=type_hints["endpoint_type"])
16644
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
16560
16645
  check_type(argname="argument ownership_certificate", value=ownership_certificate, expected_type=type_hints["ownership_certificate"])
16561
16646
  check_type(argname="argument security_policy", value=security_policy, expected_type=type_hints["security_policy"])
16562
16647
  check_type(argname="argument domain_name", value=domain_name, expected_type=type_hints["domain_name"])
@@ -16569,6 +16654,8 @@ class DomainNameProps(EndpointOptions):
16569
16654
  self._values["certificate_name"] = certificate_name
16570
16655
  if endpoint_type is not None:
16571
16656
  self._values["endpoint_type"] = endpoint_type
16657
+ if ip_address_type is not None:
16658
+ self._values["ip_address_type"] = ip_address_type
16572
16659
  if ownership_certificate is not None:
16573
16660
  self._values["ownership_certificate"] = ownership_certificate
16574
16661
  if security_policy is not None:
@@ -16604,6 +16691,17 @@ class DomainNameProps(EndpointOptions):
16604
16691
  result = self._values.get("endpoint_type")
16605
16692
  return typing.cast(typing.Optional[EndpointType], result)
16606
16693
 
16694
+ @builtins.property
16695
+ def ip_address_type(self) -> typing.Optional[IpAddressType]:
16696
+ '''The IP address types that can invoke the API.
16697
+
16698
+ :default: undefined - AWS default is IPV4
16699
+
16700
+ :see: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-ip-address-type.html
16701
+ '''
16702
+ result = self._values.get("ip_address_type")
16703
+ return typing.cast(typing.Optional[IpAddressType], result)
16704
+
16607
16705
  @builtins.property
16608
16706
  def ownership_certificate(self) -> typing.Optional[_ICertificate_c194c70b]:
16609
16707
  '''A public certificate issued by ACM to validate that you own a custom domain.
@@ -17184,6 +17282,12 @@ class HttpApi(
17184
17282
 
17185
17283
  return typing.cast(_Metric_e396a4dc, jsii.invoke(self, "metricServerError", [props]))
17186
17284
 
17285
+ @jsii.python.classproperty
17286
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
17287
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
17288
+ '''Uniquely identifies this class.'''
17289
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
17290
+
17187
17291
  @builtins.property
17188
17292
  @jsii.member(jsii_name="apiEndpoint")
17189
17293
  def api_endpoint(self) -> builtins.str:
@@ -17365,6 +17469,12 @@ class HttpAuthorizer(
17365
17469
 
17366
17470
  return typing.cast(IHttpRouteAuthorizer, jsii.sinvoke(cls, "fromHttpAuthorizerAttributes", [scope, id, attrs]))
17367
17471
 
17472
+ @jsii.python.classproperty
17473
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
17474
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
17475
+ '''Uniquely identifies this class.'''
17476
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
17477
+
17368
17478
  @builtins.property
17369
17479
  @jsii.member(jsii_name="authorizerId")
17370
17480
  def authorizer_id(self) -> builtins.str:
@@ -18569,6 +18679,12 @@ class HttpIntegration(
18569
18679
 
18570
18680
  jsii.create(self.__class__, self, [scope, id, props])
18571
18681
 
18682
+ @jsii.python.classproperty
18683
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
18684
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
18685
+ '''Uniquely identifies this class.'''
18686
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
18687
+
18572
18688
  @builtins.property
18573
18689
  @jsii.member(jsii_name="httpApi")
18574
18690
  def http_api(self) -> IHttpApi:
@@ -18671,6 +18787,12 @@ class HttpRoute(
18671
18787
 
18672
18788
  return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantInvoke", [grantee, options]))
18673
18789
 
18790
+ @jsii.python.classproperty
18791
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
18792
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
18793
+ '''Uniquely identifies this class.'''
18794
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
18795
+
18674
18796
  @builtins.property
18675
18797
  @jsii.member(jsii_name="httpApi")
18676
18798
  def http_api(self) -> IHttpApi:
@@ -19099,6 +19221,12 @@ class HttpStage(
19099
19221
 
19100
19222
  return typing.cast(_Metric_e396a4dc, jsii.invoke(self, "metricServerError", [props]))
19101
19223
 
19224
+ @jsii.python.classproperty
19225
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
19226
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
19227
+ '''Uniquely identifies this class.'''
19228
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
19229
+
19102
19230
  @builtins.property
19103
19231
  @jsii.member(jsii_name="api")
19104
19232
  def api(self) -> IHttpApi:
@@ -20698,6 +20826,7 @@ def _typecheckingstub__49650157c3c7bf21d138844b8a4ae00525de0e03c59b8ce04dc4d1580
20698
20826
  certificate: _ICertificate_c194c70b,
20699
20827
  certificate_name: typing.Optional[builtins.str] = None,
20700
20828
  endpoint_type: typing.Optional[EndpointType] = None,
20829
+ ip_address_type: typing.Optional[IpAddressType] = None,
20701
20830
  ownership_certificate: typing.Optional[_ICertificate_c194c70b] = None,
20702
20831
  security_policy: typing.Optional[SecurityPolicy] = None,
20703
20832
  ) -> None:
@@ -21484,6 +21613,7 @@ def _typecheckingstub__dc77eca585800a80e5c515369595effe8304d0c7a7a4475e4dcf83a18
21484
21613
  certificate: _ICertificate_c194c70b,
21485
21614
  certificate_name: typing.Optional[builtins.str] = None,
21486
21615
  endpoint_type: typing.Optional[EndpointType] = None,
21616
+ ip_address_type: typing.Optional[IpAddressType] = None,
21487
21617
  ownership_certificate: typing.Optional[_ICertificate_c194c70b] = None,
21488
21618
  security_policy: typing.Optional[SecurityPolicy] = None,
21489
21619
  ) -> None:
@@ -21506,6 +21636,7 @@ def _typecheckingstub__bf9ba44a3d76edbaeae31f2d3f5182b50739d6fc964c1bbfc6a1bde50
21506
21636
  certificate: _ICertificate_c194c70b,
21507
21637
  certificate_name: typing.Optional[builtins.str] = None,
21508
21638
  endpoint_type: typing.Optional[EndpointType] = None,
21639
+ ip_address_type: typing.Optional[IpAddressType] = None,
21509
21640
  ownership_certificate: typing.Optional[_ICertificate_c194c70b] = None,
21510
21641
  security_policy: typing.Optional[SecurityPolicy] = None,
21511
21642
  domain_name: builtins.str,
@@ -11624,6 +11624,12 @@ class Application(
11624
11624
 
11625
11625
  return typing.cast(None, jsii.invoke(self, "preStartDeployment", [event_destination, options]))
11626
11626
 
11627
+ @jsii.python.classproperty
11628
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
11629
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
11630
+ '''Uniquely identifies this class.'''
11631
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
11632
+
11627
11633
  @builtins.property
11628
11634
  @jsii.member(jsii_name="applicationArn")
11629
11635
  def application_arn(self) -> builtins.str:
@@ -11760,6 +11766,12 @@ class DeploymentStrategy(
11760
11766
  check_type(argname="argument deployment_strategy_id", value=deployment_strategy_id, expected_type=type_hints["deployment_strategy_id"])
11761
11767
  return typing.cast(IDeploymentStrategy, jsii.sinvoke(cls, "fromDeploymentStrategyId", [scope, id, deployment_strategy_id]))
11762
11768
 
11769
+ @jsii.python.classproperty
11770
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
11771
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
11772
+ '''Uniquely identifies this class.'''
11773
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
11774
+
11763
11775
  @builtins.property
11764
11776
  @jsii.member(jsii_name="deploymentStrategyArn")
11765
11777
  def deployment_strategy_arn(self) -> builtins.str:
@@ -12272,6 +12284,12 @@ class Environment(
12272
12284
 
12273
12285
  return typing.cast(None, jsii.invoke(self, "preStartDeployment", [event_destination, options]))
12274
12286
 
12287
+ @jsii.python.classproperty
12288
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
12289
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
12290
+ '''Uniquely identifies this class.'''
12291
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
12292
+
12275
12293
  @builtins.property
12276
12294
  @jsii.member(jsii_name="applicationId")
12277
12295
  def application_id(self) -> builtins.str:
@@ -12838,6 +12856,12 @@ class Extension(
12838
12856
 
12839
12857
  return typing.cast(IExtension, jsii.sinvoke(cls, "fromExtensionAttributes", [scope, id, attrs]))
12840
12858
 
12859
+ @jsii.python.classproperty
12860
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
12861
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
12862
+ '''Uniquely identifies this class.'''
12863
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
12864
+
12841
12865
  @builtins.property
12842
12866
  @jsii.member(jsii_name="extensionArn")
12843
12867
  def extension_arn(self) -> builtins.str:
@@ -6022,6 +6022,12 @@ class ScalableTarget(
6022
6022
 
6023
6023
  return typing.cast("TargetTrackingScalingPolicy", jsii.invoke(self, "scaleToTrackMetric", [id, props]))
6024
6024
 
6025
+ @jsii.python.classproperty
6026
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
6027
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
6028
+ '''Uniquely identifies this class.'''
6029
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
6030
+
6025
6031
  @builtins.property
6026
6032
  @jsii.member(jsii_name="role")
6027
6033
  def role(self) -> _IRole_235f5d8e:
@@ -24086,6 +24086,12 @@ class Mesh(
24086
24086
 
24087
24087
  return typing.cast("VirtualRouter", jsii.invoke(self, "addVirtualRouter", [id, props]))
24088
24088
 
24089
+ @jsii.python.classproperty
24090
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
24091
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
24092
+ '''Uniquely identifies this class.'''
24093
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
24094
+
24089
24095
  @builtins.property
24090
24096
  @jsii.member(jsii_name="meshArn")
24091
24097
  def mesh_arn(self) -> builtins.str:
@@ -24750,6 +24756,12 @@ class Route(
24750
24756
 
24751
24757
  return typing.cast(IRoute, jsii.sinvoke(cls, "fromRouteAttributes", [scope, id, attrs]))
24752
24758
 
24759
+ @jsii.python.classproperty
24760
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
24761
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
24762
+ '''Uniquely identifies this class.'''
24763
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
24764
+
24753
24765
  @builtins.property
24754
24766
  @jsii.member(jsii_name="routeArn")
24755
24767
  def route_arn(self) -> builtins.str:
@@ -27285,6 +27297,12 @@ class VirtualGateway(
27285
27297
  check_type(argname="argument identity", value=identity, expected_type=type_hints["identity"])
27286
27298
  return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantStreamAggregatedResources", [identity]))
27287
27299
 
27300
+ @jsii.python.classproperty
27301
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
27302
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
27303
+ '''Uniquely identifies this class.'''
27304
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
27305
+
27288
27306
  @builtins.property
27289
27307
  @jsii.member(jsii_name="listeners")
27290
27308
  def _listeners(self) -> typing.List["VirtualGatewayListenerConfig"]:
@@ -28064,6 +28082,12 @@ class VirtualNode(
28064
28082
  check_type(argname="argument identity", value=identity, expected_type=type_hints["identity"])
28065
28083
  return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantStreamAggregatedResources", [identity]))
28066
28084
 
28085
+ @jsii.python.classproperty
28086
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
28087
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
28088
+ '''Uniquely identifies this class.'''
28089
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
28090
+
28067
28091
  @builtins.property
28068
28092
  @jsii.member(jsii_name="mesh")
28069
28093
  def mesh(self) -> IMesh:
@@ -28952,6 +28976,12 @@ class VirtualRouter(
28952
28976
 
28953
28977
  return typing.cast(Route, jsii.invoke(self, "addRoute", [id, props]))
28954
28978
 
28979
+ @jsii.python.classproperty
28980
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
28981
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
28982
+ '''Uniquely identifies this class.'''
28983
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
28984
+
28955
28985
  @builtins.property
28956
28986
  @jsii.member(jsii_name="mesh")
28957
28987
  def mesh(self) -> IMesh:
@@ -29469,6 +29499,12 @@ class VirtualService(
29469
29499
 
29470
29500
  return typing.cast(IVirtualService, jsii.sinvoke(cls, "fromVirtualServiceAttributes", [scope, id, attrs]))
29471
29501
 
29502
+ @jsii.python.classproperty
29503
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
29504
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
29505
+ '''Uniquely identifies this class.'''
29506
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
29507
+
29472
29508
  @builtins.property
29473
29509
  @jsii.member(jsii_name="mesh")
29474
29510
  def mesh(self) -> IMesh:
@@ -30103,6 +30139,12 @@ class GatewayRoute(
30103
30139
 
30104
30140
  return typing.cast(IGatewayRoute, jsii.sinvoke(cls, "fromGatewayRouteAttributes", [scope, id, attrs]))
30105
30141
 
30142
+ @jsii.python.classproperty
30143
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
30144
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
30145
+ '''Uniquely identifies this class.'''
30146
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
30147
+
30106
30148
  @builtins.property
30107
30149
  @jsii.member(jsii_name="gatewayRouteArn")
30108
30150
  def gateway_route_arn(self) -> builtins.str: