aws-cdk-lib 2.189.1__py3-none-any.whl → 2.190.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 (51) hide show
  1. aws_cdk/_jsii/__init__.py +1 -1
  2. aws_cdk/_jsii/{aws-cdk-lib@2.189.1.jsii.tgz → aws-cdk-lib@2.190.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_acmpca/__init__.py +6 -6
  4. aws_cdk/aws_apigatewayv2/__init__.py +374 -6
  5. aws_cdk/aws_applicationautoscaling/__init__.py +16 -10
  6. aws_cdk/aws_applicationsignals/__init__.py +204 -31
  7. aws_cdk/aws_backup/__init__.py +0 -41
  8. aws_cdk/aws_batch/__init__.py +215 -0
  9. aws_cdk/aws_bedrock/__init__.py +287 -0
  10. aws_cdk/aws_cleanrooms/__init__.py +1392 -78
  11. aws_cdk/aws_cloudfront/__init__.py +1 -0
  12. aws_cdk/aws_cloudtrail/__init__.py +24 -26
  13. aws_cdk/aws_codebuild/__init__.py +59 -7
  14. aws_cdk/aws_dms/__init__.py +43 -0
  15. aws_cdk/aws_ec2/__init__.py +364 -30
  16. aws_cdk/aws_ecs/__init__.py +36 -5
  17. aws_cdk/aws_eks/__init__.py +2 -100
  18. aws_cdk/aws_elasticache/__init__.py +6 -11
  19. aws_cdk/aws_elasticloadbalancingv2/__init__.py +341 -0
  20. aws_cdk/aws_events/__init__.py +67 -13
  21. aws_cdk/aws_fsx/__init__.py +9 -21
  22. aws_cdk/aws_iam/__init__.py +1 -1
  23. aws_cdk/aws_iot/__init__.py +6 -6
  24. aws_cdk/aws_kafkaconnect/__init__.py +2 -2
  25. aws_cdk/aws_kinesis/__init__.py +44 -0
  26. aws_cdk/aws_lex/__init__.py +615 -39
  27. aws_cdk/aws_location/__init__.py +4 -4
  28. aws_cdk/aws_macie/__init__.py +14 -3
  29. aws_cdk/aws_memorydb/__init__.py +87 -0
  30. aws_cdk/aws_msk/__init__.py +226 -127
  31. aws_cdk/aws_neptune/__init__.py +0 -8
  32. aws_cdk/aws_opensearchservice/__init__.py +64 -56
  33. aws_cdk/aws_paymentcryptography/__init__.py +41 -0
  34. aws_cdk/aws_qbusiness/__init__.py +175 -3
  35. aws_cdk/aws_quicksight/__init__.py +393 -0
  36. aws_cdk/aws_rds/__init__.py +113 -120
  37. aws_cdk/aws_redshiftserverless/__init__.py +4 -14
  38. aws_cdk/aws_route53resolver/__init__.py +60 -9
  39. aws_cdk/aws_s3/__init__.py +34 -1
  40. aws_cdk/aws_s3_deployment/__init__.py +202 -5
  41. aws_cdk/aws_sagemaker/__init__.py +40 -40
  42. aws_cdk/aws_ssmquicksetup/__init__.py +3 -3
  43. aws_cdk/aws_stepfunctions/__init__.py +720 -45
  44. aws_cdk/aws_transfer/__init__.py +55 -2
  45. aws_cdk/pipelines/__init__.py +1 -2
  46. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.190.0.dist-info}/METADATA +1 -1
  47. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.190.0.dist-info}/RECORD +51 -51
  48. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.190.0.dist-info}/LICENSE +0 -0
  49. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.190.0.dist-info}/NOTICE +0 -0
  50. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.190.0.dist-info}/WHEEL +0 -0
  51. {aws_cdk_lib-2.189.1.dist-info → aws_cdk_lib-2.190.0.dist-info}/top_level.txt +0 -0
@@ -1200,6 +1200,33 @@ my_endpoint.connections.allow_default_port_from_any_ipv4()
1200
1200
 
1201
1201
  Alternatively, existing security groups can be used by specifying the `securityGroups` prop.
1202
1202
 
1203
+ #### IPv6 and Dualstack support
1204
+
1205
+ As IPv4 addresses are running out, many AWS services are adding support for IPv6 or Dualstack (IPv4 and IPv6 support) for their VPC Endpoints.
1206
+
1207
+ IPv6 and Dualstack address types can be configured by using:
1208
+
1209
+ ```python
1210
+ vpc.add_interface_endpoint("ExampleEndpoint",
1211
+ service=ec2.InterfaceVpcEndpointAwsService.ECR,
1212
+ ip_address_type=ec2.VpcEndpointIpAddressType.IPV6,
1213
+ dns_record_ip_type=ec2.VpcEndpointDnsRecordIpType.IPV6
1214
+ )
1215
+ ```
1216
+
1217
+ The possible values for `ipAddressType` are:
1218
+
1219
+ * `IPV4` This option is supported only if all selected subnets have IPv4 address ranges and the endpoint service accepts IPv4 requests.
1220
+ * `IPV6` This option is supported only if all selected subnets are IPv6 only subnets and the endpoint service accepts IPv6 requests.
1221
+ * `DUALSTACK` Assign both IPv4 and IPv6 addresses to the endpoint network interfaces. This option is supported only if all selected subnets have both IPv4 and IPv6 address ranges and the endpoint service accepts both IPv4 and IPv6 requests.
1222
+ The possible values for `dnsRecordIpType` are:
1223
+ * `IPV4` Create A records for the private, Regional, and zonal DNS names. `ipAddressType` MUST be `IPV4` or `DUALSTACK`
1224
+ * `IPV6` Create AAAA records for the private, Regional, and zonal DNS names. `ipAddressType` MUST be `IPV6` or `DUALSTACK`
1225
+ * `DUALSTACK` Create A and AAAA records for the private, Regional, and zonal DNS names. `ipAddressType` MUST be `DUALSTACK`
1226
+ * `SERVICE_DEFINED` Create A records for the private, Regional, and zonal DNS names and AAAA records for the Regional and zonal DNS names. `ipAddressType` MUST be `DUALSTACK`
1227
+ We can only configure dnsRecordIpType when ipAddressType is specified and private DNS must be enabled to use any DNS related features. To avoid complications, it is recommended to always set `privateDnsEnabled` to true (defaults to true) and set the `ipAddressType` and `dnsRecordIpType` explicitly when needing specific IP type behavior. Furthermore, check that the VPC being used supports the IP address type that is being configued.
1228
+ More documentation on compatibility and specifications can be found [here](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html#connect-to-endpoint-service)
1229
+
1203
1230
  ### VPC endpoint services
1204
1231
 
1205
1232
  A VPC endpoint service enables you to expose a Network Load Balancer(s) as a provider service to consumers, who connect to your service over a VPC endpoint. You can restrict access to your service via allowed principals (anything that extends ArnPrincipal), and require that new connections be manually accepted. You can also enable Contributor Insight rules.
@@ -16792,7 +16819,7 @@ class CfnGatewayRouteTableAssociationProps:
16792
16819
  )
16793
16820
 
16794
16821
 
16795
- @jsii.implements(_IInspectable_c2943556)
16822
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
16796
16823
  class CfnHost(
16797
16824
  _CfnResource_9df397a6,
16798
16825
  metaclass=jsii.JSIIMeta,
@@ -16822,7 +16849,11 @@ class CfnHost(
16822
16849
  host_recovery="hostRecovery",
16823
16850
  instance_family="instanceFamily",
16824
16851
  instance_type="instanceType",
16825
- outpost_arn="outpostArn"
16852
+ outpost_arn="outpostArn",
16853
+ tags=[CfnTag(
16854
+ key="key",
16855
+ value="value"
16856
+ )]
16826
16857
  )
16827
16858
  '''
16828
16859
 
@@ -16839,6 +16870,7 @@ class CfnHost(
16839
16870
  instance_family: typing.Optional[builtins.str] = None,
16840
16871
  instance_type: typing.Optional[builtins.str] = None,
16841
16872
  outpost_arn: typing.Optional[builtins.str] = None,
16873
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
16842
16874
  ) -> None:
16843
16875
  '''
16844
16876
  :param scope: Scope in which this resource is defined.
@@ -16851,6 +16883,7 @@ class CfnHost(
16851
16883
  :param instance_family: The instance family supported by the Dedicated Host. For example, ``m5`` .
16852
16884
  :param instance_type: Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
16853
16885
  :param outpost_arn: The Amazon Resource Name (ARN) of the AWS Outpost on which the Dedicated Host is allocated.
16886
+ :param tags: Any tags assigned to the Host.
16854
16887
  '''
16855
16888
  if __debug__:
16856
16889
  type_hints = typing.get_type_hints(_typecheckingstub__e3a07acffdb551edbc817b7c424628c812f21356d7f697757a332323f6dcfde8)
@@ -16865,6 +16898,7 @@ class CfnHost(
16865
16898
  instance_family=instance_family,
16866
16899
  instance_type=instance_type,
16867
16900
  outpost_arn=outpost_arn,
16901
+ tags=tags,
16868
16902
  )
16869
16903
 
16870
16904
  jsii.create(self.__class__, self, [scope, id, props])
@@ -16908,6 +16942,12 @@ class CfnHost(
16908
16942
  '''
16909
16943
  return typing.cast(builtins.str, jsii.get(self, "attrHostId"))
16910
16944
 
16945
+ @builtins.property
16946
+ @jsii.member(jsii_name="cdkTagManager")
16947
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
16948
+ '''Tag Manager which manages the tags for this resource.'''
16949
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
16950
+
16911
16951
  @builtins.property
16912
16952
  @jsii.member(jsii_name="cfnProperties")
16913
16953
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -17017,6 +17057,19 @@ class CfnHost(
17017
17057
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
17018
17058
  jsii.set(self, "outpostArn", value) # pyright: ignore[reportArgumentType]
17019
17059
 
17060
+ @builtins.property
17061
+ @jsii.member(jsii_name="tags")
17062
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
17063
+ '''Any tags assigned to the Host.'''
17064
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
17065
+
17066
+ @tags.setter
17067
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
17068
+ if __debug__:
17069
+ type_hints = typing.get_type_hints(_typecheckingstub__df2f657cc7e13ab207016558c8542895ee96b2df7db851bd2b108210783fccbb)
17070
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
17071
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
17072
+
17020
17073
 
17021
17074
  @jsii.data_type(
17022
17075
  jsii_type="aws-cdk-lib.aws_ec2.CfnHostProps",
@@ -17030,6 +17083,7 @@ class CfnHost(
17030
17083
  "instance_family": "instanceFamily",
17031
17084
  "instance_type": "instanceType",
17032
17085
  "outpost_arn": "outpostArn",
17086
+ "tags": "tags",
17033
17087
  },
17034
17088
  )
17035
17089
  class CfnHostProps:
@@ -17044,6 +17098,7 @@ class CfnHostProps:
17044
17098
  instance_family: typing.Optional[builtins.str] = None,
17045
17099
  instance_type: typing.Optional[builtins.str] = None,
17046
17100
  outpost_arn: typing.Optional[builtins.str] = None,
17101
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
17047
17102
  ) -> None:
17048
17103
  '''Properties for defining a ``CfnHost``.
17049
17104
 
@@ -17055,6 +17110,7 @@ class CfnHostProps:
17055
17110
  :param instance_family: The instance family supported by the Dedicated Host. For example, ``m5`` .
17056
17111
  :param instance_type: Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
17057
17112
  :param outpost_arn: The Amazon Resource Name (ARN) of the AWS Outpost on which the Dedicated Host is allocated.
17113
+ :param tags: Any tags assigned to the Host.
17058
17114
 
17059
17115
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html
17060
17116
  :exampleMetadata: fixture=_generated
@@ -17075,7 +17131,11 @@ class CfnHostProps:
17075
17131
  host_recovery="hostRecovery",
17076
17132
  instance_family="instanceFamily",
17077
17133
  instance_type="instanceType",
17078
- outpost_arn="outpostArn"
17134
+ outpost_arn="outpostArn",
17135
+ tags=[CfnTag(
17136
+ key="key",
17137
+ value="value"
17138
+ )]
17079
17139
  )
17080
17140
  '''
17081
17141
  if __debug__:
@@ -17088,6 +17148,7 @@ class CfnHostProps:
17088
17148
  check_type(argname="argument instance_family", value=instance_family, expected_type=type_hints["instance_family"])
17089
17149
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
17090
17150
  check_type(argname="argument outpost_arn", value=outpost_arn, expected_type=type_hints["outpost_arn"])
17151
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
17091
17152
  self._values: typing.Dict[builtins.str, typing.Any] = {
17092
17153
  "availability_zone": availability_zone,
17093
17154
  }
@@ -17105,6 +17166,8 @@ class CfnHostProps:
17105
17166
  self._values["instance_type"] = instance_type
17106
17167
  if outpost_arn is not None:
17107
17168
  self._values["outpost_arn"] = outpost_arn
17169
+ if tags is not None:
17170
+ self._values["tags"] = tags
17108
17171
 
17109
17172
  @builtins.property
17110
17173
  def availability_zone(self) -> builtins.str:
@@ -17191,6 +17254,15 @@ class CfnHostProps:
17191
17254
  result = self._values.get("outpost_arn")
17192
17255
  return typing.cast(typing.Optional[builtins.str], result)
17193
17256
 
17257
+ @builtins.property
17258
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
17259
+ '''Any tags assigned to the Host.
17260
+
17261
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-tags
17262
+ '''
17263
+ result = self._values.get("tags")
17264
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
17265
+
17194
17266
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
17195
17267
  return isinstance(rhs, self.__class__) and rhs._values == self._values
17196
17268
 
@@ -43791,7 +43863,7 @@ class CfnSecurityGroup(
43791
43863
 
43792
43864
  You must specify ingress rules to allow inbound traffic. By default, no inbound traffic is allowed.
43793
43865
 
43794
- If you do not specify an egress rule, we add egress rules that allow outbound IPv4 and IPv6 traffic on all ports and protocols to any destination. We do not add these rules if you specify your own egress rules.
43866
+ When you create a security group, if you do not add egress rules, we add egress rules that allow all outbound IPv4 and IPv6 traffic. Otherwise, we do not add them. After the security group is created, if you remove all egress rules that you added, we do not add egress rules, so no outbound traffic is allowed.
43795
43867
 
43796
43868
  If you modify a rule, CloudFormation removes the existing rule and then adds a new rule. There is a brief period when neither the original rule or the new rule exists, so the corresponding traffic is dropped.
43797
43869
 
@@ -60599,6 +60671,7 @@ class CfnVPCEndpoint(
60599
60671
  security_group_ids=["securityGroupIds"],
60600
60672
  service_name="serviceName",
60601
60673
  service_network_arn="serviceNetworkArn",
60674
+ service_region="serviceRegion",
60602
60675
  subnet_ids=["subnetIds"],
60603
60676
  tags=[CfnTag(
60604
60677
  key="key",
@@ -60623,6 +60696,7 @@ class CfnVPCEndpoint(
60623
60696
  security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
60624
60697
  service_name: typing.Optional[builtins.str] = None,
60625
60698
  service_network_arn: typing.Optional[builtins.str] = None,
60699
+ service_region: typing.Optional[builtins.str] = None,
60626
60700
  subnet_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
60627
60701
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
60628
60702
  vpc_endpoint_type: typing.Optional[builtins.str] = None,
@@ -60640,6 +60714,7 @@ class CfnVPCEndpoint(
60640
60714
  :param security_group_ids: The IDs of the security groups to associate with the endpoint network interfaces. If this parameter is not specified, we use the default security group for the VPC. Security groups are supported only for interface endpoints.
60641
60715
  :param service_name: The name of the endpoint service.
60642
60716
  :param service_network_arn: The Amazon Resource Name (ARN) of the service network.
60717
+ :param service_region: Describes a Region.
60643
60718
  :param subnet_ids: The IDs of the subnets in which to create endpoint network interfaces. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint. You can't specify this property for a gateway endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet.
60644
60719
  :param tags: The tags to associate with the endpoint.
60645
60720
  :param vpc_endpoint_type: The type of endpoint. Default: Gateway
@@ -60659,6 +60734,7 @@ class CfnVPCEndpoint(
60659
60734
  security_group_ids=security_group_ids,
60660
60735
  service_name=service_name,
60661
60736
  service_network_arn=service_network_arn,
60737
+ service_region=service_region,
60662
60738
  subnet_ids=subnet_ids,
60663
60739
  tags=tags,
60664
60740
  vpc_endpoint_type=vpc_endpoint_type,
@@ -60901,6 +60977,19 @@ class CfnVPCEndpoint(
60901
60977
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
60902
60978
  jsii.set(self, "serviceNetworkArn", value) # pyright: ignore[reportArgumentType]
60903
60979
 
60980
+ @builtins.property
60981
+ @jsii.member(jsii_name="serviceRegion")
60982
+ def service_region(self) -> typing.Optional[builtins.str]:
60983
+ '''Describes a Region.'''
60984
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serviceRegion"))
60985
+
60986
+ @service_region.setter
60987
+ def service_region(self, value: typing.Optional[builtins.str]) -> None:
60988
+ if __debug__:
60989
+ type_hints = typing.get_type_hints(_typecheckingstub__d6d3cd08ec1fd31ad1338faa2ac68fd15809dab9a7d259f896ee13feffaad8cb)
60990
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
60991
+ jsii.set(self, "serviceRegion", value) # pyright: ignore[reportArgumentType]
60992
+
60904
60993
  @builtins.property
60905
60994
  @jsii.member(jsii_name="subnetIds")
60906
60995
  def subnet_ids(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -61303,6 +61392,7 @@ class CfnVPCEndpointConnectionNotificationProps:
61303
61392
  "security_group_ids": "securityGroupIds",
61304
61393
  "service_name": "serviceName",
61305
61394
  "service_network_arn": "serviceNetworkArn",
61395
+ "service_region": "serviceRegion",
61306
61396
  "subnet_ids": "subnetIds",
61307
61397
  "tags": "tags",
61308
61398
  "vpc_endpoint_type": "vpcEndpointType",
@@ -61322,6 +61412,7 @@ class CfnVPCEndpointProps:
61322
61412
  security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
61323
61413
  service_name: typing.Optional[builtins.str] = None,
61324
61414
  service_network_arn: typing.Optional[builtins.str] = None,
61415
+ service_region: typing.Optional[builtins.str] = None,
61325
61416
  subnet_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
61326
61417
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
61327
61418
  vpc_endpoint_type: typing.Optional[builtins.str] = None,
@@ -61338,6 +61429,7 @@ class CfnVPCEndpointProps:
61338
61429
  :param security_group_ids: The IDs of the security groups to associate with the endpoint network interfaces. If this parameter is not specified, we use the default security group for the VPC. Security groups are supported only for interface endpoints.
61339
61430
  :param service_name: The name of the endpoint service.
61340
61431
  :param service_network_arn: The Amazon Resource Name (ARN) of the service network.
61432
+ :param service_region: Describes a Region.
61341
61433
  :param subnet_ids: The IDs of the subnets in which to create endpoint network interfaces. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint. You can't specify this property for a gateway endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet.
61342
61434
  :param tags: The tags to associate with the endpoint.
61343
61435
  :param vpc_endpoint_type: The type of endpoint. Default: Gateway
@@ -61369,6 +61461,7 @@ class CfnVPCEndpointProps:
61369
61461
  security_group_ids=["securityGroupIds"],
61370
61462
  service_name="serviceName",
61371
61463
  service_network_arn="serviceNetworkArn",
61464
+ service_region="serviceRegion",
61372
61465
  subnet_ids=["subnetIds"],
61373
61466
  tags=[CfnTag(
61374
61467
  key="key",
@@ -61389,6 +61482,7 @@ class CfnVPCEndpointProps:
61389
61482
  check_type(argname="argument security_group_ids", value=security_group_ids, expected_type=type_hints["security_group_ids"])
61390
61483
  check_type(argname="argument service_name", value=service_name, expected_type=type_hints["service_name"])
61391
61484
  check_type(argname="argument service_network_arn", value=service_network_arn, expected_type=type_hints["service_network_arn"])
61485
+ check_type(argname="argument service_region", value=service_region, expected_type=type_hints["service_region"])
61392
61486
  check_type(argname="argument subnet_ids", value=subnet_ids, expected_type=type_hints["subnet_ids"])
61393
61487
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
61394
61488
  check_type(argname="argument vpc_endpoint_type", value=vpc_endpoint_type, expected_type=type_hints["vpc_endpoint_type"])
@@ -61413,6 +61507,8 @@ class CfnVPCEndpointProps:
61413
61507
  self._values["service_name"] = service_name
61414
61508
  if service_network_arn is not None:
61415
61509
  self._values["service_network_arn"] = service_network_arn
61510
+ if service_region is not None:
61511
+ self._values["service_region"] = service_region
61416
61512
  if subnet_ids is not None:
61417
61513
  self._values["subnet_ids"] = subnet_ids
61418
61514
  if tags is not None:
@@ -61533,6 +61629,15 @@ class CfnVPCEndpointProps:
61533
61629
  result = self._values.get("service_network_arn")
61534
61630
  return typing.cast(typing.Optional[builtins.str], result)
61535
61631
 
61632
+ @builtins.property
61633
+ def service_region(self) -> typing.Optional[builtins.str]:
61634
+ '''Describes a Region.
61635
+
61636
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-serviceregion
61637
+ '''
61638
+ result = self._values.get("service_region")
61639
+ return typing.cast(typing.Optional[builtins.str], result)
61640
+
61536
61641
  @builtins.property
61537
61642
  def subnet_ids(self) -> typing.Optional[typing.List[builtins.str]]:
61538
61643
  '''The IDs of the subnets in which to create endpoint network interfaces.
@@ -75930,9 +76035,12 @@ class IVpc(_IResource_c80c4260, typing_extensions.Protocol):
75930
76035
  id: builtins.str,
75931
76036
  *,
75932
76037
  service: IInterfaceVpcEndpointService,
76038
+ dns_record_ip_type: typing.Optional["VpcEndpointDnsRecordIpType"] = None,
76039
+ ip_address_type: typing.Optional["VpcEndpointIpAddressType"] = None,
75933
76040
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
75934
76041
  open: typing.Optional[builtins.bool] = None,
75935
76042
  private_dns_enabled: typing.Optional[builtins.bool] = None,
76043
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"] = None,
75936
76044
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
75937
76045
  subnets: typing.Optional[typing.Union["SubnetSelection", typing.Dict[builtins.str, typing.Any]]] = None,
75938
76046
  ) -> "InterfaceVpcEndpoint":
@@ -75940,9 +76048,12 @@ class IVpc(_IResource_c80c4260, typing_extensions.Protocol):
75940
76048
 
75941
76049
  :param id: -
75942
76050
  :param service: The service to use for this interface VPC endpoint.
76051
+ :param dns_record_ip_type: Type of DNS records created for the VPC endpoint. Default: not specified
76052
+ :param ip_address_type: The IP address type for the endpoint. Default: not specified
75943
76053
  :param lookup_supported_azs: Limit to only those availability zones where the endpoint service can be created. Setting this to 'true' requires a lookup to be performed at synthesis time. Account and region must be set on the containing stack for this to work. Default: false
75944
76054
  :param open: Whether to automatically allow VPC traffic to the endpoint. If enabled, all traffic to the endpoint from within the VPC will be automatically allowed. This is done based on the VPC's CIDR range. Default: true
75945
76055
  :param private_dns_enabled: Whether to associate a private hosted zone with the specified VPC. This allows you to make requests to the service using its default DNS hostname. Default: set by the instance of IInterfaceVpcEndpointService, or true if not defined by the instance of IInterfaceVpcEndpointService
76056
+ :param private_dns_only_for_inbound_resolver_endpoint: Whether to enable private DNS only for inbound endpoints. Default: not specified
75946
76057
  :param security_groups: The security groups to associate with this interface VPC endpoint. Default: - a new security group is created
75947
76058
  :param subnets: The subnets in which to create an endpoint network interface. At most one per availability zone. Default: - private subnets
75948
76059
  '''
@@ -76210,9 +76321,12 @@ class _IVpcProxy(
76210
76321
  id: builtins.str,
76211
76322
  *,
76212
76323
  service: IInterfaceVpcEndpointService,
76324
+ dns_record_ip_type: typing.Optional["VpcEndpointDnsRecordIpType"] = None,
76325
+ ip_address_type: typing.Optional["VpcEndpointIpAddressType"] = None,
76213
76326
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
76214
76327
  open: typing.Optional[builtins.bool] = None,
76215
76328
  private_dns_enabled: typing.Optional[builtins.bool] = None,
76329
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"] = None,
76216
76330
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
76217
76331
  subnets: typing.Optional[typing.Union["SubnetSelection", typing.Dict[builtins.str, typing.Any]]] = None,
76218
76332
  ) -> "InterfaceVpcEndpoint":
@@ -76220,9 +76334,12 @@ class _IVpcProxy(
76220
76334
 
76221
76335
  :param id: -
76222
76336
  :param service: The service to use for this interface VPC endpoint.
76337
+ :param dns_record_ip_type: Type of DNS records created for the VPC endpoint. Default: not specified
76338
+ :param ip_address_type: The IP address type for the endpoint. Default: not specified
76223
76339
  :param lookup_supported_azs: Limit to only those availability zones where the endpoint service can be created. Setting this to 'true' requires a lookup to be performed at synthesis time. Account and region must be set on the containing stack for this to work. Default: false
76224
76340
  :param open: Whether to automatically allow VPC traffic to the endpoint. If enabled, all traffic to the endpoint from within the VPC will be automatically allowed. This is done based on the VPC's CIDR range. Default: true
76225
76341
  :param private_dns_enabled: Whether to associate a private hosted zone with the specified VPC. This allows you to make requests to the service using its default DNS hostname. Default: set by the instance of IInterfaceVpcEndpointService, or true if not defined by the instance of IInterfaceVpcEndpointService
76342
+ :param private_dns_only_for_inbound_resolver_endpoint: Whether to enable private DNS only for inbound endpoints. Default: not specified
76226
76343
  :param security_groups: The security groups to associate with this interface VPC endpoint. Default: - a new security group is created
76227
76344
  :param subnets: The subnets in which to create an endpoint network interface. At most one per availability zone. Default: - private subnets
76228
76345
  '''
@@ -76231,9 +76348,12 @@ class _IVpcProxy(
76231
76348
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
76232
76349
  options = InterfaceVpcEndpointOptions(
76233
76350
  service=service,
76351
+ dns_record_ip_type=dns_record_ip_type,
76352
+ ip_address_type=ip_address_type,
76234
76353
  lookup_supported_azs=lookup_supported_azs,
76235
76354
  open=open,
76236
76355
  private_dns_enabled=private_dns_enabled,
76356
+ private_dns_only_for_inbound_resolver_endpoint=private_dns_only_for_inbound_resolver_endpoint,
76237
76357
  security_groups=security_groups,
76238
76358
  subnets=subnets,
76239
76359
  )
@@ -80957,35 +81077,14 @@ class InterfaceVpcEndpointAwsService(
80957
81077
  ):
80958
81078
  '''An AWS service for an interface VPC endpoint.
80959
81079
 
80960
- :exampleMetadata: infused
81080
+ :exampleMetadata: fixture=with-vpc infused
80961
81081
 
80962
81082
  Example::
80963
81083
 
80964
- import aws_cdk.aws_ec2 as ec2
80965
-
80966
- # vpc: ec2.Vpc
80967
-
80968
-
80969
- interface_vpc_endpoint = ec2.InterfaceVpcEndpoint(self, "MyVpcEndpoint",
80970
- vpc=vpc,
80971
- service=ec2.InterfaceVpcEndpointAwsService.APP_RUNNER_REQUESTS,
80972
- private_dns_enabled=False
80973
- )
80974
-
80975
- service = apprunner.Service(self, "Service",
80976
- source=apprunner.Source.from_ecr_public(
80977
- image_configuration=apprunner.ImageConfiguration(
80978
- port=8000
80979
- ),
80980
- image_identifier="public.ecr.aws/aws-containers/hello-app-runner:latest"
80981
- ),
80982
- is_publicly_accessible=False
80983
- )
80984
-
80985
- apprunner.VpcIngressConnection(self, "VpcIngressConnection",
80986
- vpc=vpc,
80987
- interface_vpc_endpoint=interface_vpc_endpoint,
80988
- service=service
81084
+ vpc.add_interface_endpoint("ExampleEndpoint",
81085
+ service=ec2.InterfaceVpcEndpointAwsService.ECR,
81086
+ ip_address_type=ec2.VpcEndpointIpAddressType.IPV6,
81087
+ dns_record_ip_type=ec2.VpcEndpointDnsRecordIpType.IPV6
80989
81088
  )
80990
81089
  '''
80991
81090
 
@@ -83015,9 +83114,12 @@ class InterfaceVpcEndpointAwsServiceProps:
83015
83114
  jsii_struct_bases=[],
83016
83115
  name_mapping={
83017
83116
  "service": "service",
83117
+ "dns_record_ip_type": "dnsRecordIpType",
83118
+ "ip_address_type": "ipAddressType",
83018
83119
  "lookup_supported_azs": "lookupSupportedAzs",
83019
83120
  "open": "open",
83020
83121
  "private_dns_enabled": "privateDnsEnabled",
83122
+ "private_dns_only_for_inbound_resolver_endpoint": "privateDnsOnlyForInboundResolverEndpoint",
83021
83123
  "security_groups": "securityGroups",
83022
83124
  "subnets": "subnets",
83023
83125
  },
@@ -83027,18 +83129,24 @@ class InterfaceVpcEndpointOptions:
83027
83129
  self,
83028
83130
  *,
83029
83131
  service: IInterfaceVpcEndpointService,
83132
+ dns_record_ip_type: typing.Optional["VpcEndpointDnsRecordIpType"] = None,
83133
+ ip_address_type: typing.Optional["VpcEndpointIpAddressType"] = None,
83030
83134
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
83031
83135
  open: typing.Optional[builtins.bool] = None,
83032
83136
  private_dns_enabled: typing.Optional[builtins.bool] = None,
83137
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"] = None,
83033
83138
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
83034
83139
  subnets: typing.Optional[typing.Union["SubnetSelection", typing.Dict[builtins.str, typing.Any]]] = None,
83035
83140
  ) -> None:
83036
83141
  '''Options to add an interface endpoint to a VPC.
83037
83142
 
83038
83143
  :param service: The service to use for this interface VPC endpoint.
83144
+ :param dns_record_ip_type: Type of DNS records created for the VPC endpoint. Default: not specified
83145
+ :param ip_address_type: The IP address type for the endpoint. Default: not specified
83039
83146
  :param lookup_supported_azs: Limit to only those availability zones where the endpoint service can be created. Setting this to 'true' requires a lookup to be performed at synthesis time. Account and region must be set on the containing stack for this to work. Default: false
83040
83147
  :param open: Whether to automatically allow VPC traffic to the endpoint. If enabled, all traffic to the endpoint from within the VPC will be automatically allowed. This is done based on the VPC's CIDR range. Default: true
83041
83148
  :param private_dns_enabled: Whether to associate a private hosted zone with the specified VPC. This allows you to make requests to the service using its default DNS hostname. Default: set by the instance of IInterfaceVpcEndpointService, or true if not defined by the instance of IInterfaceVpcEndpointService
83149
+ :param private_dns_only_for_inbound_resolver_endpoint: Whether to enable private DNS only for inbound endpoints. Default: not specified
83042
83150
  :param security_groups: The security groups to associate with this interface VPC endpoint. Default: - a new security group is created
83043
83151
  :param subnets: The subnets in which to create an endpoint network interface. At most one per availability zone. Default: - private subnets
83044
83152
 
@@ -83077,20 +83185,29 @@ class InterfaceVpcEndpointOptions:
83077
83185
  if __debug__:
83078
83186
  type_hints = typing.get_type_hints(_typecheckingstub__1a6dd0208e338cbe286ecaa3bcf5f95a5f0a0c1e1b3565ca6de058b5fbe2bbdf)
83079
83187
  check_type(argname="argument service", value=service, expected_type=type_hints["service"])
83188
+ check_type(argname="argument dns_record_ip_type", value=dns_record_ip_type, expected_type=type_hints["dns_record_ip_type"])
83189
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
83080
83190
  check_type(argname="argument lookup_supported_azs", value=lookup_supported_azs, expected_type=type_hints["lookup_supported_azs"])
83081
83191
  check_type(argname="argument open", value=open, expected_type=type_hints["open"])
83082
83192
  check_type(argname="argument private_dns_enabled", value=private_dns_enabled, expected_type=type_hints["private_dns_enabled"])
83193
+ check_type(argname="argument private_dns_only_for_inbound_resolver_endpoint", value=private_dns_only_for_inbound_resolver_endpoint, expected_type=type_hints["private_dns_only_for_inbound_resolver_endpoint"])
83083
83194
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
83084
83195
  check_type(argname="argument subnets", value=subnets, expected_type=type_hints["subnets"])
83085
83196
  self._values: typing.Dict[builtins.str, typing.Any] = {
83086
83197
  "service": service,
83087
83198
  }
83199
+ if dns_record_ip_type is not None:
83200
+ self._values["dns_record_ip_type"] = dns_record_ip_type
83201
+ if ip_address_type is not None:
83202
+ self._values["ip_address_type"] = ip_address_type
83088
83203
  if lookup_supported_azs is not None:
83089
83204
  self._values["lookup_supported_azs"] = lookup_supported_azs
83090
83205
  if open is not None:
83091
83206
  self._values["open"] = open
83092
83207
  if private_dns_enabled is not None:
83093
83208
  self._values["private_dns_enabled"] = private_dns_enabled
83209
+ if private_dns_only_for_inbound_resolver_endpoint is not None:
83210
+ self._values["private_dns_only_for_inbound_resolver_endpoint"] = private_dns_only_for_inbound_resolver_endpoint
83094
83211
  if security_groups is not None:
83095
83212
  self._values["security_groups"] = security_groups
83096
83213
  if subnets is not None:
@@ -83103,6 +83220,24 @@ class InterfaceVpcEndpointOptions:
83103
83220
  assert result is not None, "Required property 'service' is missing"
83104
83221
  return typing.cast(IInterfaceVpcEndpointService, result)
83105
83222
 
83223
+ @builtins.property
83224
+ def dns_record_ip_type(self) -> typing.Optional["VpcEndpointDnsRecordIpType"]:
83225
+ '''Type of DNS records created for the VPC endpoint.
83226
+
83227
+ :default: not specified
83228
+ '''
83229
+ result = self._values.get("dns_record_ip_type")
83230
+ return typing.cast(typing.Optional["VpcEndpointDnsRecordIpType"], result)
83231
+
83232
+ @builtins.property
83233
+ def ip_address_type(self) -> typing.Optional["VpcEndpointIpAddressType"]:
83234
+ '''The IP address type for the endpoint.
83235
+
83236
+ :default: not specified
83237
+ '''
83238
+ result = self._values.get("ip_address_type")
83239
+ return typing.cast(typing.Optional["VpcEndpointIpAddressType"], result)
83240
+
83106
83241
  @builtins.property
83107
83242
  def lookup_supported_azs(self) -> typing.Optional[builtins.bool]:
83108
83243
  '''Limit to only those availability zones where the endpoint service can be created.
@@ -83142,6 +83277,17 @@ class InterfaceVpcEndpointOptions:
83142
83277
  result = self._values.get("private_dns_enabled")
83143
83278
  return typing.cast(typing.Optional[builtins.bool], result)
83144
83279
 
83280
+ @builtins.property
83281
+ def private_dns_only_for_inbound_resolver_endpoint(
83282
+ self,
83283
+ ) -> typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"]:
83284
+ '''Whether to enable private DNS only for inbound endpoints.
83285
+
83286
+ :default: not specified
83287
+ '''
83288
+ result = self._values.get("private_dns_only_for_inbound_resolver_endpoint")
83289
+ return typing.cast(typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"], result)
83290
+
83145
83291
  @builtins.property
83146
83292
  def security_groups(self) -> typing.Optional[typing.List[ISecurityGroup]]:
83147
83293
  '''The security groups to associate with this interface VPC endpoint.
@@ -83180,9 +83326,12 @@ class InterfaceVpcEndpointOptions:
83180
83326
  jsii_struct_bases=[InterfaceVpcEndpointOptions],
83181
83327
  name_mapping={
83182
83328
  "service": "service",
83329
+ "dns_record_ip_type": "dnsRecordIpType",
83330
+ "ip_address_type": "ipAddressType",
83183
83331
  "lookup_supported_azs": "lookupSupportedAzs",
83184
83332
  "open": "open",
83185
83333
  "private_dns_enabled": "privateDnsEnabled",
83334
+ "private_dns_only_for_inbound_resolver_endpoint": "privateDnsOnlyForInboundResolverEndpoint",
83186
83335
  "security_groups": "securityGroups",
83187
83336
  "subnets": "subnets",
83188
83337
  "vpc": "vpc",
@@ -83193,9 +83342,12 @@ class InterfaceVpcEndpointProps(InterfaceVpcEndpointOptions):
83193
83342
  self,
83194
83343
  *,
83195
83344
  service: IInterfaceVpcEndpointService,
83345
+ dns_record_ip_type: typing.Optional["VpcEndpointDnsRecordIpType"] = None,
83346
+ ip_address_type: typing.Optional["VpcEndpointIpAddressType"] = None,
83196
83347
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
83197
83348
  open: typing.Optional[builtins.bool] = None,
83198
83349
  private_dns_enabled: typing.Optional[builtins.bool] = None,
83350
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"] = None,
83199
83351
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
83200
83352
  subnets: typing.Optional[typing.Union["SubnetSelection", typing.Dict[builtins.str, typing.Any]]] = None,
83201
83353
  vpc: IVpc,
@@ -83203,9 +83355,12 @@ class InterfaceVpcEndpointProps(InterfaceVpcEndpointOptions):
83203
83355
  '''Construction properties for an InterfaceVpcEndpoint.
83204
83356
 
83205
83357
  :param service: The service to use for this interface VPC endpoint.
83358
+ :param dns_record_ip_type: Type of DNS records created for the VPC endpoint. Default: not specified
83359
+ :param ip_address_type: The IP address type for the endpoint. Default: not specified
83206
83360
  :param lookup_supported_azs: Limit to only those availability zones where the endpoint service can be created. Setting this to 'true' requires a lookup to be performed at synthesis time. Account and region must be set on the containing stack for this to work. Default: false
83207
83361
  :param open: Whether to automatically allow VPC traffic to the endpoint. If enabled, all traffic to the endpoint from within the VPC will be automatically allowed. This is done based on the VPC's CIDR range. Default: true
83208
83362
  :param private_dns_enabled: Whether to associate a private hosted zone with the specified VPC. This allows you to make requests to the service using its default DNS hostname. Default: set by the instance of IInterfaceVpcEndpointService, or true if not defined by the instance of IInterfaceVpcEndpointService
83363
+ :param private_dns_only_for_inbound_resolver_endpoint: Whether to enable private DNS only for inbound endpoints. Default: not specified
83209
83364
  :param security_groups: The security groups to associate with this interface VPC endpoint. Default: - a new security group is created
83210
83365
  :param subnets: The subnets in which to create an endpoint network interface. At most one per availability zone. Default: - private subnets
83211
83366
  :param vpc: The VPC network in which the interface endpoint will be used.
@@ -83231,9 +83386,12 @@ class InterfaceVpcEndpointProps(InterfaceVpcEndpointOptions):
83231
83386
  if __debug__:
83232
83387
  type_hints = typing.get_type_hints(_typecheckingstub__6606ba3de030c44ce43dee44afe64adc59231bfc542799d1354e0732a309b2f0)
83233
83388
  check_type(argname="argument service", value=service, expected_type=type_hints["service"])
83389
+ check_type(argname="argument dns_record_ip_type", value=dns_record_ip_type, expected_type=type_hints["dns_record_ip_type"])
83390
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
83234
83391
  check_type(argname="argument lookup_supported_azs", value=lookup_supported_azs, expected_type=type_hints["lookup_supported_azs"])
83235
83392
  check_type(argname="argument open", value=open, expected_type=type_hints["open"])
83236
83393
  check_type(argname="argument private_dns_enabled", value=private_dns_enabled, expected_type=type_hints["private_dns_enabled"])
83394
+ check_type(argname="argument private_dns_only_for_inbound_resolver_endpoint", value=private_dns_only_for_inbound_resolver_endpoint, expected_type=type_hints["private_dns_only_for_inbound_resolver_endpoint"])
83237
83395
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
83238
83396
  check_type(argname="argument subnets", value=subnets, expected_type=type_hints["subnets"])
83239
83397
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -83241,12 +83399,18 @@ class InterfaceVpcEndpointProps(InterfaceVpcEndpointOptions):
83241
83399
  "service": service,
83242
83400
  "vpc": vpc,
83243
83401
  }
83402
+ if dns_record_ip_type is not None:
83403
+ self._values["dns_record_ip_type"] = dns_record_ip_type
83404
+ if ip_address_type is not None:
83405
+ self._values["ip_address_type"] = ip_address_type
83244
83406
  if lookup_supported_azs is not None:
83245
83407
  self._values["lookup_supported_azs"] = lookup_supported_azs
83246
83408
  if open is not None:
83247
83409
  self._values["open"] = open
83248
83410
  if private_dns_enabled is not None:
83249
83411
  self._values["private_dns_enabled"] = private_dns_enabled
83412
+ if private_dns_only_for_inbound_resolver_endpoint is not None:
83413
+ self._values["private_dns_only_for_inbound_resolver_endpoint"] = private_dns_only_for_inbound_resolver_endpoint
83250
83414
  if security_groups is not None:
83251
83415
  self._values["security_groups"] = security_groups
83252
83416
  if subnets is not None:
@@ -83259,6 +83423,24 @@ class InterfaceVpcEndpointProps(InterfaceVpcEndpointOptions):
83259
83423
  assert result is not None, "Required property 'service' is missing"
83260
83424
  return typing.cast(IInterfaceVpcEndpointService, result)
83261
83425
 
83426
+ @builtins.property
83427
+ def dns_record_ip_type(self) -> typing.Optional["VpcEndpointDnsRecordIpType"]:
83428
+ '''Type of DNS records created for the VPC endpoint.
83429
+
83430
+ :default: not specified
83431
+ '''
83432
+ result = self._values.get("dns_record_ip_type")
83433
+ return typing.cast(typing.Optional["VpcEndpointDnsRecordIpType"], result)
83434
+
83435
+ @builtins.property
83436
+ def ip_address_type(self) -> typing.Optional["VpcEndpointIpAddressType"]:
83437
+ '''The IP address type for the endpoint.
83438
+
83439
+ :default: not specified
83440
+ '''
83441
+ result = self._values.get("ip_address_type")
83442
+ return typing.cast(typing.Optional["VpcEndpointIpAddressType"], result)
83443
+
83262
83444
  @builtins.property
83263
83445
  def lookup_supported_azs(self) -> typing.Optional[builtins.bool]:
83264
83446
  '''Limit to only those availability zones where the endpoint service can be created.
@@ -83298,6 +83480,17 @@ class InterfaceVpcEndpointProps(InterfaceVpcEndpointOptions):
83298
83480
  result = self._values.get("private_dns_enabled")
83299
83481
  return typing.cast(typing.Optional[builtins.bool], result)
83300
83482
 
83483
+ @builtins.property
83484
+ def private_dns_only_for_inbound_resolver_endpoint(
83485
+ self,
83486
+ ) -> typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"]:
83487
+ '''Whether to enable private DNS only for inbound endpoints.
83488
+
83489
+ :default: not specified
83490
+ '''
83491
+ result = self._values.get("private_dns_only_for_inbound_resolver_endpoint")
83492
+ return typing.cast(typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"], result)
83493
+
83301
83494
  @builtins.property
83302
83495
  def security_groups(self) -> typing.Optional[typing.List[ISecurityGroup]]:
83303
83496
  '''The security groups to associate with this interface VPC endpoint.
@@ -93628,9 +93821,12 @@ class Vpc(
93628
93821
  id: builtins.str,
93629
93822
  *,
93630
93823
  service: IInterfaceVpcEndpointService,
93824
+ dns_record_ip_type: typing.Optional["VpcEndpointDnsRecordIpType"] = None,
93825
+ ip_address_type: typing.Optional["VpcEndpointIpAddressType"] = None,
93631
93826
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
93632
93827
  open: typing.Optional[builtins.bool] = None,
93633
93828
  private_dns_enabled: typing.Optional[builtins.bool] = None,
93829
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional["VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"] = None,
93634
93830
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
93635
93831
  subnets: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
93636
93832
  ) -> "InterfaceVpcEndpoint":
@@ -93638,9 +93834,12 @@ class Vpc(
93638
93834
 
93639
93835
  :param id: -
93640
93836
  :param service: The service to use for this interface VPC endpoint.
93837
+ :param dns_record_ip_type: Type of DNS records created for the VPC endpoint. Default: not specified
93838
+ :param ip_address_type: The IP address type for the endpoint. Default: not specified
93641
93839
  :param lookup_supported_azs: Limit to only those availability zones where the endpoint service can be created. Setting this to 'true' requires a lookup to be performed at synthesis time. Account and region must be set on the containing stack for this to work. Default: false
93642
93840
  :param open: Whether to automatically allow VPC traffic to the endpoint. If enabled, all traffic to the endpoint from within the VPC will be automatically allowed. This is done based on the VPC's CIDR range. Default: true
93643
93841
  :param private_dns_enabled: Whether to associate a private hosted zone with the specified VPC. This allows you to make requests to the service using its default DNS hostname. Default: set by the instance of IInterfaceVpcEndpointService, or true if not defined by the instance of IInterfaceVpcEndpointService
93842
+ :param private_dns_only_for_inbound_resolver_endpoint: Whether to enable private DNS only for inbound endpoints. Default: not specified
93644
93843
  :param security_groups: The security groups to associate with this interface VPC endpoint. Default: - a new security group is created
93645
93844
  :param subnets: The subnets in which to create an endpoint network interface. At most one per availability zone. Default: - private subnets
93646
93845
  '''
@@ -93649,9 +93848,12 @@ class Vpc(
93649
93848
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
93650
93849
  options = InterfaceVpcEndpointOptions(
93651
93850
  service=service,
93851
+ dns_record_ip_type=dns_record_ip_type,
93852
+ ip_address_type=ip_address_type,
93652
93853
  lookup_supported_azs=lookup_supported_azs,
93653
93854
  open=open,
93654
93855
  private_dns_enabled=private_dns_enabled,
93856
+ private_dns_only_for_inbound_resolver_endpoint=private_dns_only_for_inbound_resolver_endpoint,
93655
93857
  security_groups=security_groups,
93656
93858
  subnets=subnets,
93657
93859
  )
@@ -94346,6 +94548,95 @@ class _VpcEndpointProxy(
94346
94548
  typing.cast(typing.Any, VpcEndpoint).__jsii_proxy_class__ = lambda : _VpcEndpointProxy
94347
94549
 
94348
94550
 
94551
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.VpcEndpointDnsRecordIpType")
94552
+ class VpcEndpointDnsRecordIpType(enum.Enum):
94553
+ '''Enums for all Dns Record IP Address types.
94554
+
94555
+ :exampleMetadata: fixture=with-vpc infused
94556
+
94557
+ Example::
94558
+
94559
+ vpc.add_interface_endpoint("ExampleEndpoint",
94560
+ service=ec2.InterfaceVpcEndpointAwsService.ECR,
94561
+ ip_address_type=ec2.VpcEndpointIpAddressType.IPV6,
94562
+ dns_record_ip_type=ec2.VpcEndpointDnsRecordIpType.IPV6
94563
+ )
94564
+ '''
94565
+
94566
+ IPV4 = "IPV4"
94567
+ '''Create A records for the private, Regional, and zonal DNS names.
94568
+
94569
+ The IP address type must be IPv4 or Dualstack.
94570
+ '''
94571
+ IPV6 = "IPV6"
94572
+ '''Create AAAA records for the private, Regional, and zonal DNS names.
94573
+
94574
+ The IP address type must be IPv6 or Dualstack.
94575
+ '''
94576
+ DUALSTACK = "DUALSTACK"
94577
+ '''Create A and AAAA records for the private, Regional, and zonal DNS names.
94578
+
94579
+ The IP address type must be Dualstack.
94580
+ '''
94581
+ SERVICE_DEFINED = "SERVICE_DEFINED"
94582
+ '''Create A records for the private, Regional, and zonal DNS names and AAAA records for the Regional and zonal DNS names.
94583
+
94584
+ The IP address type must be Dualstack.
94585
+ '''
94586
+
94587
+
94588
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.VpcEndpointIpAddressType")
94589
+ class VpcEndpointIpAddressType(enum.Enum):
94590
+ '''IP address type for the endpoint.
94591
+
94592
+ :exampleMetadata: fixture=with-vpc infused
94593
+
94594
+ Example::
94595
+
94596
+ vpc.add_interface_endpoint("ExampleEndpoint",
94597
+ service=ec2.InterfaceVpcEndpointAwsService.ECR,
94598
+ ip_address_type=ec2.VpcEndpointIpAddressType.IPV6,
94599
+ dns_record_ip_type=ec2.VpcEndpointDnsRecordIpType.IPV6
94600
+ )
94601
+ '''
94602
+
94603
+ IPV4 = "IPV4"
94604
+ '''Assign IPv4 addresses to the endpoint network interfaces.
94605
+
94606
+ This option is supported only if all selected subnets have IPv4 address ranges
94607
+ and the endpoint service accepts IPv4 requests.
94608
+ '''
94609
+ IPV6 = "IPV6"
94610
+ '''Assign IPv6 addresses to the endpoint network interfaces.
94611
+
94612
+ This option is supported only if all selected subnets are IPv6 only subnets
94613
+ and the endpoint service accepts IPv6 requests.
94614
+ '''
94615
+ DUALSTACK = "DUALSTACK"
94616
+ '''Assign both IPv4 and IPv6 addresses to the endpoint network interfaces.
94617
+
94618
+ This option is supported only if all selected subnets have both IPv4 and IPv6
94619
+ address ranges and the endpoint service accepts both IPv4 and IPv6 requests.
94620
+ '''
94621
+
94622
+
94623
+ @jsii.enum(
94624
+ jsii_type="aws-cdk-lib.aws_ec2.VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint"
94625
+ )
94626
+ class VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint(enum.Enum):
94627
+ '''Indicates whether to enable private DNS only for inbound endpoints.
94628
+
94629
+ This option is available only for services that support both gateway and interface endpoints.
94630
+ It routes traffic that originates from the VPC to the gateway endpoint and traffic that
94631
+ originates from on-premises to the interface endpoint.
94632
+ '''
94633
+
94634
+ ALL_RESOLVERS = "ALL_RESOLVERS"
94635
+ '''Enable private DNS for all resolvers.'''
94636
+ ONLY_INBOUND_RESOLVER = "ONLY_INBOUND_RESOLVER"
94637
+ '''Enable private DNS only for inbound endpoints.'''
94638
+
94639
+
94349
94640
  @jsii.implements(IVpcEndpointService)
94350
94641
  class VpcEndpointService(
94351
94642
  _Resource_45bc6135,
@@ -99664,9 +99955,12 @@ class InterfaceVpcEndpoint(
99664
99955
  *,
99665
99956
  vpc: IVpc,
99666
99957
  service: IInterfaceVpcEndpointService,
99958
+ dns_record_ip_type: typing.Optional[VpcEndpointDnsRecordIpType] = None,
99959
+ ip_address_type: typing.Optional[VpcEndpointIpAddressType] = None,
99667
99960
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
99668
99961
  open: typing.Optional[builtins.bool] = None,
99669
99962
  private_dns_enabled: typing.Optional[builtins.bool] = None,
99963
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional[VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint] = None,
99670
99964
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
99671
99965
  subnets: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
99672
99966
  ) -> None:
@@ -99675,9 +99969,12 @@ class InterfaceVpcEndpoint(
99675
99969
  :param id: -
99676
99970
  :param vpc: The VPC network in which the interface endpoint will be used.
99677
99971
  :param service: The service to use for this interface VPC endpoint.
99972
+ :param dns_record_ip_type: Type of DNS records created for the VPC endpoint. Default: not specified
99973
+ :param ip_address_type: The IP address type for the endpoint. Default: not specified
99678
99974
  :param lookup_supported_azs: Limit to only those availability zones where the endpoint service can be created. Setting this to 'true' requires a lookup to be performed at synthesis time. Account and region must be set on the containing stack for this to work. Default: false
99679
99975
  :param open: Whether to automatically allow VPC traffic to the endpoint. If enabled, all traffic to the endpoint from within the VPC will be automatically allowed. This is done based on the VPC's CIDR range. Default: true
99680
99976
  :param private_dns_enabled: Whether to associate a private hosted zone with the specified VPC. This allows you to make requests to the service using its default DNS hostname. Default: set by the instance of IInterfaceVpcEndpointService, or true if not defined by the instance of IInterfaceVpcEndpointService
99977
+ :param private_dns_only_for_inbound_resolver_endpoint: Whether to enable private DNS only for inbound endpoints. Default: not specified
99681
99978
  :param security_groups: The security groups to associate with this interface VPC endpoint. Default: - a new security group is created
99682
99979
  :param subnets: The subnets in which to create an endpoint network interface. At most one per availability zone. Default: - private subnets
99683
99980
  '''
@@ -99688,9 +99985,12 @@ class InterfaceVpcEndpoint(
99688
99985
  props = InterfaceVpcEndpointProps(
99689
99986
  vpc=vpc,
99690
99987
  service=service,
99988
+ dns_record_ip_type=dns_record_ip_type,
99989
+ ip_address_type=ip_address_type,
99691
99990
  lookup_supported_azs=lookup_supported_azs,
99692
99991
  open=open,
99693
99992
  private_dns_enabled=private_dns_enabled,
99993
+ private_dns_only_for_inbound_resolver_endpoint=private_dns_only_for_inbound_resolver_endpoint,
99694
99994
  security_groups=security_groups,
99695
99995
  subnets=subnets,
99696
99996
  )
@@ -102537,6 +102837,9 @@ __all__ = [
102537
102837
  "Vpc",
102538
102838
  "VpcAttributes",
102539
102839
  "VpcEndpoint",
102840
+ "VpcEndpointDnsRecordIpType",
102841
+ "VpcEndpointIpAddressType",
102842
+ "VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint",
102540
102843
  "VpcEndpointService",
102541
102844
  "VpcEndpointServiceProps",
102542
102845
  "VpcEndpointType",
@@ -104500,6 +104803,7 @@ def _typecheckingstub__e3a07acffdb551edbc817b7c424628c812f21356d7f697757a332323f
104500
104803
  instance_family: typing.Optional[builtins.str] = None,
104501
104804
  instance_type: typing.Optional[builtins.str] = None,
104502
104805
  outpost_arn: typing.Optional[builtins.str] = None,
104806
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
104503
104807
  ) -> None:
104504
104808
  """Type checking stubs"""
104505
104809
  pass
@@ -104564,6 +104868,12 @@ def _typecheckingstub__1e93e24d3ea88403b39f7d948c7495b074446c1b676d25cd60fc9a3a5
104564
104868
  """Type checking stubs"""
104565
104869
  pass
104566
104870
 
104871
+ def _typecheckingstub__df2f657cc7e13ab207016558c8542895ee96b2df7db851bd2b108210783fccbb(
104872
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
104873
+ ) -> None:
104874
+ """Type checking stubs"""
104875
+ pass
104876
+
104567
104877
  def _typecheckingstub__6b2753a5bf48a7bda574bdc6bf8ca7f9c31c7e48329df5f793f75cfb822ea308(
104568
104878
  *,
104569
104879
  availability_zone: builtins.str,
@@ -104574,6 +104884,7 @@ def _typecheckingstub__6b2753a5bf48a7bda574bdc6bf8ca7f9c31c7e48329df5f793f75cfb8
104574
104884
  instance_family: typing.Optional[builtins.str] = None,
104575
104885
  instance_type: typing.Optional[builtins.str] = None,
104576
104886
  outpost_arn: typing.Optional[builtins.str] = None,
104887
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
104577
104888
  ) -> None:
104578
104889
  """Type checking stubs"""
104579
104890
  pass
@@ -110810,6 +111121,7 @@ def _typecheckingstub__a16478d34754d994e7b5d75d1e427abd720d7df3e6b3c870e3e83c927
110810
111121
  security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
110811
111122
  service_name: typing.Optional[builtins.str] = None,
110812
111123
  service_network_arn: typing.Optional[builtins.str] = None,
111124
+ service_region: typing.Optional[builtins.str] = None,
110813
111125
  subnet_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
110814
111126
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
110815
111127
  vpc_endpoint_type: typing.Optional[builtins.str] = None,
@@ -110889,6 +111201,12 @@ def _typecheckingstub__93ce6066a05ef231155e5be0db9255aa620b43b7f15caa8dbed327524
110889
111201
  """Type checking stubs"""
110890
111202
  pass
110891
111203
 
111204
+ def _typecheckingstub__d6d3cd08ec1fd31ad1338faa2ac68fd15809dab9a7d259f896ee13feffaad8cb(
111205
+ value: typing.Optional[builtins.str],
111206
+ ) -> None:
111207
+ """Type checking stubs"""
111208
+ pass
111209
+
110892
111210
  def _typecheckingstub__b83f77b13bf225d451aa245360aebfaece0685d635a9b435d657b957d2d8bdc0(
110893
111211
  value: typing.Optional[typing.List[builtins.str]],
110894
111212
  ) -> None:
@@ -110985,6 +111303,7 @@ def _typecheckingstub__34ba69df521981275d9321266877bb15ffeaff485197a94710ae57c73
110985
111303
  security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
110986
111304
  service_name: typing.Optional[builtins.str] = None,
110987
111305
  service_network_arn: typing.Optional[builtins.str] = None,
111306
+ service_region: typing.Optional[builtins.str] = None,
110988
111307
  subnet_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
110989
111308
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
110990
111309
  vpc_endpoint_type: typing.Optional[builtins.str] = None,
@@ -112925,9 +113244,12 @@ def _typecheckingstub__a8399f0a6a7650e1c02d00770e21cad422b9760a1fdc24465cf546371
112925
113244
  id: builtins.str,
112926
113245
  *,
112927
113246
  service: IInterfaceVpcEndpointService,
113247
+ dns_record_ip_type: typing.Optional[VpcEndpointDnsRecordIpType] = None,
113248
+ ip_address_type: typing.Optional[VpcEndpointIpAddressType] = None,
112928
113249
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
112929
113250
  open: typing.Optional[builtins.bool] = None,
112930
113251
  private_dns_enabled: typing.Optional[builtins.bool] = None,
113252
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional[VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint] = None,
112931
113253
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
112932
113254
  subnets: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
112933
113255
  ) -> None:
@@ -113535,9 +113857,12 @@ def _typecheckingstub__839b4527cdef7433e0b16b2f194a2476ac2b4de98682b8a6392a8493d
113535
113857
  def _typecheckingstub__1a6dd0208e338cbe286ecaa3bcf5f95a5f0a0c1e1b3565ca6de058b5fbe2bbdf(
113536
113858
  *,
113537
113859
  service: IInterfaceVpcEndpointService,
113860
+ dns_record_ip_type: typing.Optional[VpcEndpointDnsRecordIpType] = None,
113861
+ ip_address_type: typing.Optional[VpcEndpointIpAddressType] = None,
113538
113862
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
113539
113863
  open: typing.Optional[builtins.bool] = None,
113540
113864
  private_dns_enabled: typing.Optional[builtins.bool] = None,
113865
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional[VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint] = None,
113541
113866
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
113542
113867
  subnets: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
113543
113868
  ) -> None:
@@ -113547,9 +113872,12 @@ def _typecheckingstub__1a6dd0208e338cbe286ecaa3bcf5f95a5f0a0c1e1b3565ca6de058b5f
113547
113872
  def _typecheckingstub__6606ba3de030c44ce43dee44afe64adc59231bfc542799d1354e0732a309b2f0(
113548
113873
  *,
113549
113874
  service: IInterfaceVpcEndpointService,
113875
+ dns_record_ip_type: typing.Optional[VpcEndpointDnsRecordIpType] = None,
113876
+ ip_address_type: typing.Optional[VpcEndpointIpAddressType] = None,
113550
113877
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
113551
113878
  open: typing.Optional[builtins.bool] = None,
113552
113879
  private_dns_enabled: typing.Optional[builtins.bool] = None,
113880
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional[VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint] = None,
113553
113881
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
113554
113882
  subnets: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
113555
113883
  vpc: IVpc,
@@ -114792,9 +115120,12 @@ def _typecheckingstub__00d64fd969958beb796ccf5d1bc5d808fd3e751c9e3c2237abfaf2dbe
114792
115120
  id: builtins.str,
114793
115121
  *,
114794
115122
  service: IInterfaceVpcEndpointService,
115123
+ dns_record_ip_type: typing.Optional[VpcEndpointDnsRecordIpType] = None,
115124
+ ip_address_type: typing.Optional[VpcEndpointIpAddressType] = None,
114795
115125
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
114796
115126
  open: typing.Optional[builtins.bool] = None,
114797
115127
  private_dns_enabled: typing.Optional[builtins.bool] = None,
115128
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional[VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint] = None,
114798
115129
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
114799
115130
  subnets: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
114800
115131
  ) -> None:
@@ -115374,9 +115705,12 @@ def _typecheckingstub__a11756d82f1033710d89b4b10b111462f7a99734ff79d3648bd84d0e5
115374
115705
  *,
115375
115706
  vpc: IVpc,
115376
115707
  service: IInterfaceVpcEndpointService,
115708
+ dns_record_ip_type: typing.Optional[VpcEndpointDnsRecordIpType] = None,
115709
+ ip_address_type: typing.Optional[VpcEndpointIpAddressType] = None,
115377
115710
  lookup_supported_azs: typing.Optional[builtins.bool] = None,
115378
115711
  open: typing.Optional[builtins.bool] = None,
115379
115712
  private_dns_enabled: typing.Optional[builtins.bool] = None,
115713
+ private_dns_only_for_inbound_resolver_endpoint: typing.Optional[VpcEndpointPrivateDnsOnlyForInboundResolverEndpoint] = None,
115380
115714
  security_groups: typing.Optional[typing.Sequence[ISecurityGroup]] = None,
115381
115715
  subnets: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
115382
115716
  ) -> None: