aws-cdk-lib 2.187.0__py3-none-any.whl → 2.189.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 (60) hide show
  1. aws_cdk/__init__.py +24 -3
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.187.0.jsii.tgz → aws-cdk-lib@2.189.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplify/__init__.py +21 -9
  5. aws_cdk/aws_apigateway/__init__.py +27 -19
  6. aws_cdk/aws_apigatewayv2/__init__.py +170 -0
  7. aws_cdk/aws_appconfig/__init__.py +30 -14
  8. aws_cdk/aws_arczonalshift/__init__.py +4 -4
  9. aws_cdk/aws_batch/__init__.py +2 -0
  10. aws_cdk/aws_bedrock/__init__.py +629 -32
  11. aws_cdk/aws_budgets/__init__.py +8 -8
  12. aws_cdk/aws_cassandra/__init__.py +3 -1
  13. aws_cdk/aws_ce/__init__.py +2 -2
  14. aws_cdk/aws_cloudformation/__init__.py +3 -3
  15. aws_cdk/aws_codebuild/__init__.py +23 -1
  16. aws_cdk/aws_codepipeline/__init__.py +47 -32
  17. aws_cdk/aws_codepipeline_actions/__init__.py +2786 -1042
  18. aws_cdk/aws_codestarnotifications/__init__.py +16 -16
  19. aws_cdk/aws_cognito/__init__.py +8 -2
  20. aws_cdk/aws_dsql/__init__.py +366 -0
  21. aws_cdk/aws_dynamodb/__init__.py +4 -4
  22. aws_cdk/aws_ec2/__init__.py +2130 -237
  23. aws_cdk/aws_eks/__init__.py +112 -10
  24. aws_cdk/aws_events_targets/__init__.py +136 -0
  25. aws_cdk/aws_fsx/__init__.py +2 -8
  26. aws_cdk/aws_gamelift/__init__.py +140 -14
  27. aws_cdk/aws_groundstation/__init__.py +4 -2
  28. aws_cdk/aws_iam/__init__.py +6 -4
  29. aws_cdk/aws_identitystore/__init__.py +15 -13
  30. aws_cdk/aws_kinesisfirehose/__init__.py +38 -0
  31. aws_cdk/aws_lambda_event_sources/__init__.py +22 -22
  32. aws_cdk/aws_lex/__init__.py +21 -17
  33. aws_cdk/aws_logs/__init__.py +18 -0
  34. aws_cdk/aws_logs_destinations/__init__.py +146 -0
  35. aws_cdk/aws_notifications/__init__.py +4 -4
  36. aws_cdk/aws_omics/__init__.py +9 -1
  37. aws_cdk/aws_opensearchserverless/__init__.py +31 -23
  38. aws_cdk/aws_organizations/__init__.py +1 -1
  39. aws_cdk/aws_paymentcryptography/__init__.py +6 -2
  40. aws_cdk/aws_pcaconnectorad/__init__.py +3 -2
  41. aws_cdk/aws_quicksight/__init__.py +35 -22
  42. aws_cdk/aws_rds/__init__.py +84 -0
  43. aws_cdk/aws_redshiftserverless/__init__.py +166 -0
  44. aws_cdk/aws_route53/__init__.py +3 -3
  45. aws_cdk/aws_route53recoverycontrol/__init__.py +4 -6
  46. aws_cdk/aws_rum/__init__.py +13 -10
  47. aws_cdk/aws_s3/__init__.py +3 -6
  48. aws_cdk/aws_sagemaker/__init__.py +41 -0
  49. aws_cdk/aws_ssmincidents/__init__.py +10 -10
  50. aws_cdk/aws_systemsmanagersap/__init__.py +17 -7
  51. aws_cdk/aws_transfer/__init__.py +19 -10
  52. aws_cdk/aws_wafv2/__init__.py +80 -35
  53. aws_cdk/cx_api/__init__.py +23 -2
  54. aws_cdk/pipelines/__init__.py +71 -1
  55. {aws_cdk_lib-2.187.0.dist-info → aws_cdk_lib-2.189.0.dist-info}/METADATA +1 -1
  56. {aws_cdk_lib-2.187.0.dist-info → aws_cdk_lib-2.189.0.dist-info}/RECORD +60 -59
  57. {aws_cdk_lib-2.187.0.dist-info → aws_cdk_lib-2.189.0.dist-info}/LICENSE +0 -0
  58. {aws_cdk_lib-2.187.0.dist-info → aws_cdk_lib-2.189.0.dist-info}/NOTICE +0 -0
  59. {aws_cdk_lib-2.187.0.dist-info → aws_cdk_lib-2.189.0.dist-info}/WHEEL +0 -0
  60. {aws_cdk_lib-2.187.0.dist-info → aws_cdk_lib-2.189.0.dist-info}/top_level.txt +0 -0
@@ -20455,6 +20455,12 @@ class CfnInstance(
20455
20455
  associate_public_ip_address=False,
20456
20456
  delete_on_termination=False,
20457
20457
  description="description",
20458
+ ena_srd_specification=ec2.CfnInstance.EnaSrdSpecificationProperty(
20459
+ ena_srd_enabled=False,
20460
+ ena_srd_udp_specification=ec2.CfnInstance.EnaSrdUdpSpecificationProperty(
20461
+ ena_srd_udp_enabled=False
20462
+ )
20463
+ ),
20458
20464
  group_set=["groupSet"],
20459
20465
  ipv6_address_count=123,
20460
20466
  ipv6_addresses=[ec2.CfnInstance.InstanceIpv6AddressProperty(
@@ -22120,6 +22126,150 @@ class CfnInstance(
22120
22126
  k + "=" + repr(v) for k, v in self._values.items()
22121
22127
  )
22122
22128
 
22129
+ @jsii.data_type(
22130
+ jsii_type="aws-cdk-lib.aws_ec2.CfnInstance.EnaSrdSpecificationProperty",
22131
+ jsii_struct_bases=[],
22132
+ name_mapping={
22133
+ "ena_srd_enabled": "enaSrdEnabled",
22134
+ "ena_srd_udp_specification": "enaSrdUdpSpecification",
22135
+ },
22136
+ )
22137
+ class EnaSrdSpecificationProperty:
22138
+ def __init__(
22139
+ self,
22140
+ *,
22141
+ ena_srd_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
22142
+ ena_srd_udp_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnInstance.EnaSrdUdpSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
22143
+ ) -> None:
22144
+ '''ENA Express uses AWS Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances.
22145
+
22146
+ With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.
22147
+
22148
+ To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.
22149
+
22150
+ :param ena_srd_enabled: Indicates whether ENA Express is enabled for the network interface.
22151
+ :param ena_srd_udp_specification: Configures ENA Express for UDP network traffic.
22152
+
22153
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enasrdspecification.html
22154
+ :exampleMetadata: fixture=_generated
22155
+
22156
+ Example::
22157
+
22158
+ # The code below shows an example of how to instantiate this type.
22159
+ # The values are placeholders you should change.
22160
+ from aws_cdk import aws_ec2 as ec2
22161
+
22162
+ ena_srd_specification_property = ec2.CfnInstance.EnaSrdSpecificationProperty(
22163
+ ena_srd_enabled=False,
22164
+ ena_srd_udp_specification=ec2.CfnInstance.EnaSrdUdpSpecificationProperty(
22165
+ ena_srd_udp_enabled=False
22166
+ )
22167
+ )
22168
+ '''
22169
+ if __debug__:
22170
+ type_hints = typing.get_type_hints(_typecheckingstub__cb5cfa1ad0a955752d0fe5cf1fa975e214907046a3adab82f42c2cb294897482)
22171
+ check_type(argname="argument ena_srd_enabled", value=ena_srd_enabled, expected_type=type_hints["ena_srd_enabled"])
22172
+ check_type(argname="argument ena_srd_udp_specification", value=ena_srd_udp_specification, expected_type=type_hints["ena_srd_udp_specification"])
22173
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
22174
+ if ena_srd_enabled is not None:
22175
+ self._values["ena_srd_enabled"] = ena_srd_enabled
22176
+ if ena_srd_udp_specification is not None:
22177
+ self._values["ena_srd_udp_specification"] = ena_srd_udp_specification
22178
+
22179
+ @builtins.property
22180
+ def ena_srd_enabled(
22181
+ self,
22182
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
22183
+ '''Indicates whether ENA Express is enabled for the network interface.
22184
+
22185
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enasrdspecification.html#cfn-ec2-instance-enasrdspecification-enasrdenabled
22186
+ '''
22187
+ result = self._values.get("ena_srd_enabled")
22188
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
22189
+
22190
+ @builtins.property
22191
+ def ena_srd_udp_specification(
22192
+ self,
22193
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.EnaSrdUdpSpecificationProperty"]]:
22194
+ '''Configures ENA Express for UDP network traffic.
22195
+
22196
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enasrdspecification.html#cfn-ec2-instance-enasrdspecification-enasrdudpspecification
22197
+ '''
22198
+ result = self._values.get("ena_srd_udp_specification")
22199
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.EnaSrdUdpSpecificationProperty"]], result)
22200
+
22201
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
22202
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
22203
+
22204
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
22205
+ return not (rhs == self)
22206
+
22207
+ def __repr__(self) -> str:
22208
+ return "EnaSrdSpecificationProperty(%s)" % ", ".join(
22209
+ k + "=" + repr(v) for k, v in self._values.items()
22210
+ )
22211
+
22212
+ @jsii.data_type(
22213
+ jsii_type="aws-cdk-lib.aws_ec2.CfnInstance.EnaSrdUdpSpecificationProperty",
22214
+ jsii_struct_bases=[],
22215
+ name_mapping={"ena_srd_udp_enabled": "enaSrdUdpEnabled"},
22216
+ )
22217
+ class EnaSrdUdpSpecificationProperty:
22218
+ def __init__(
22219
+ self,
22220
+ *,
22221
+ ena_srd_udp_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
22222
+ ) -> None:
22223
+ '''ENA Express is compatible with both TCP and UDP transport protocols.
22224
+
22225
+ When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.
22226
+
22227
+ :param ena_srd_udp_enabled: Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.
22228
+
22229
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enasrdudpspecification.html
22230
+ :exampleMetadata: fixture=_generated
22231
+
22232
+ Example::
22233
+
22234
+ # The code below shows an example of how to instantiate this type.
22235
+ # The values are placeholders you should change.
22236
+ from aws_cdk import aws_ec2 as ec2
22237
+
22238
+ ena_srd_udp_specification_property = ec2.CfnInstance.EnaSrdUdpSpecificationProperty(
22239
+ ena_srd_udp_enabled=False
22240
+ )
22241
+ '''
22242
+ if __debug__:
22243
+ type_hints = typing.get_type_hints(_typecheckingstub__2ca233cf2c335cfa3da294e921b5541acd4aaf5e78b3618e6108270995e3e826)
22244
+ check_type(argname="argument ena_srd_udp_enabled", value=ena_srd_udp_enabled, expected_type=type_hints["ena_srd_udp_enabled"])
22245
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
22246
+ if ena_srd_udp_enabled is not None:
22247
+ self._values["ena_srd_udp_enabled"] = ena_srd_udp_enabled
22248
+
22249
+ @builtins.property
22250
+ def ena_srd_udp_enabled(
22251
+ self,
22252
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
22253
+ '''Indicates whether UDP traffic to and from the instance uses ENA Express.
22254
+
22255
+ To specify this setting, you must first enable ENA Express.
22256
+
22257
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enasrdudpspecification.html#cfn-ec2-instance-enasrdudpspecification-enasrdudpenabled
22258
+ '''
22259
+ result = self._values.get("ena_srd_udp_enabled")
22260
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
22261
+
22262
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
22263
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
22264
+
22265
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
22266
+ return not (rhs == self)
22267
+
22268
+ def __repr__(self) -> str:
22269
+ return "EnaSrdUdpSpecificationProperty(%s)" % ", ".join(
22270
+ k + "=" + repr(v) for k, v in self._values.items()
22271
+ )
22272
+
22123
22273
  @jsii.data_type(
22124
22274
  jsii_type="aws-cdk-lib.aws_ec2.CfnInstance.EnclaveOptionsProperty",
22125
22275
  jsii_struct_bases=[],
@@ -22469,6 +22619,7 @@ class CfnInstance(
22469
22619
  "associate_public_ip_address": "associatePublicIpAddress",
22470
22620
  "delete_on_termination": "deleteOnTermination",
22471
22621
  "description": "description",
22622
+ "ena_srd_specification": "enaSrdSpecification",
22472
22623
  "group_set": "groupSet",
22473
22624
  "ipv6_address_count": "ipv6AddressCount",
22474
22625
  "ipv6_addresses": "ipv6Addresses",
@@ -22488,6 +22639,7 @@ class CfnInstance(
22488
22639
  associate_public_ip_address: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
22489
22640
  delete_on_termination: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
22490
22641
  description: typing.Optional[builtins.str] = None,
22642
+ ena_srd_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnInstance.EnaSrdSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
22491
22643
  group_set: typing.Optional[typing.Sequence[builtins.str]] = None,
22492
22644
  ipv6_address_count: typing.Optional[jsii.Number] = None,
22493
22645
  ipv6_addresses: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnInstance.InstanceIpv6AddressProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -22508,6 +22660,7 @@ class CfnInstance(
22508
22660
  :param associate_public_ip_address: Indicates whether to assign a public IPv4 address to an instance. Applies only if creating a network interface when launching an instance. The network interface must be the primary network interface. If launching into a default subnet, the default value is ``true`` . AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
22509
22661
  :param delete_on_termination: Indicates whether the network interface is deleted when the instance is terminated. Applies only if creating a network interface when launching an instance.
22510
22662
  :param description: The description of the network interface. Applies only if creating a network interface when launching an instance.
22663
+ :param ena_srd_specification: Configures ENA Express for UDP network traffic.
22511
22664
  :param group_set: The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.
22512
22665
  :param ipv6_address_count: A number of IPv6 addresses to assign to the network interface. Amazon EC2 chooses the IPv6 addresses from the range of the subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch.
22513
22666
  :param ipv6_addresses: The IPv6 addresses to assign to the network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.
@@ -22534,6 +22687,12 @@ class CfnInstance(
22534
22687
  associate_public_ip_address=False,
22535
22688
  delete_on_termination=False,
22536
22689
  description="description",
22690
+ ena_srd_specification=ec2.CfnInstance.EnaSrdSpecificationProperty(
22691
+ ena_srd_enabled=False,
22692
+ ena_srd_udp_specification=ec2.CfnInstance.EnaSrdUdpSpecificationProperty(
22693
+ ena_srd_udp_enabled=False
22694
+ )
22695
+ ),
22537
22696
  group_set=["groupSet"],
22538
22697
  ipv6_address_count=123,
22539
22698
  ipv6_addresses=[ec2.CfnInstance.InstanceIpv6AddressProperty(
@@ -22556,6 +22715,7 @@ class CfnInstance(
22556
22715
  check_type(argname="argument associate_public_ip_address", value=associate_public_ip_address, expected_type=type_hints["associate_public_ip_address"])
22557
22716
  check_type(argname="argument delete_on_termination", value=delete_on_termination, expected_type=type_hints["delete_on_termination"])
22558
22717
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
22718
+ check_type(argname="argument ena_srd_specification", value=ena_srd_specification, expected_type=type_hints["ena_srd_specification"])
22559
22719
  check_type(argname="argument group_set", value=group_set, expected_type=type_hints["group_set"])
22560
22720
  check_type(argname="argument ipv6_address_count", value=ipv6_address_count, expected_type=type_hints["ipv6_address_count"])
22561
22721
  check_type(argname="argument ipv6_addresses", value=ipv6_addresses, expected_type=type_hints["ipv6_addresses"])
@@ -22575,6 +22735,8 @@ class CfnInstance(
22575
22735
  self._values["delete_on_termination"] = delete_on_termination
22576
22736
  if description is not None:
22577
22737
  self._values["description"] = description
22738
+ if ena_srd_specification is not None:
22739
+ self._values["ena_srd_specification"] = ena_srd_specification
22578
22740
  if group_set is not None:
22579
22741
  self._values["group_set"] = group_set
22580
22742
  if ipv6_address_count is not None:
@@ -22658,6 +22820,17 @@ class CfnInstance(
22658
22820
  result = self._values.get("description")
22659
22821
  return typing.cast(typing.Optional[builtins.str], result)
22660
22822
 
22823
+ @builtins.property
22824
+ def ena_srd_specification(
22825
+ self,
22826
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.EnaSrdSpecificationProperty"]]:
22827
+ '''Configures ENA Express for UDP network traffic.
22828
+
22829
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html#cfn-ec2-instance-networkinterface-enasrdspecification
22830
+ '''
22831
+ result = self._values.get("ena_srd_specification")
22832
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.EnaSrdSpecificationProperty"]], result)
22833
+
22661
22834
  @builtins.property
22662
22835
  def group_set(self) -> typing.Optional[typing.List[builtins.str]]:
22663
22836
  '''The IDs of the security groups for the network interface.
@@ -23754,6 +23927,12 @@ class CfnInstanceProps:
23754
23927
  associate_public_ip_address=False,
23755
23928
  delete_on_termination=False,
23756
23929
  description="description",
23930
+ ena_srd_specification=ec2.CfnInstance.EnaSrdSpecificationProperty(
23931
+ ena_srd_enabled=False,
23932
+ ena_srd_udp_specification=ec2.CfnInstance.EnaSrdUdpSpecificationProperty(
23933
+ ena_srd_udp_enabled=False
23934
+ )
23935
+ ),
23757
23936
  group_set=["groupSet"],
23758
23937
  ipv6_address_count=123,
23759
23938
  ipv6_addresses=[ec2.CfnInstance.InstanceIpv6AddressProperty(
@@ -29319,7 +29498,7 @@ class CfnLaunchTemplate(
29319
29498
  :param connection_tracking_specification: A connection tracking specification for the network interface.
29320
29499
  :param delete_on_termination: Indicates whether the network interface is deleted when the instance is terminated.
29321
29500
  :param description: A description for the network interface.
29322
- :param device_index: The device index for the network interface attachment. If the network interface is of type ``interface`` , you must specify a device index. If you create a launch template that includes secondary network interfaces but no primary network interface, and you specify it using the ``LaunchTemplate`` property of ``AWS::EC2::Instance`` , then you must include a primary network interface using the ``NetworkInterfaces`` property of ``AWS::EC2::Instance`` .
29501
+ :param device_index: The device index for the network interface attachment. The primary network interface has a device index of 0. If the network interface is of type ``interface`` , you must specify a device index. If you create a launch template that includes secondary network interfaces but no primary network interface, and you specify it using the ``LaunchTemplate`` property of ``AWS::EC2::Instance`` , then you must include a primary network interface using the ``NetworkInterfaces`` property of ``AWS::EC2::Instance`` .
29323
29502
  :param ena_srd_specification: The ENA Express configuration for the network interface.
29324
29503
  :param groups: The IDs of one or more security groups.
29325
29504
  :param interface_type: The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa`` . For more information, see `Elastic Fabric Adapter for AI/ML and HPC workloads on Amazon EC2 <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html>`_ in the *Amazon EC2 User Guide* . If you are not creating an EFA, specify ``interface`` or omit this parameter. If you specify ``efa-only`` , do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses. Valid values: ``interface`` | ``efa`` | ``efa-only``
@@ -29520,7 +29699,7 @@ class CfnLaunchTemplate(
29520
29699
  def device_index(self) -> typing.Optional[jsii.Number]:
29521
29700
  '''The device index for the network interface attachment.
29522
29701
 
29523
- If the network interface is of type ``interface`` , you must specify a device index.
29702
+ The primary network interface has a device index of 0. If the network interface is of type ``interface`` , you must specify a device index.
29524
29703
 
29525
29704
  If you create a launch template that includes secondary network interfaces but no primary network interface, and you specify it using the ``LaunchTemplate`` property of ``AWS::EC2::Instance`` , then you must include a primary network interface using the ``NetworkInterfaces`` property of ``AWS::EC2::Instance`` .
29526
29705
 
@@ -41658,92 +41837,1549 @@ class CfnRoute(
41658
41837
  jsii.set(self, "transitGatewayId", value) # pyright: ignore[reportArgumentType]
41659
41838
 
41660
41839
  @builtins.property
41661
- @jsii.member(jsii_name="vpcEndpointId")
41662
- def vpc_endpoint_id(self) -> typing.Optional[builtins.str]:
41663
- '''The ID of a VPC endpoint.'''
41664
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "vpcEndpointId"))
41840
+ @jsii.member(jsii_name="vpcEndpointId")
41841
+ def vpc_endpoint_id(self) -> typing.Optional[builtins.str]:
41842
+ '''The ID of a VPC endpoint.'''
41843
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "vpcEndpointId"))
41844
+
41845
+ @vpc_endpoint_id.setter
41846
+ def vpc_endpoint_id(self, value: typing.Optional[builtins.str]) -> None:
41847
+ if __debug__:
41848
+ type_hints = typing.get_type_hints(_typecheckingstub__9b3588c8e5a495d9ab8a2699ed72f7253e15605bba594e43b65e5892bcbf1ca0)
41849
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
41850
+ jsii.set(self, "vpcEndpointId", value) # pyright: ignore[reportArgumentType]
41851
+
41852
+ @builtins.property
41853
+ @jsii.member(jsii_name="vpcPeeringConnectionId")
41854
+ def vpc_peering_connection_id(self) -> typing.Optional[builtins.str]:
41855
+ '''The ID of a VPC peering connection.'''
41856
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "vpcPeeringConnectionId"))
41857
+
41858
+ @vpc_peering_connection_id.setter
41859
+ def vpc_peering_connection_id(self, value: typing.Optional[builtins.str]) -> None:
41860
+ if __debug__:
41861
+ type_hints = typing.get_type_hints(_typecheckingstub__46892d5dd1581aee0dcf6410687f88cfaffdfdd18c726880534edc8f86e9919a)
41862
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
41863
+ jsii.set(self, "vpcPeeringConnectionId", value) # pyright: ignore[reportArgumentType]
41864
+
41865
+
41866
+ @jsii.data_type(
41867
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteProps",
41868
+ jsii_struct_bases=[],
41869
+ name_mapping={
41870
+ "route_table_id": "routeTableId",
41871
+ "carrier_gateway_id": "carrierGatewayId",
41872
+ "core_network_arn": "coreNetworkArn",
41873
+ "destination_cidr_block": "destinationCidrBlock",
41874
+ "destination_ipv6_cidr_block": "destinationIpv6CidrBlock",
41875
+ "destination_prefix_list_id": "destinationPrefixListId",
41876
+ "egress_only_internet_gateway_id": "egressOnlyInternetGatewayId",
41877
+ "gateway_id": "gatewayId",
41878
+ "instance_id": "instanceId",
41879
+ "local_gateway_id": "localGatewayId",
41880
+ "nat_gateway_id": "natGatewayId",
41881
+ "network_interface_id": "networkInterfaceId",
41882
+ "transit_gateway_id": "transitGatewayId",
41883
+ "vpc_endpoint_id": "vpcEndpointId",
41884
+ "vpc_peering_connection_id": "vpcPeeringConnectionId",
41885
+ },
41886
+ )
41887
+ class CfnRouteProps:
41888
+ def __init__(
41889
+ self,
41890
+ *,
41891
+ route_table_id: builtins.str,
41892
+ carrier_gateway_id: typing.Optional[builtins.str] = None,
41893
+ core_network_arn: typing.Optional[builtins.str] = None,
41894
+ destination_cidr_block: typing.Optional[builtins.str] = None,
41895
+ destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
41896
+ destination_prefix_list_id: typing.Optional[builtins.str] = None,
41897
+ egress_only_internet_gateway_id: typing.Optional[builtins.str] = None,
41898
+ gateway_id: typing.Optional[builtins.str] = None,
41899
+ instance_id: typing.Optional[builtins.str] = None,
41900
+ local_gateway_id: typing.Optional[builtins.str] = None,
41901
+ nat_gateway_id: typing.Optional[builtins.str] = None,
41902
+ network_interface_id: typing.Optional[builtins.str] = None,
41903
+ transit_gateway_id: typing.Optional[builtins.str] = None,
41904
+ vpc_endpoint_id: typing.Optional[builtins.str] = None,
41905
+ vpc_peering_connection_id: typing.Optional[builtins.str] = None,
41906
+ ) -> None:
41907
+ '''Properties for defining a ``CfnRoute``.
41908
+
41909
+ :param route_table_id: The ID of the route table for the route.
41910
+ :param carrier_gateway_id: The ID of the carrier gateway. You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.
41911
+ :param core_network_arn: The Amazon Resource Name (ARN) of the core network.
41912
+ :param destination_cidr_block: The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18`` , we modify it to ``100.68.0.0/18`` .
41913
+ :param destination_ipv6_cidr_block: The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.
41914
+ :param destination_prefix_list_id: The ID of a prefix list used for the destination match.
41915
+ :param egress_only_internet_gateway_id: [IPv6 traffic only] The ID of an egress-only internet gateway.
41916
+ :param gateway_id: The ID of an internet gateway or virtual private gateway attached to your VPC.
41917
+ :param instance_id: The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.
41918
+ :param local_gateway_id: The ID of the local gateway.
41919
+ :param nat_gateway_id: [IPv4 traffic only] The ID of a NAT gateway.
41920
+ :param network_interface_id: The ID of a network interface.
41921
+ :param transit_gateway_id: The ID of a transit gateway.
41922
+ :param vpc_endpoint_id: The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.
41923
+ :param vpc_peering_connection_id: The ID of a VPC peering connection.
41924
+
41925
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html
41926
+ :exampleMetadata: fixture=_generated
41927
+
41928
+ Example::
41929
+
41930
+ # The code below shows an example of how to instantiate this type.
41931
+ # The values are placeholders you should change.
41932
+ from aws_cdk import aws_ec2 as ec2
41933
+
41934
+ cfn_route_props = ec2.CfnRouteProps(
41935
+ route_table_id="routeTableId",
41936
+
41937
+ # the properties below are optional
41938
+ carrier_gateway_id="carrierGatewayId",
41939
+ core_network_arn="coreNetworkArn",
41940
+ destination_cidr_block="destinationCidrBlock",
41941
+ destination_ipv6_cidr_block="destinationIpv6CidrBlock",
41942
+ destination_prefix_list_id="destinationPrefixListId",
41943
+ egress_only_internet_gateway_id="egressOnlyInternetGatewayId",
41944
+ gateway_id="gatewayId",
41945
+ instance_id="instanceId",
41946
+ local_gateway_id="localGatewayId",
41947
+ nat_gateway_id="natGatewayId",
41948
+ network_interface_id="networkInterfaceId",
41949
+ transit_gateway_id="transitGatewayId",
41950
+ vpc_endpoint_id="vpcEndpointId",
41951
+ vpc_peering_connection_id="vpcPeeringConnectionId"
41952
+ )
41953
+ '''
41954
+ if __debug__:
41955
+ type_hints = typing.get_type_hints(_typecheckingstub__f90e7814d59b7c562ab4b24d54461eba6a4c88fbd5451ba2b2b0adf8441a452e)
41956
+ check_type(argname="argument route_table_id", value=route_table_id, expected_type=type_hints["route_table_id"])
41957
+ check_type(argname="argument carrier_gateway_id", value=carrier_gateway_id, expected_type=type_hints["carrier_gateway_id"])
41958
+ check_type(argname="argument core_network_arn", value=core_network_arn, expected_type=type_hints["core_network_arn"])
41959
+ check_type(argname="argument destination_cidr_block", value=destination_cidr_block, expected_type=type_hints["destination_cidr_block"])
41960
+ check_type(argname="argument destination_ipv6_cidr_block", value=destination_ipv6_cidr_block, expected_type=type_hints["destination_ipv6_cidr_block"])
41961
+ check_type(argname="argument destination_prefix_list_id", value=destination_prefix_list_id, expected_type=type_hints["destination_prefix_list_id"])
41962
+ check_type(argname="argument egress_only_internet_gateway_id", value=egress_only_internet_gateway_id, expected_type=type_hints["egress_only_internet_gateway_id"])
41963
+ check_type(argname="argument gateway_id", value=gateway_id, expected_type=type_hints["gateway_id"])
41964
+ check_type(argname="argument instance_id", value=instance_id, expected_type=type_hints["instance_id"])
41965
+ check_type(argname="argument local_gateway_id", value=local_gateway_id, expected_type=type_hints["local_gateway_id"])
41966
+ check_type(argname="argument nat_gateway_id", value=nat_gateway_id, expected_type=type_hints["nat_gateway_id"])
41967
+ check_type(argname="argument network_interface_id", value=network_interface_id, expected_type=type_hints["network_interface_id"])
41968
+ check_type(argname="argument transit_gateway_id", value=transit_gateway_id, expected_type=type_hints["transit_gateway_id"])
41969
+ check_type(argname="argument vpc_endpoint_id", value=vpc_endpoint_id, expected_type=type_hints["vpc_endpoint_id"])
41970
+ check_type(argname="argument vpc_peering_connection_id", value=vpc_peering_connection_id, expected_type=type_hints["vpc_peering_connection_id"])
41971
+ self._values: typing.Dict[builtins.str, typing.Any] = {
41972
+ "route_table_id": route_table_id,
41973
+ }
41974
+ if carrier_gateway_id is not None:
41975
+ self._values["carrier_gateway_id"] = carrier_gateway_id
41976
+ if core_network_arn is not None:
41977
+ self._values["core_network_arn"] = core_network_arn
41978
+ if destination_cidr_block is not None:
41979
+ self._values["destination_cidr_block"] = destination_cidr_block
41980
+ if destination_ipv6_cidr_block is not None:
41981
+ self._values["destination_ipv6_cidr_block"] = destination_ipv6_cidr_block
41982
+ if destination_prefix_list_id is not None:
41983
+ self._values["destination_prefix_list_id"] = destination_prefix_list_id
41984
+ if egress_only_internet_gateway_id is not None:
41985
+ self._values["egress_only_internet_gateway_id"] = egress_only_internet_gateway_id
41986
+ if gateway_id is not None:
41987
+ self._values["gateway_id"] = gateway_id
41988
+ if instance_id is not None:
41989
+ self._values["instance_id"] = instance_id
41990
+ if local_gateway_id is not None:
41991
+ self._values["local_gateway_id"] = local_gateway_id
41992
+ if nat_gateway_id is not None:
41993
+ self._values["nat_gateway_id"] = nat_gateway_id
41994
+ if network_interface_id is not None:
41995
+ self._values["network_interface_id"] = network_interface_id
41996
+ if transit_gateway_id is not None:
41997
+ self._values["transit_gateway_id"] = transit_gateway_id
41998
+ if vpc_endpoint_id is not None:
41999
+ self._values["vpc_endpoint_id"] = vpc_endpoint_id
42000
+ if vpc_peering_connection_id is not None:
42001
+ self._values["vpc_peering_connection_id"] = vpc_peering_connection_id
42002
+
42003
+ @builtins.property
42004
+ def route_table_id(self) -> builtins.str:
42005
+ '''The ID of the route table for the route.
42006
+
42007
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-routetableid
42008
+ '''
42009
+ result = self._values.get("route_table_id")
42010
+ assert result is not None, "Required property 'route_table_id' is missing"
42011
+ return typing.cast(builtins.str, result)
42012
+
42013
+ @builtins.property
42014
+ def carrier_gateway_id(self) -> typing.Optional[builtins.str]:
42015
+ '''The ID of the carrier gateway.
42016
+
42017
+ You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.
42018
+
42019
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-carriergatewayid
42020
+ '''
42021
+ result = self._values.get("carrier_gateway_id")
42022
+ return typing.cast(typing.Optional[builtins.str], result)
42023
+
42024
+ @builtins.property
42025
+ def core_network_arn(self) -> typing.Optional[builtins.str]:
42026
+ '''The Amazon Resource Name (ARN) of the core network.
42027
+
42028
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-corenetworkarn
42029
+ '''
42030
+ result = self._values.get("core_network_arn")
42031
+ return typing.cast(typing.Optional[builtins.str], result)
42032
+
42033
+ @builtins.property
42034
+ def destination_cidr_block(self) -> typing.Optional[builtins.str]:
42035
+ '''The IPv4 CIDR address block used for the destination match.
42036
+
42037
+ Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18`` , we modify it to ``100.68.0.0/18`` .
42038
+
42039
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationcidrblock
42040
+ '''
42041
+ result = self._values.get("destination_cidr_block")
42042
+ return typing.cast(typing.Optional[builtins.str], result)
42043
+
42044
+ @builtins.property
42045
+ def destination_ipv6_cidr_block(self) -> typing.Optional[builtins.str]:
42046
+ '''The IPv6 CIDR block used for the destination match.
42047
+
42048
+ Routing decisions are based on the most specific match.
42049
+
42050
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationipv6cidrblock
42051
+ '''
42052
+ result = self._values.get("destination_ipv6_cidr_block")
42053
+ return typing.cast(typing.Optional[builtins.str], result)
42054
+
42055
+ @builtins.property
42056
+ def destination_prefix_list_id(self) -> typing.Optional[builtins.str]:
42057
+ '''The ID of a prefix list used for the destination match.
42058
+
42059
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationprefixlistid
42060
+ '''
42061
+ result = self._values.get("destination_prefix_list_id")
42062
+ return typing.cast(typing.Optional[builtins.str], result)
42063
+
42064
+ @builtins.property
42065
+ def egress_only_internet_gateway_id(self) -> typing.Optional[builtins.str]:
42066
+ '''[IPv6 traffic only] The ID of an egress-only internet gateway.
42067
+
42068
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-egressonlyinternetgatewayid
42069
+ '''
42070
+ result = self._values.get("egress_only_internet_gateway_id")
42071
+ return typing.cast(typing.Optional[builtins.str], result)
42072
+
42073
+ @builtins.property
42074
+ def gateway_id(self) -> typing.Optional[builtins.str]:
42075
+ '''The ID of an internet gateway or virtual private gateway attached to your VPC.
42076
+
42077
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-gatewayid
42078
+ '''
42079
+ result = self._values.get("gateway_id")
42080
+ return typing.cast(typing.Optional[builtins.str], result)
42081
+
42082
+ @builtins.property
42083
+ def instance_id(self) -> typing.Optional[builtins.str]:
42084
+ '''The ID of a NAT instance in your VPC.
42085
+
42086
+ The operation fails if you specify an instance ID unless exactly one network interface is attached.
42087
+
42088
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-instanceid
42089
+ '''
42090
+ result = self._values.get("instance_id")
42091
+ return typing.cast(typing.Optional[builtins.str], result)
42092
+
42093
+ @builtins.property
42094
+ def local_gateway_id(self) -> typing.Optional[builtins.str]:
42095
+ '''The ID of the local gateway.
42096
+
42097
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-localgatewayid
42098
+ '''
42099
+ result = self._values.get("local_gateway_id")
42100
+ return typing.cast(typing.Optional[builtins.str], result)
42101
+
42102
+ @builtins.property
42103
+ def nat_gateway_id(self) -> typing.Optional[builtins.str]:
42104
+ '''[IPv4 traffic only] The ID of a NAT gateway.
42105
+
42106
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-natgatewayid
42107
+ '''
42108
+ result = self._values.get("nat_gateway_id")
42109
+ return typing.cast(typing.Optional[builtins.str], result)
42110
+
42111
+ @builtins.property
42112
+ def network_interface_id(self) -> typing.Optional[builtins.str]:
42113
+ '''The ID of a network interface.
42114
+
42115
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-networkinterfaceid
42116
+ '''
42117
+ result = self._values.get("network_interface_id")
42118
+ return typing.cast(typing.Optional[builtins.str], result)
42119
+
42120
+ @builtins.property
42121
+ def transit_gateway_id(self) -> typing.Optional[builtins.str]:
42122
+ '''The ID of a transit gateway.
42123
+
42124
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-transitgatewayid
42125
+ '''
42126
+ result = self._values.get("transit_gateway_id")
42127
+ return typing.cast(typing.Optional[builtins.str], result)
42128
+
42129
+ @builtins.property
42130
+ def vpc_endpoint_id(self) -> typing.Optional[builtins.str]:
42131
+ '''The ID of a VPC endpoint.
42132
+
42133
+ Supported for Gateway Load Balancer endpoints only.
42134
+
42135
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcendpointid
42136
+ '''
42137
+ result = self._values.get("vpc_endpoint_id")
42138
+ return typing.cast(typing.Optional[builtins.str], result)
42139
+
42140
+ @builtins.property
42141
+ def vpc_peering_connection_id(self) -> typing.Optional[builtins.str]:
42142
+ '''The ID of a VPC peering connection.
42143
+
42144
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcpeeringconnectionid
42145
+ '''
42146
+ result = self._values.get("vpc_peering_connection_id")
42147
+ return typing.cast(typing.Optional[builtins.str], result)
42148
+
42149
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
42150
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
42151
+
42152
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
42153
+ return not (rhs == self)
42154
+
42155
+ def __repr__(self) -> str:
42156
+ return "CfnRouteProps(%s)" % ", ".join(
42157
+ k + "=" + repr(v) for k, v in self._values.items()
42158
+ )
42159
+
42160
+
42161
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
42162
+ class CfnRouteServer(
42163
+ _CfnResource_9df397a6,
42164
+ metaclass=jsii.JSIIMeta,
42165
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServer",
42166
+ ):
42167
+ '''Specifies a route server to manage dynamic routing in a VPC.
42168
+
42169
+ Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, VPC Route Server dynamically updates VPC and internet gateway route tables with your preferred routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.
42170
+
42171
+ For more information see `Dynamic routing in your VPC with VPC Route Server <https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html>`_ in the *Amazon VPC User Guide* .
42172
+
42173
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html
42174
+ :cloudformationResource: AWS::EC2::RouteServer
42175
+ :exampleMetadata: fixture=_generated
42176
+
42177
+ Example::
42178
+
42179
+ # The code below shows an example of how to instantiate this type.
42180
+ # The values are placeholders you should change.
42181
+ from aws_cdk import aws_ec2 as ec2
42182
+
42183
+ cfn_route_server = ec2.CfnRouteServer(self, "MyCfnRouteServer",
42184
+ amazon_side_asn=123,
42185
+
42186
+ # the properties below are optional
42187
+ persist_routes="persistRoutes",
42188
+ persist_routes_duration=123,
42189
+ sns_notifications_enabled=False,
42190
+ tags=[CfnTag(
42191
+ key="key",
42192
+ value="value"
42193
+ )]
42194
+ )
42195
+ '''
42196
+
42197
+ def __init__(
42198
+ self,
42199
+ scope: _constructs_77d1e7e8.Construct,
42200
+ id: builtins.str,
42201
+ *,
42202
+ amazon_side_asn: jsii.Number,
42203
+ persist_routes: typing.Optional[builtins.str] = None,
42204
+ persist_routes_duration: typing.Optional[jsii.Number] = None,
42205
+ sns_notifications_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
42206
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
42207
+ ) -> None:
42208
+ '''
42209
+ :param scope: Scope in which this resource is defined.
42210
+ :param id: Construct identifier for this resource (unique in its scope).
42211
+ :param amazon_side_asn: The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
42212
+ :param persist_routes: Indicates whether routes should be persisted after all BGP sessions are terminated.
42213
+ :param persist_routes_duration: The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB. Value must be in the range of 1-5. The default value is 1. Only valid if ``persistRoutesState`` is 'enabled'. If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.
42214
+ :param sns_notifications_enabled: Indicates whether SNS notifications are enabled for the route server. Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by AWS .
42215
+ :param tags: Any tags assigned to the route server.
42216
+ '''
42217
+ if __debug__:
42218
+ type_hints = typing.get_type_hints(_typecheckingstub__e744a2467360e6327da0cb79726e11e01d594dbeec11f2982a422bcb176447d5)
42219
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
42220
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
42221
+ props = CfnRouteServerProps(
42222
+ amazon_side_asn=amazon_side_asn,
42223
+ persist_routes=persist_routes,
42224
+ persist_routes_duration=persist_routes_duration,
42225
+ sns_notifications_enabled=sns_notifications_enabled,
42226
+ tags=tags,
42227
+ )
42228
+
42229
+ jsii.create(self.__class__, self, [scope, id, props])
42230
+
42231
+ @jsii.member(jsii_name="inspect")
42232
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
42233
+ '''Examines the CloudFormation resource and discloses attributes.
42234
+
42235
+ :param inspector: tree inspector to collect and process attributes.
42236
+ '''
42237
+ if __debug__:
42238
+ type_hints = typing.get_type_hints(_typecheckingstub__3d4e9ce25bdead6fc034e09d4bd133ca6d8a9bdb28edabd76818abeb5861c650)
42239
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
42240
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
42241
+
42242
+ @jsii.member(jsii_name="renderProperties")
42243
+ def _render_properties(
42244
+ self,
42245
+ props: typing.Mapping[builtins.str, typing.Any],
42246
+ ) -> typing.Mapping[builtins.str, typing.Any]:
42247
+ '''
42248
+ :param props: -
42249
+ '''
42250
+ if __debug__:
42251
+ type_hints = typing.get_type_hints(_typecheckingstub__e93eb022fd962b1a573488d55ae2a6f533460dcd1478ae568a1ca2cbaec1166c)
42252
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
42253
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
42254
+
42255
+ @jsii.python.classproperty
42256
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
42257
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
42258
+ '''The CloudFormation resource type name for this resource class.'''
42259
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
42260
+
42261
+ @builtins.property
42262
+ @jsii.member(jsii_name="attrArn")
42263
+ def attr_arn(self) -> builtins.str:
42264
+ '''The ARN of the route server.
42265
+
42266
+ :cloudformationAttribute: Arn
42267
+ '''
42268
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
42269
+
42270
+ @builtins.property
42271
+ @jsii.member(jsii_name="attrId")
42272
+ def attr_id(self) -> builtins.str:
42273
+ '''The ID of the route server.
42274
+
42275
+ :cloudformationAttribute: Id
42276
+ '''
42277
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
42278
+
42279
+ @builtins.property
42280
+ @jsii.member(jsii_name="cdkTagManager")
42281
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
42282
+ '''Tag Manager which manages the tags for this resource.'''
42283
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
42284
+
42285
+ @builtins.property
42286
+ @jsii.member(jsii_name="cfnProperties")
42287
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
42288
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
42289
+
42290
+ @builtins.property
42291
+ @jsii.member(jsii_name="amazonSideAsn")
42292
+ def amazon_side_asn(self) -> jsii.Number:
42293
+ '''The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance.'''
42294
+ return typing.cast(jsii.Number, jsii.get(self, "amazonSideAsn"))
42295
+
42296
+ @amazon_side_asn.setter
42297
+ def amazon_side_asn(self, value: jsii.Number) -> None:
42298
+ if __debug__:
42299
+ type_hints = typing.get_type_hints(_typecheckingstub__e13de778bf88a0d2426e3072806feaf234141e06da104df8828fa31858466ede)
42300
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42301
+ jsii.set(self, "amazonSideAsn", value) # pyright: ignore[reportArgumentType]
42302
+
42303
+ @builtins.property
42304
+ @jsii.member(jsii_name="persistRoutes")
42305
+ def persist_routes(self) -> typing.Optional[builtins.str]:
42306
+ '''Indicates whether routes should be persisted after all BGP sessions are terminated.'''
42307
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "persistRoutes"))
42308
+
42309
+ @persist_routes.setter
42310
+ def persist_routes(self, value: typing.Optional[builtins.str]) -> None:
42311
+ if __debug__:
42312
+ type_hints = typing.get_type_hints(_typecheckingstub__4a44997a1e32efb135940b74f2a929e8036d94d6404f4bf5512259c997ca5c9e)
42313
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42314
+ jsii.set(self, "persistRoutes", value) # pyright: ignore[reportArgumentType]
42315
+
42316
+ @builtins.property
42317
+ @jsii.member(jsii_name="persistRoutesDuration")
42318
+ def persist_routes_duration(self) -> typing.Optional[jsii.Number]:
42319
+ '''The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB.'''
42320
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "persistRoutesDuration"))
42321
+
42322
+ @persist_routes_duration.setter
42323
+ def persist_routes_duration(self, value: typing.Optional[jsii.Number]) -> None:
42324
+ if __debug__:
42325
+ type_hints = typing.get_type_hints(_typecheckingstub__b356730d4d3fb48506651734b873006a73e7e68636b664817f9430f6064743e2)
42326
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42327
+ jsii.set(self, "persistRoutesDuration", value) # pyright: ignore[reportArgumentType]
42328
+
42329
+ @builtins.property
42330
+ @jsii.member(jsii_name="snsNotificationsEnabled")
42331
+ def sns_notifications_enabled(
42332
+ self,
42333
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
42334
+ '''Indicates whether SNS notifications are enabled for the route server.'''
42335
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "snsNotificationsEnabled"))
42336
+
42337
+ @sns_notifications_enabled.setter
42338
+ def sns_notifications_enabled(
42339
+ self,
42340
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
42341
+ ) -> None:
42342
+ if __debug__:
42343
+ type_hints = typing.get_type_hints(_typecheckingstub__3fb35650e2c20c86ca3846527e1fbe136cb8034d9a94e7934e14e7c78eddeadb)
42344
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42345
+ jsii.set(self, "snsNotificationsEnabled", value) # pyright: ignore[reportArgumentType]
42346
+
42347
+ @builtins.property
42348
+ @jsii.member(jsii_name="tags")
42349
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
42350
+ '''Any tags assigned to the route server.'''
42351
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
42352
+
42353
+ @tags.setter
42354
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
42355
+ if __debug__:
42356
+ type_hints = typing.get_type_hints(_typecheckingstub__2d586f2ad9d0305ceb1f3ece538490d14e9c96aeb12e951e59be8899a1412ea4)
42357
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42358
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
42359
+
42360
+
42361
+ @jsii.implements(_IInspectable_c2943556)
42362
+ class CfnRouteServerAssociation(
42363
+ _CfnResource_9df397a6,
42364
+ metaclass=jsii.JSIIMeta,
42365
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerAssociation",
42366
+ ):
42367
+ '''Specifies the association between a route server and a VPC.
42368
+
42369
+ A route server association is the connection established between a route server and a VPC.
42370
+
42371
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html
42372
+ :cloudformationResource: AWS::EC2::RouteServerAssociation
42373
+ :exampleMetadata: fixture=_generated
42374
+
42375
+ Example::
42376
+
42377
+ # The code below shows an example of how to instantiate this type.
42378
+ # The values are placeholders you should change.
42379
+ from aws_cdk import aws_ec2 as ec2
42380
+
42381
+ cfn_route_server_association = ec2.CfnRouteServerAssociation(self, "MyCfnRouteServerAssociation",
42382
+ route_server_id="routeServerId",
42383
+ vpc_id="vpcId"
42384
+ )
42385
+ '''
42386
+
42387
+ def __init__(
42388
+ self,
42389
+ scope: _constructs_77d1e7e8.Construct,
42390
+ id: builtins.str,
42391
+ *,
42392
+ route_server_id: builtins.str,
42393
+ vpc_id: builtins.str,
42394
+ ) -> None:
42395
+ '''
42396
+ :param scope: Scope in which this resource is defined.
42397
+ :param id: Construct identifier for this resource (unique in its scope).
42398
+ :param route_server_id: The ID of the associated route server.
42399
+ :param vpc_id: The ID of the associated VPC.
42400
+ '''
42401
+ if __debug__:
42402
+ type_hints = typing.get_type_hints(_typecheckingstub__3e6189f73b644788c8019b72b4d8a2aa6c79c4d018333b9c657eba49644b2680)
42403
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
42404
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
42405
+ props = CfnRouteServerAssociationProps(
42406
+ route_server_id=route_server_id, vpc_id=vpc_id
42407
+ )
42408
+
42409
+ jsii.create(self.__class__, self, [scope, id, props])
42410
+
42411
+ @jsii.member(jsii_name="inspect")
42412
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
42413
+ '''Examines the CloudFormation resource and discloses attributes.
42414
+
42415
+ :param inspector: tree inspector to collect and process attributes.
42416
+ '''
42417
+ if __debug__:
42418
+ type_hints = typing.get_type_hints(_typecheckingstub__6b36f7b91f0c35572aea114010d9abe5eb6819cc14bf7a83fd8eaae89d84c513)
42419
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
42420
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
42421
+
42422
+ @jsii.member(jsii_name="renderProperties")
42423
+ def _render_properties(
42424
+ self,
42425
+ props: typing.Mapping[builtins.str, typing.Any],
42426
+ ) -> typing.Mapping[builtins.str, typing.Any]:
42427
+ '''
42428
+ :param props: -
42429
+ '''
42430
+ if __debug__:
42431
+ type_hints = typing.get_type_hints(_typecheckingstub__2061cfa69aa80401640d0ebfc6ecb03d4710d83371735dfda34e6b1a112f4b61)
42432
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
42433
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
42434
+
42435
+ @jsii.python.classproperty
42436
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
42437
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
42438
+ '''The CloudFormation resource type name for this resource class.'''
42439
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
42440
+
42441
+ @builtins.property
42442
+ @jsii.member(jsii_name="cfnProperties")
42443
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
42444
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
42445
+
42446
+ @builtins.property
42447
+ @jsii.member(jsii_name="routeServerId")
42448
+ def route_server_id(self) -> builtins.str:
42449
+ '''The ID of the associated route server.'''
42450
+ return typing.cast(builtins.str, jsii.get(self, "routeServerId"))
42451
+
42452
+ @route_server_id.setter
42453
+ def route_server_id(self, value: builtins.str) -> None:
42454
+ if __debug__:
42455
+ type_hints = typing.get_type_hints(_typecheckingstub__a30a1dfa1b5b5a2238f1ea3896d581c69df96b4fc842c1511df6b0d0d8bfc0a5)
42456
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42457
+ jsii.set(self, "routeServerId", value) # pyright: ignore[reportArgumentType]
42458
+
42459
+ @builtins.property
42460
+ @jsii.member(jsii_name="vpcId")
42461
+ def vpc_id(self) -> builtins.str:
42462
+ '''The ID of the associated VPC.'''
42463
+ return typing.cast(builtins.str, jsii.get(self, "vpcId"))
42464
+
42465
+ @vpc_id.setter
42466
+ def vpc_id(self, value: builtins.str) -> None:
42467
+ if __debug__:
42468
+ type_hints = typing.get_type_hints(_typecheckingstub__b5c4a6f8b540144e4bab65f284f718719b1d99a890e26010fe631a8f9b8d6c09)
42469
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42470
+ jsii.set(self, "vpcId", value) # pyright: ignore[reportArgumentType]
42471
+
42472
+
42473
+ @jsii.data_type(
42474
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerAssociationProps",
42475
+ jsii_struct_bases=[],
42476
+ name_mapping={"route_server_id": "routeServerId", "vpc_id": "vpcId"},
42477
+ )
42478
+ class CfnRouteServerAssociationProps:
42479
+ def __init__(self, *, route_server_id: builtins.str, vpc_id: builtins.str) -> None:
42480
+ '''Properties for defining a ``CfnRouteServerAssociation``.
42481
+
42482
+ :param route_server_id: The ID of the associated route server.
42483
+ :param vpc_id: The ID of the associated VPC.
42484
+
42485
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html
42486
+ :exampleMetadata: fixture=_generated
42487
+
42488
+ Example::
42489
+
42490
+ # The code below shows an example of how to instantiate this type.
42491
+ # The values are placeholders you should change.
42492
+ from aws_cdk import aws_ec2 as ec2
42493
+
42494
+ cfn_route_server_association_props = ec2.CfnRouteServerAssociationProps(
42495
+ route_server_id="routeServerId",
42496
+ vpc_id="vpcId"
42497
+ )
42498
+ '''
42499
+ if __debug__:
42500
+ type_hints = typing.get_type_hints(_typecheckingstub__486c86fa481692f6a9be14621c56393d4598ea52756029970e390e215a9f4e41)
42501
+ check_type(argname="argument route_server_id", value=route_server_id, expected_type=type_hints["route_server_id"])
42502
+ check_type(argname="argument vpc_id", value=vpc_id, expected_type=type_hints["vpc_id"])
42503
+ self._values: typing.Dict[builtins.str, typing.Any] = {
42504
+ "route_server_id": route_server_id,
42505
+ "vpc_id": vpc_id,
42506
+ }
42507
+
42508
+ @builtins.property
42509
+ def route_server_id(self) -> builtins.str:
42510
+ '''The ID of the associated route server.
42511
+
42512
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html#cfn-ec2-routeserverassociation-routeserverid
42513
+ '''
42514
+ result = self._values.get("route_server_id")
42515
+ assert result is not None, "Required property 'route_server_id' is missing"
42516
+ return typing.cast(builtins.str, result)
42517
+
42518
+ @builtins.property
42519
+ def vpc_id(self) -> builtins.str:
42520
+ '''The ID of the associated VPC.
42521
+
42522
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html#cfn-ec2-routeserverassociation-vpcid
42523
+ '''
42524
+ result = self._values.get("vpc_id")
42525
+ assert result is not None, "Required property 'vpc_id' is missing"
42526
+ return typing.cast(builtins.str, result)
42527
+
42528
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
42529
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
42530
+
42531
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
42532
+ return not (rhs == self)
42533
+
42534
+ def __repr__(self) -> str:
42535
+ return "CfnRouteServerAssociationProps(%s)" % ", ".join(
42536
+ k + "=" + repr(v) for k, v in self._values.items()
42537
+ )
42538
+
42539
+
42540
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
42541
+ class CfnRouteServerEndpoint(
42542
+ _CfnResource_9df397a6,
42543
+ metaclass=jsii.JSIIMeta,
42544
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerEndpoint",
42545
+ ):
42546
+ '''Creates a new endpoint for a route server in a specified subnet.
42547
+
42548
+ A route server endpoint is an AWS -managed component inside a subnet that facilitates `BGP (Border Gateway Protocol) <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Border_Gateway_Protocol>`_ connections between your route server and your BGP peers.
42549
+
42550
+ For more information see `Dynamic routing in your VPC with VPC Route Server <https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html>`_ in the *Amazon VPC User Guide* .
42551
+
42552
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html
42553
+ :cloudformationResource: AWS::EC2::RouteServerEndpoint
42554
+ :exampleMetadata: fixture=_generated
42555
+
42556
+ Example::
42557
+
42558
+ # The code below shows an example of how to instantiate this type.
42559
+ # The values are placeholders you should change.
42560
+ from aws_cdk import aws_ec2 as ec2
42561
+
42562
+ cfn_route_server_endpoint = ec2.CfnRouteServerEndpoint(self, "MyCfnRouteServerEndpoint",
42563
+ route_server_id="routeServerId",
42564
+ subnet_id="subnetId",
42565
+
42566
+ # the properties below are optional
42567
+ tags=[CfnTag(
42568
+ key="key",
42569
+ value="value"
42570
+ )]
42571
+ )
42572
+ '''
42573
+
42574
+ def __init__(
42575
+ self,
42576
+ scope: _constructs_77d1e7e8.Construct,
42577
+ id: builtins.str,
42578
+ *,
42579
+ route_server_id: builtins.str,
42580
+ subnet_id: builtins.str,
42581
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
42582
+ ) -> None:
42583
+ '''
42584
+ :param scope: Scope in which this resource is defined.
42585
+ :param id: Construct identifier for this resource (unique in its scope).
42586
+ :param route_server_id: The ID of the route server associated with this endpoint.
42587
+ :param subnet_id: The ID of the subnet to place the route server endpoint into.
42588
+ :param tags: Any tags assigned to the route server endpoint.
42589
+ '''
42590
+ if __debug__:
42591
+ type_hints = typing.get_type_hints(_typecheckingstub__bc6285d87d5119c3a92dc59ed8148d7d11adb84676a3fb4a32f638fcab96de86)
42592
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
42593
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
42594
+ props = CfnRouteServerEndpointProps(
42595
+ route_server_id=route_server_id, subnet_id=subnet_id, tags=tags
42596
+ )
42597
+
42598
+ jsii.create(self.__class__, self, [scope, id, props])
42599
+
42600
+ @jsii.member(jsii_name="inspect")
42601
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
42602
+ '''Examines the CloudFormation resource and discloses attributes.
42603
+
42604
+ :param inspector: tree inspector to collect and process attributes.
42605
+ '''
42606
+ if __debug__:
42607
+ type_hints = typing.get_type_hints(_typecheckingstub__1646f051eeeb9accd22a953e4c76242751791c83c2230b011e8bf14a01edee0b)
42608
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
42609
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
42610
+
42611
+ @jsii.member(jsii_name="renderProperties")
42612
+ def _render_properties(
42613
+ self,
42614
+ props: typing.Mapping[builtins.str, typing.Any],
42615
+ ) -> typing.Mapping[builtins.str, typing.Any]:
42616
+ '''
42617
+ :param props: -
42618
+ '''
42619
+ if __debug__:
42620
+ type_hints = typing.get_type_hints(_typecheckingstub__bcffaecc222403f9f7f3c1b77c8038cdf2a159c437c841195d90470dfcd48aee)
42621
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
42622
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
42623
+
42624
+ @jsii.python.classproperty
42625
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
42626
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
42627
+ '''The CloudFormation resource type name for this resource class.'''
42628
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
42629
+
42630
+ @builtins.property
42631
+ @jsii.member(jsii_name="attrArn")
42632
+ def attr_arn(self) -> builtins.str:
42633
+ '''The ARN for the endpoint.
42634
+
42635
+ :cloudformationAttribute: Arn
42636
+ '''
42637
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
42638
+
42639
+ @builtins.property
42640
+ @jsii.member(jsii_name="attrEniAddress")
42641
+ def attr_eni_address(self) -> builtins.str:
42642
+ '''The IP address of the Elastic network interface for the endpoint.
42643
+
42644
+ :cloudformationAttribute: EniAddress
42645
+ '''
42646
+ return typing.cast(builtins.str, jsii.get(self, "attrEniAddress"))
42647
+
42648
+ @builtins.property
42649
+ @jsii.member(jsii_name="attrEniId")
42650
+ def attr_eni_id(self) -> builtins.str:
42651
+ '''The ID of the Elastic network interface for the endpoint.
42652
+
42653
+ :cloudformationAttribute: EniId
42654
+ '''
42655
+ return typing.cast(builtins.str, jsii.get(self, "attrEniId"))
42656
+
42657
+ @builtins.property
42658
+ @jsii.member(jsii_name="attrId")
42659
+ def attr_id(self) -> builtins.str:
42660
+ '''The unique identifier of the route server endpoint.
42661
+
42662
+ :cloudformationAttribute: Id
42663
+ '''
42664
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
42665
+
42666
+ @builtins.property
42667
+ @jsii.member(jsii_name="attrVpcId")
42668
+ def attr_vpc_id(self) -> builtins.str:
42669
+ '''The ID of the VPC containing the endpoint.
42670
+
42671
+ :cloudformationAttribute: VpcId
42672
+ '''
42673
+ return typing.cast(builtins.str, jsii.get(self, "attrVpcId"))
42674
+
42675
+ @builtins.property
42676
+ @jsii.member(jsii_name="cdkTagManager")
42677
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
42678
+ '''Tag Manager which manages the tags for this resource.'''
42679
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
42680
+
42681
+ @builtins.property
42682
+ @jsii.member(jsii_name="cfnProperties")
42683
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
42684
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
42685
+
42686
+ @builtins.property
42687
+ @jsii.member(jsii_name="routeServerId")
42688
+ def route_server_id(self) -> builtins.str:
42689
+ '''The ID of the route server associated with this endpoint.'''
42690
+ return typing.cast(builtins.str, jsii.get(self, "routeServerId"))
42691
+
42692
+ @route_server_id.setter
42693
+ def route_server_id(self, value: builtins.str) -> None:
42694
+ if __debug__:
42695
+ type_hints = typing.get_type_hints(_typecheckingstub__d8293a15458c2f707e5aad3c3e7963f25efd74f21e1827293cc0d47398b11f95)
42696
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42697
+ jsii.set(self, "routeServerId", value) # pyright: ignore[reportArgumentType]
42698
+
42699
+ @builtins.property
42700
+ @jsii.member(jsii_name="subnetId")
42701
+ def subnet_id(self) -> builtins.str:
42702
+ '''The ID of the subnet to place the route server endpoint into.'''
42703
+ return typing.cast(builtins.str, jsii.get(self, "subnetId"))
42704
+
42705
+ @subnet_id.setter
42706
+ def subnet_id(self, value: builtins.str) -> None:
42707
+ if __debug__:
42708
+ type_hints = typing.get_type_hints(_typecheckingstub__eac409477ed07195dcf6725a9d25a19057a6b1c5b51f681223f2cab65c4f598a)
42709
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42710
+ jsii.set(self, "subnetId", value) # pyright: ignore[reportArgumentType]
42711
+
42712
+ @builtins.property
42713
+ @jsii.member(jsii_name="tags")
42714
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
42715
+ '''Any tags assigned to the route server endpoint.'''
42716
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
42717
+
42718
+ @tags.setter
42719
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
42720
+ if __debug__:
42721
+ type_hints = typing.get_type_hints(_typecheckingstub__78be2aa7fed6300c7b7b98f999bd9f022dcc25e5d7385d9c47220e274abcbc51)
42722
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
42723
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
42724
+
42725
+
42726
+ @jsii.data_type(
42727
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerEndpointProps",
42728
+ jsii_struct_bases=[],
42729
+ name_mapping={
42730
+ "route_server_id": "routeServerId",
42731
+ "subnet_id": "subnetId",
42732
+ "tags": "tags",
42733
+ },
42734
+ )
42735
+ class CfnRouteServerEndpointProps:
42736
+ def __init__(
42737
+ self,
42738
+ *,
42739
+ route_server_id: builtins.str,
42740
+ subnet_id: builtins.str,
42741
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
42742
+ ) -> None:
42743
+ '''Properties for defining a ``CfnRouteServerEndpoint``.
42744
+
42745
+ :param route_server_id: The ID of the route server associated with this endpoint.
42746
+ :param subnet_id: The ID of the subnet to place the route server endpoint into.
42747
+ :param tags: Any tags assigned to the route server endpoint.
42748
+
42749
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html
42750
+ :exampleMetadata: fixture=_generated
42751
+
42752
+ Example::
42753
+
42754
+ # The code below shows an example of how to instantiate this type.
42755
+ # The values are placeholders you should change.
42756
+ from aws_cdk import aws_ec2 as ec2
42757
+
42758
+ cfn_route_server_endpoint_props = ec2.CfnRouteServerEndpointProps(
42759
+ route_server_id="routeServerId",
42760
+ subnet_id="subnetId",
42761
+
42762
+ # the properties below are optional
42763
+ tags=[CfnTag(
42764
+ key="key",
42765
+ value="value"
42766
+ )]
42767
+ )
42768
+ '''
42769
+ if __debug__:
42770
+ type_hints = typing.get_type_hints(_typecheckingstub__15c8f9c8c8d61903f1fbf4887a562f523716b17fed0a8b0f9948078c468b4e0d)
42771
+ check_type(argname="argument route_server_id", value=route_server_id, expected_type=type_hints["route_server_id"])
42772
+ check_type(argname="argument subnet_id", value=subnet_id, expected_type=type_hints["subnet_id"])
42773
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
42774
+ self._values: typing.Dict[builtins.str, typing.Any] = {
42775
+ "route_server_id": route_server_id,
42776
+ "subnet_id": subnet_id,
42777
+ }
42778
+ if tags is not None:
42779
+ self._values["tags"] = tags
42780
+
42781
+ @builtins.property
42782
+ def route_server_id(self) -> builtins.str:
42783
+ '''The ID of the route server associated with this endpoint.
42784
+
42785
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html#cfn-ec2-routeserverendpoint-routeserverid
42786
+ '''
42787
+ result = self._values.get("route_server_id")
42788
+ assert result is not None, "Required property 'route_server_id' is missing"
42789
+ return typing.cast(builtins.str, result)
42790
+
42791
+ @builtins.property
42792
+ def subnet_id(self) -> builtins.str:
42793
+ '''The ID of the subnet to place the route server endpoint into.
42794
+
42795
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html#cfn-ec2-routeserverendpoint-subnetid
42796
+ '''
42797
+ result = self._values.get("subnet_id")
42798
+ assert result is not None, "Required property 'subnet_id' is missing"
42799
+ return typing.cast(builtins.str, result)
42800
+
42801
+ @builtins.property
42802
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
42803
+ '''Any tags assigned to the route server endpoint.
42804
+
42805
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html#cfn-ec2-routeserverendpoint-tags
42806
+ '''
42807
+ result = self._values.get("tags")
42808
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
42809
+
42810
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
42811
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
42812
+
42813
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
42814
+ return not (rhs == self)
42815
+
42816
+ def __repr__(self) -> str:
42817
+ return "CfnRouteServerEndpointProps(%s)" % ", ".join(
42818
+ k + "=" + repr(v) for k, v in self._values.items()
42819
+ )
42820
+
42821
+
42822
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
42823
+ class CfnRouteServerPeer(
42824
+ _CfnResource_9df397a6,
42825
+ metaclass=jsii.JSIIMeta,
42826
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerPeer",
42827
+ ):
42828
+ '''Specifies a BGP peer configuration for a route server endpoint.
42829
+
42830
+ A route server peer is a session between a route server endpoint and the device deployed in AWS (such as a firewall appliance or other network security function running on an EC2 instance).
42831
+
42832
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html
42833
+ :cloudformationResource: AWS::EC2::RouteServerPeer
42834
+ :exampleMetadata: fixture=_generated
42835
+
42836
+ Example::
42837
+
42838
+ # The code below shows an example of how to instantiate this type.
42839
+ # The values are placeholders you should change.
42840
+ from aws_cdk import aws_ec2 as ec2
42841
+
42842
+ cfn_route_server_peer = ec2.CfnRouteServerPeer(self, "MyCfnRouteServerPeer",
42843
+ bgp_options=ec2.CfnRouteServerPeer.BgpOptionsProperty(
42844
+ peer_asn=123,
42845
+ peer_liveness_detection="peerLivenessDetection"
42846
+ ),
42847
+ peer_address="peerAddress",
42848
+ route_server_endpoint_id="routeServerEndpointId",
42849
+
42850
+ # the properties below are optional
42851
+ tags=[CfnTag(
42852
+ key="key",
42853
+ value="value"
42854
+ )]
42855
+ )
42856
+ '''
42857
+
42858
+ def __init__(
42859
+ self,
42860
+ scope: _constructs_77d1e7e8.Construct,
42861
+ id: builtins.str,
42862
+ *,
42863
+ bgp_options: typing.Union[_IResolvable_da3f097b, typing.Union["CfnRouteServerPeer.BgpOptionsProperty", typing.Dict[builtins.str, typing.Any]]],
42864
+ peer_address: builtins.str,
42865
+ route_server_endpoint_id: builtins.str,
42866
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
42867
+ ) -> None:
42868
+ '''
42869
+ :param scope: Scope in which this resource is defined.
42870
+ :param id: Construct identifier for this resource (unique in its scope).
42871
+ :param bgp_options: The BGP configuration options for this peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.
42872
+ :param peer_address: The IPv4 address of the peer device.
42873
+ :param route_server_endpoint_id: The ID of the route server endpoint associated with this peer.
42874
+ :param tags: Any tags assigned to the route server peer.
42875
+ '''
42876
+ if __debug__:
42877
+ type_hints = typing.get_type_hints(_typecheckingstub__1a1790ead48cbfa3b30bad1ac0c338d415fa3cdaeb20762a23ab6b7030c2266d)
42878
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
42879
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
42880
+ props = CfnRouteServerPeerProps(
42881
+ bgp_options=bgp_options,
42882
+ peer_address=peer_address,
42883
+ route_server_endpoint_id=route_server_endpoint_id,
42884
+ tags=tags,
42885
+ )
42886
+
42887
+ jsii.create(self.__class__, self, [scope, id, props])
42888
+
42889
+ @jsii.member(jsii_name="inspect")
42890
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
42891
+ '''Examines the CloudFormation resource and discloses attributes.
42892
+
42893
+ :param inspector: tree inspector to collect and process attributes.
42894
+ '''
42895
+ if __debug__:
42896
+ type_hints = typing.get_type_hints(_typecheckingstub__f16ce6f04d507826742aed952b4ee08df1a7f5e094ef81a6b1ff59953ab6d033)
42897
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
42898
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
42899
+
42900
+ @jsii.member(jsii_name="renderProperties")
42901
+ def _render_properties(
42902
+ self,
42903
+ props: typing.Mapping[builtins.str, typing.Any],
42904
+ ) -> typing.Mapping[builtins.str, typing.Any]:
42905
+ '''
42906
+ :param props: -
42907
+ '''
42908
+ if __debug__:
42909
+ type_hints = typing.get_type_hints(_typecheckingstub__324e991216c37d43fa3e580d243adc940b2ffe28390731ba008a2993c1eeaf46)
42910
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
42911
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
42912
+
42913
+ @jsii.python.classproperty
42914
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
42915
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
42916
+ '''The CloudFormation resource type name for this resource class.'''
42917
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
42918
+
42919
+ @builtins.property
42920
+ @jsii.member(jsii_name="attrArn")
42921
+ def attr_arn(self) -> builtins.str:
42922
+ '''The ARN of the route server peer.
42923
+
42924
+ :cloudformationAttribute: Arn
42925
+ '''
42926
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
42927
+
42928
+ @builtins.property
42929
+ @jsii.member(jsii_name="attrEndpointEniAddress")
42930
+ def attr_endpoint_eni_address(self) -> builtins.str:
42931
+ '''The IP address of the Elastic network interface for the route server endpoint.
42932
+
42933
+ :cloudformationAttribute: EndpointEniAddress
42934
+ '''
42935
+ return typing.cast(builtins.str, jsii.get(self, "attrEndpointEniAddress"))
42936
+
42937
+ @builtins.property
42938
+ @jsii.member(jsii_name="attrEndpointEniId")
42939
+ def attr_endpoint_eni_id(self) -> builtins.str:
42940
+ '''The ID of the Elastic network interface for the route server endpoint.
42941
+
42942
+ :cloudformationAttribute: EndpointEniId
42943
+ '''
42944
+ return typing.cast(builtins.str, jsii.get(self, "attrEndpointEniId"))
42945
+
42946
+ @builtins.property
42947
+ @jsii.member(jsii_name="attrId")
42948
+ def attr_id(self) -> builtins.str:
42949
+ '''The ID of the route server peer.
42950
+
42951
+ :cloudformationAttribute: Id
42952
+ '''
42953
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
42954
+
42955
+ @builtins.property
42956
+ @jsii.member(jsii_name="attrRouteServerId")
42957
+ def attr_route_server_id(self) -> builtins.str:
42958
+ '''The ID of the route server associated with this peer.
42959
+
42960
+ :cloudformationAttribute: RouteServerId
42961
+ '''
42962
+ return typing.cast(builtins.str, jsii.get(self, "attrRouteServerId"))
42963
+
42964
+ @builtins.property
42965
+ @jsii.member(jsii_name="attrSubnetId")
42966
+ def attr_subnet_id(self) -> builtins.str:
42967
+ '''The ID of the subnet containing the route server peer.
42968
+
42969
+ :cloudformationAttribute: SubnetId
42970
+ '''
42971
+ return typing.cast(builtins.str, jsii.get(self, "attrSubnetId"))
42972
+
42973
+ @builtins.property
42974
+ @jsii.member(jsii_name="attrVpcId")
42975
+ def attr_vpc_id(self) -> builtins.str:
42976
+ '''The ID of the VPC containing the route server peer.
42977
+
42978
+ :cloudformationAttribute: VpcId
42979
+ '''
42980
+ return typing.cast(builtins.str, jsii.get(self, "attrVpcId"))
42981
+
42982
+ @builtins.property
42983
+ @jsii.member(jsii_name="cdkTagManager")
42984
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
42985
+ '''Tag Manager which manages the tags for this resource.'''
42986
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
42987
+
42988
+ @builtins.property
42989
+ @jsii.member(jsii_name="cfnProperties")
42990
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
42991
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
42992
+
42993
+ @builtins.property
42994
+ @jsii.member(jsii_name="bgpOptions")
42995
+ def bgp_options(
42996
+ self,
42997
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnRouteServerPeer.BgpOptionsProperty"]:
42998
+ '''The BGP configuration options for this peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.'''
42999
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnRouteServerPeer.BgpOptionsProperty"], jsii.get(self, "bgpOptions"))
43000
+
43001
+ @bgp_options.setter
43002
+ def bgp_options(
43003
+ self,
43004
+ value: typing.Union[_IResolvable_da3f097b, "CfnRouteServerPeer.BgpOptionsProperty"],
43005
+ ) -> None:
43006
+ if __debug__:
43007
+ type_hints = typing.get_type_hints(_typecheckingstub__14edeb8cd14c52bec2920709e09f35b87f1095d4eeb9788f5ace78bf28861ba3)
43008
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
43009
+ jsii.set(self, "bgpOptions", value) # pyright: ignore[reportArgumentType]
43010
+
43011
+ @builtins.property
43012
+ @jsii.member(jsii_name="peerAddress")
43013
+ def peer_address(self) -> builtins.str:
43014
+ '''The IPv4 address of the peer device.'''
43015
+ return typing.cast(builtins.str, jsii.get(self, "peerAddress"))
43016
+
43017
+ @peer_address.setter
43018
+ def peer_address(self, value: builtins.str) -> None:
43019
+ if __debug__:
43020
+ type_hints = typing.get_type_hints(_typecheckingstub__963224c073f81d69053b59f68248587a5cf06a83a818d216b7f2539be11c5eac)
43021
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
43022
+ jsii.set(self, "peerAddress", value) # pyright: ignore[reportArgumentType]
43023
+
43024
+ @builtins.property
43025
+ @jsii.member(jsii_name="routeServerEndpointId")
43026
+ def route_server_endpoint_id(self) -> builtins.str:
43027
+ '''The ID of the route server endpoint associated with this peer.'''
43028
+ return typing.cast(builtins.str, jsii.get(self, "routeServerEndpointId"))
43029
+
43030
+ @route_server_endpoint_id.setter
43031
+ def route_server_endpoint_id(self, value: builtins.str) -> None:
43032
+ if __debug__:
43033
+ type_hints = typing.get_type_hints(_typecheckingstub__db34b963306745d8d939b30678b68f972ef95f5f538d76ceb677355955f800be)
43034
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
43035
+ jsii.set(self, "routeServerEndpointId", value) # pyright: ignore[reportArgumentType]
43036
+
43037
+ @builtins.property
43038
+ @jsii.member(jsii_name="tags")
43039
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
43040
+ '''Any tags assigned to the route server peer.'''
43041
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
43042
+
43043
+ @tags.setter
43044
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
43045
+ if __debug__:
43046
+ type_hints = typing.get_type_hints(_typecheckingstub__405a1707b0a270b215856d8cb1642bed0f93815e2b9a8382ed83b8f481a652c5)
43047
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
43048
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
43049
+
43050
+ @jsii.data_type(
43051
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerPeer.BgpOptionsProperty",
43052
+ jsii_struct_bases=[],
43053
+ name_mapping={
43054
+ "peer_asn": "peerAsn",
43055
+ "peer_liveness_detection": "peerLivenessDetection",
43056
+ },
43057
+ )
43058
+ class BgpOptionsProperty:
43059
+ def __init__(
43060
+ self,
43061
+ *,
43062
+ peer_asn: typing.Optional[jsii.Number] = None,
43063
+ peer_liveness_detection: typing.Optional[builtins.str] = None,
43064
+ ) -> None:
43065
+ '''The BGP configuration options for this peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.
43066
+
43067
+ :param peer_asn: The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
43068
+ :param peer_liveness_detection: The liveness detection protocol used for the BGP peer. The requested liveness detection protocol for the BGP peer. - ``bgp-keepalive`` : The standard BGP keep alive mechanism ( `RFC4271 <https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc4271#page-21>`_ ) that is stable but may take longer to fail-over in cases of network impact or router failure. - ``bfd`` : An additional Bidirectional Forwarding Detection (BFD) protocol ( `RFC5880 <https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc5880>`_ ) that enables fast failover by using more sensitive liveness detection. Defaults to ``bgp-keepalive`` .
43069
+
43070
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-routeserverpeer-bgpoptions.html
43071
+ :exampleMetadata: fixture=_generated
43072
+
43073
+ Example::
43074
+
43075
+ # The code below shows an example of how to instantiate this type.
43076
+ # The values are placeholders you should change.
43077
+ from aws_cdk import aws_ec2 as ec2
43078
+
43079
+ bgp_options_property = ec2.CfnRouteServerPeer.BgpOptionsProperty(
43080
+ peer_asn=123,
43081
+ peer_liveness_detection="peerLivenessDetection"
43082
+ )
43083
+ '''
43084
+ if __debug__:
43085
+ type_hints = typing.get_type_hints(_typecheckingstub__d3762043f4004483da78ddbfb131e0b34dfcfe25c8154498f0b6c91bfe10ef28)
43086
+ check_type(argname="argument peer_asn", value=peer_asn, expected_type=type_hints["peer_asn"])
43087
+ check_type(argname="argument peer_liveness_detection", value=peer_liveness_detection, expected_type=type_hints["peer_liveness_detection"])
43088
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
43089
+ if peer_asn is not None:
43090
+ self._values["peer_asn"] = peer_asn
43091
+ if peer_liveness_detection is not None:
43092
+ self._values["peer_liveness_detection"] = peer_liveness_detection
43093
+
43094
+ @builtins.property
43095
+ def peer_asn(self) -> typing.Optional[jsii.Number]:
43096
+ '''The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance.
43097
+
43098
+ Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
43099
+
43100
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-routeserverpeer-bgpoptions.html#cfn-ec2-routeserverpeer-bgpoptions-peerasn
43101
+ '''
43102
+ result = self._values.get("peer_asn")
43103
+ return typing.cast(typing.Optional[jsii.Number], result)
43104
+
43105
+ @builtins.property
43106
+ def peer_liveness_detection(self) -> typing.Optional[builtins.str]:
43107
+ '''The liveness detection protocol used for the BGP peer.
43108
+
43109
+ The requested liveness detection protocol for the BGP peer.
43110
+
43111
+ - ``bgp-keepalive`` : The standard BGP keep alive mechanism ( `RFC4271 <https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc4271#page-21>`_ ) that is stable but may take longer to fail-over in cases of network impact or router failure.
43112
+ - ``bfd`` : An additional Bidirectional Forwarding Detection (BFD) protocol ( `RFC5880 <https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc5880>`_ ) that enables fast failover by using more sensitive liveness detection.
43113
+
43114
+ Defaults to ``bgp-keepalive`` .
43115
+
43116
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-routeserverpeer-bgpoptions.html#cfn-ec2-routeserverpeer-bgpoptions-peerlivenessdetection
43117
+ '''
43118
+ result = self._values.get("peer_liveness_detection")
43119
+ return typing.cast(typing.Optional[builtins.str], result)
43120
+
43121
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
43122
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
43123
+
43124
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
43125
+ return not (rhs == self)
43126
+
43127
+ def __repr__(self) -> str:
43128
+ return "BgpOptionsProperty(%s)" % ", ".join(
43129
+ k + "=" + repr(v) for k, v in self._values.items()
43130
+ )
43131
+
43132
+
43133
+ @jsii.data_type(
43134
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerPeerProps",
43135
+ jsii_struct_bases=[],
43136
+ name_mapping={
43137
+ "bgp_options": "bgpOptions",
43138
+ "peer_address": "peerAddress",
43139
+ "route_server_endpoint_id": "routeServerEndpointId",
43140
+ "tags": "tags",
43141
+ },
43142
+ )
43143
+ class CfnRouteServerPeerProps:
43144
+ def __init__(
43145
+ self,
43146
+ *,
43147
+ bgp_options: typing.Union[_IResolvable_da3f097b, typing.Union[CfnRouteServerPeer.BgpOptionsProperty, typing.Dict[builtins.str, typing.Any]]],
43148
+ peer_address: builtins.str,
43149
+ route_server_endpoint_id: builtins.str,
43150
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
43151
+ ) -> None:
43152
+ '''Properties for defining a ``CfnRouteServerPeer``.
43153
+
43154
+ :param bgp_options: The BGP configuration options for this peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.
43155
+ :param peer_address: The IPv4 address of the peer device.
43156
+ :param route_server_endpoint_id: The ID of the route server endpoint associated with this peer.
43157
+ :param tags: Any tags assigned to the route server peer.
43158
+
43159
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html
43160
+ :exampleMetadata: fixture=_generated
43161
+
43162
+ Example::
43163
+
43164
+ # The code below shows an example of how to instantiate this type.
43165
+ # The values are placeholders you should change.
43166
+ from aws_cdk import aws_ec2 as ec2
43167
+
43168
+ cfn_route_server_peer_props = ec2.CfnRouteServerPeerProps(
43169
+ bgp_options=ec2.CfnRouteServerPeer.BgpOptionsProperty(
43170
+ peer_asn=123,
43171
+ peer_liveness_detection="peerLivenessDetection"
43172
+ ),
43173
+ peer_address="peerAddress",
43174
+ route_server_endpoint_id="routeServerEndpointId",
43175
+
43176
+ # the properties below are optional
43177
+ tags=[CfnTag(
43178
+ key="key",
43179
+ value="value"
43180
+ )]
43181
+ )
43182
+ '''
43183
+ if __debug__:
43184
+ type_hints = typing.get_type_hints(_typecheckingstub__41ecfe37cb908f7a1db9eac7ef3a64c49c0ee3fdade6d6c294d52f6341d911e3)
43185
+ check_type(argname="argument bgp_options", value=bgp_options, expected_type=type_hints["bgp_options"])
43186
+ check_type(argname="argument peer_address", value=peer_address, expected_type=type_hints["peer_address"])
43187
+ check_type(argname="argument route_server_endpoint_id", value=route_server_endpoint_id, expected_type=type_hints["route_server_endpoint_id"])
43188
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
43189
+ self._values: typing.Dict[builtins.str, typing.Any] = {
43190
+ "bgp_options": bgp_options,
43191
+ "peer_address": peer_address,
43192
+ "route_server_endpoint_id": route_server_endpoint_id,
43193
+ }
43194
+ if tags is not None:
43195
+ self._values["tags"] = tags
43196
+
43197
+ @builtins.property
43198
+ def bgp_options(
43199
+ self,
43200
+ ) -> typing.Union[_IResolvable_da3f097b, CfnRouteServerPeer.BgpOptionsProperty]:
43201
+ '''The BGP configuration options for this peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.
43202
+
43203
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html#cfn-ec2-routeserverpeer-bgpoptions
43204
+ '''
43205
+ result = self._values.get("bgp_options")
43206
+ assert result is not None, "Required property 'bgp_options' is missing"
43207
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnRouteServerPeer.BgpOptionsProperty], result)
43208
+
43209
+ @builtins.property
43210
+ def peer_address(self) -> builtins.str:
43211
+ '''The IPv4 address of the peer device.
43212
+
43213
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html#cfn-ec2-routeserverpeer-peeraddress
43214
+ '''
43215
+ result = self._values.get("peer_address")
43216
+ assert result is not None, "Required property 'peer_address' is missing"
43217
+ return typing.cast(builtins.str, result)
43218
+
43219
+ @builtins.property
43220
+ def route_server_endpoint_id(self) -> builtins.str:
43221
+ '''The ID of the route server endpoint associated with this peer.
43222
+
43223
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html#cfn-ec2-routeserverpeer-routeserverendpointid
43224
+ '''
43225
+ result = self._values.get("route_server_endpoint_id")
43226
+ assert result is not None, "Required property 'route_server_endpoint_id' is missing"
43227
+ return typing.cast(builtins.str, result)
43228
+
43229
+ @builtins.property
43230
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
43231
+ '''Any tags assigned to the route server peer.
43232
+
43233
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html#cfn-ec2-routeserverpeer-tags
43234
+ '''
43235
+ result = self._values.get("tags")
43236
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
43237
+
43238
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
43239
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
43240
+
43241
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
43242
+ return not (rhs == self)
43243
+
43244
+ def __repr__(self) -> str:
43245
+ return "CfnRouteServerPeerProps(%s)" % ", ".join(
43246
+ k + "=" + repr(v) for k, v in self._values.items()
43247
+ )
43248
+
43249
+
43250
+ @jsii.implements(_IInspectable_c2943556)
43251
+ class CfnRouteServerPropagation(
43252
+ _CfnResource_9df397a6,
43253
+ metaclass=jsii.JSIIMeta,
43254
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerPropagation",
43255
+ ):
43256
+ '''Specifies route propagation from a route server to a route table.
43257
+
43258
+ For more information see `Dynamic routing in your VPC with VPC Route Server <https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html>`_ in the *Amazon VPC User Guide* .
43259
+
43260
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html
43261
+ :cloudformationResource: AWS::EC2::RouteServerPropagation
43262
+ :exampleMetadata: fixture=_generated
43263
+
43264
+ Example::
43265
+
43266
+ # The code below shows an example of how to instantiate this type.
43267
+ # The values are placeholders you should change.
43268
+ from aws_cdk import aws_ec2 as ec2
43269
+
43270
+ cfn_route_server_propagation = ec2.CfnRouteServerPropagation(self, "MyCfnRouteServerPropagation",
43271
+ route_server_id="routeServerId",
43272
+ route_table_id="routeTableId"
43273
+ )
43274
+ '''
43275
+
43276
+ def __init__(
43277
+ self,
43278
+ scope: _constructs_77d1e7e8.Construct,
43279
+ id: builtins.str,
43280
+ *,
43281
+ route_server_id: builtins.str,
43282
+ route_table_id: builtins.str,
43283
+ ) -> None:
43284
+ '''
43285
+ :param scope: Scope in which this resource is defined.
43286
+ :param id: Construct identifier for this resource (unique in its scope).
43287
+ :param route_server_id: The ID of the route server configured for route propagation.
43288
+ :param route_table_id: The ID of the route table configured for route server propagation.
43289
+ '''
43290
+ if __debug__:
43291
+ type_hints = typing.get_type_hints(_typecheckingstub__0d139e896cf279d926dd7b03bd4605d62bf6e6d336cab83c19f03f115f11332f)
43292
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
43293
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
43294
+ props = CfnRouteServerPropagationProps(
43295
+ route_server_id=route_server_id, route_table_id=route_table_id
43296
+ )
43297
+
43298
+ jsii.create(self.__class__, self, [scope, id, props])
43299
+
43300
+ @jsii.member(jsii_name="inspect")
43301
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
43302
+ '''Examines the CloudFormation resource and discloses attributes.
43303
+
43304
+ :param inspector: tree inspector to collect and process attributes.
43305
+ '''
43306
+ if __debug__:
43307
+ type_hints = typing.get_type_hints(_typecheckingstub__dcdd387ffc37afa195a7e25d5c44536188638f43cf7f40cca0453fa46b860ce5)
43308
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
43309
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
43310
+
43311
+ @jsii.member(jsii_name="renderProperties")
43312
+ def _render_properties(
43313
+ self,
43314
+ props: typing.Mapping[builtins.str, typing.Any],
43315
+ ) -> typing.Mapping[builtins.str, typing.Any]:
43316
+ '''
43317
+ :param props: -
43318
+ '''
43319
+ if __debug__:
43320
+ type_hints = typing.get_type_hints(_typecheckingstub__2dbcf0d472b0cc21729046719e317f1e14c0110825faf1f017c05e237f61aeba)
43321
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
43322
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
43323
+
43324
+ @jsii.python.classproperty
43325
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
43326
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
43327
+ '''The CloudFormation resource type name for this resource class.'''
43328
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
43329
+
43330
+ @builtins.property
43331
+ @jsii.member(jsii_name="cfnProperties")
43332
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
43333
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
43334
+
43335
+ @builtins.property
43336
+ @jsii.member(jsii_name="routeServerId")
43337
+ def route_server_id(self) -> builtins.str:
43338
+ '''The ID of the route server configured for route propagation.'''
43339
+ return typing.cast(builtins.str, jsii.get(self, "routeServerId"))
41665
43340
 
41666
- @vpc_endpoint_id.setter
41667
- def vpc_endpoint_id(self, value: typing.Optional[builtins.str]) -> None:
43341
+ @route_server_id.setter
43342
+ def route_server_id(self, value: builtins.str) -> None:
41668
43343
  if __debug__:
41669
- type_hints = typing.get_type_hints(_typecheckingstub__9b3588c8e5a495d9ab8a2699ed72f7253e15605bba594e43b65e5892bcbf1ca0)
43344
+ type_hints = typing.get_type_hints(_typecheckingstub__a1d3bdf36fee55ea70a83f37033fadc68a67310d7a4f2d403cb0ad237e57c622)
41670
43345
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
41671
- jsii.set(self, "vpcEndpointId", value) # pyright: ignore[reportArgumentType]
43346
+ jsii.set(self, "routeServerId", value) # pyright: ignore[reportArgumentType]
41672
43347
 
41673
43348
  @builtins.property
41674
- @jsii.member(jsii_name="vpcPeeringConnectionId")
41675
- def vpc_peering_connection_id(self) -> typing.Optional[builtins.str]:
41676
- '''The ID of a VPC peering connection.'''
41677
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "vpcPeeringConnectionId"))
43349
+ @jsii.member(jsii_name="routeTableId")
43350
+ def route_table_id(self) -> builtins.str:
43351
+ '''The ID of the route table configured for route server propagation.'''
43352
+ return typing.cast(builtins.str, jsii.get(self, "routeTableId"))
41678
43353
 
41679
- @vpc_peering_connection_id.setter
41680
- def vpc_peering_connection_id(self, value: typing.Optional[builtins.str]) -> None:
43354
+ @route_table_id.setter
43355
+ def route_table_id(self, value: builtins.str) -> None:
41681
43356
  if __debug__:
41682
- type_hints = typing.get_type_hints(_typecheckingstub__46892d5dd1581aee0dcf6410687f88cfaffdfdd18c726880534edc8f86e9919a)
43357
+ type_hints = typing.get_type_hints(_typecheckingstub__7fc992ffac821b5511c01446ca80e457d3120cdf8e1bbe982c1dcd5b3bf2a9e0)
41683
43358
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
41684
- jsii.set(self, "vpcPeeringConnectionId", value) # pyright: ignore[reportArgumentType]
43359
+ jsii.set(self, "routeTableId", value) # pyright: ignore[reportArgumentType]
41685
43360
 
41686
43361
 
41687
43362
  @jsii.data_type(
41688
- jsii_type="aws-cdk-lib.aws_ec2.CfnRouteProps",
43363
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerPropagationProps",
41689
43364
  jsii_struct_bases=[],
41690
43365
  name_mapping={
43366
+ "route_server_id": "routeServerId",
41691
43367
  "route_table_id": "routeTableId",
41692
- "carrier_gateway_id": "carrierGatewayId",
41693
- "core_network_arn": "coreNetworkArn",
41694
- "destination_cidr_block": "destinationCidrBlock",
41695
- "destination_ipv6_cidr_block": "destinationIpv6CidrBlock",
41696
- "destination_prefix_list_id": "destinationPrefixListId",
41697
- "egress_only_internet_gateway_id": "egressOnlyInternetGatewayId",
41698
- "gateway_id": "gatewayId",
41699
- "instance_id": "instanceId",
41700
- "local_gateway_id": "localGatewayId",
41701
- "nat_gateway_id": "natGatewayId",
41702
- "network_interface_id": "networkInterfaceId",
41703
- "transit_gateway_id": "transitGatewayId",
41704
- "vpc_endpoint_id": "vpcEndpointId",
41705
- "vpc_peering_connection_id": "vpcPeeringConnectionId",
41706
43368
  },
41707
43369
  )
41708
- class CfnRouteProps:
43370
+ class CfnRouteServerPropagationProps:
41709
43371
  def __init__(
41710
43372
  self,
41711
43373
  *,
43374
+ route_server_id: builtins.str,
41712
43375
  route_table_id: builtins.str,
41713
- carrier_gateway_id: typing.Optional[builtins.str] = None,
41714
- core_network_arn: typing.Optional[builtins.str] = None,
41715
- destination_cidr_block: typing.Optional[builtins.str] = None,
41716
- destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
41717
- destination_prefix_list_id: typing.Optional[builtins.str] = None,
41718
- egress_only_internet_gateway_id: typing.Optional[builtins.str] = None,
41719
- gateway_id: typing.Optional[builtins.str] = None,
41720
- instance_id: typing.Optional[builtins.str] = None,
41721
- local_gateway_id: typing.Optional[builtins.str] = None,
41722
- nat_gateway_id: typing.Optional[builtins.str] = None,
41723
- network_interface_id: typing.Optional[builtins.str] = None,
41724
- transit_gateway_id: typing.Optional[builtins.str] = None,
41725
- vpc_endpoint_id: typing.Optional[builtins.str] = None,
41726
- vpc_peering_connection_id: typing.Optional[builtins.str] = None,
41727
43376
  ) -> None:
41728
- '''Properties for defining a ``CfnRoute``.
43377
+ '''Properties for defining a ``CfnRouteServerPropagation``.
41729
43378
 
41730
- :param route_table_id: The ID of the route table for the route.
41731
- :param carrier_gateway_id: The ID of the carrier gateway. You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.
41732
- :param core_network_arn: The Amazon Resource Name (ARN) of the core network.
41733
- :param destination_cidr_block: The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18`` , we modify it to ``100.68.0.0/18`` .
41734
- :param destination_ipv6_cidr_block: The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.
41735
- :param destination_prefix_list_id: The ID of a prefix list used for the destination match.
41736
- :param egress_only_internet_gateway_id: [IPv6 traffic only] The ID of an egress-only internet gateway.
41737
- :param gateway_id: The ID of an internet gateway or virtual private gateway attached to your VPC.
41738
- :param instance_id: The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.
41739
- :param local_gateway_id: The ID of the local gateway.
41740
- :param nat_gateway_id: [IPv4 traffic only] The ID of a NAT gateway.
41741
- :param network_interface_id: The ID of a network interface.
41742
- :param transit_gateway_id: The ID of a transit gateway.
41743
- :param vpc_endpoint_id: The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.
41744
- :param vpc_peering_connection_id: The ID of a VPC peering connection.
43379
+ :param route_server_id: The ID of the route server configured for route propagation.
43380
+ :param route_table_id: The ID of the route table configured for route server propagation.
41745
43381
 
41746
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html
43382
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html
41747
43383
  :exampleMetadata: fixture=_generated
41748
43384
 
41749
43385
  Example::
@@ -41752,220 +43388,177 @@ class CfnRouteProps:
41752
43388
  # The values are placeholders you should change.
41753
43389
  from aws_cdk import aws_ec2 as ec2
41754
43390
 
41755
- cfn_route_props = ec2.CfnRouteProps(
41756
- route_table_id="routeTableId",
41757
-
41758
- # the properties below are optional
41759
- carrier_gateway_id="carrierGatewayId",
41760
- core_network_arn="coreNetworkArn",
41761
- destination_cidr_block="destinationCidrBlock",
41762
- destination_ipv6_cidr_block="destinationIpv6CidrBlock",
41763
- destination_prefix_list_id="destinationPrefixListId",
41764
- egress_only_internet_gateway_id="egressOnlyInternetGatewayId",
41765
- gateway_id="gatewayId",
41766
- instance_id="instanceId",
41767
- local_gateway_id="localGatewayId",
41768
- nat_gateway_id="natGatewayId",
41769
- network_interface_id="networkInterfaceId",
41770
- transit_gateway_id="transitGatewayId",
41771
- vpc_endpoint_id="vpcEndpointId",
41772
- vpc_peering_connection_id="vpcPeeringConnectionId"
43391
+ cfn_route_server_propagation_props = ec2.CfnRouteServerPropagationProps(
43392
+ route_server_id="routeServerId",
43393
+ route_table_id="routeTableId"
41773
43394
  )
41774
43395
  '''
41775
43396
  if __debug__:
41776
- type_hints = typing.get_type_hints(_typecheckingstub__f90e7814d59b7c562ab4b24d54461eba6a4c88fbd5451ba2b2b0adf8441a452e)
43397
+ type_hints = typing.get_type_hints(_typecheckingstub__4f93feed063aa24e3ccac40eb1b470367c4be09679255ec2cc2d4589ffd2f3b0)
43398
+ check_type(argname="argument route_server_id", value=route_server_id, expected_type=type_hints["route_server_id"])
41777
43399
  check_type(argname="argument route_table_id", value=route_table_id, expected_type=type_hints["route_table_id"])
41778
- check_type(argname="argument carrier_gateway_id", value=carrier_gateway_id, expected_type=type_hints["carrier_gateway_id"])
41779
- check_type(argname="argument core_network_arn", value=core_network_arn, expected_type=type_hints["core_network_arn"])
41780
- check_type(argname="argument destination_cidr_block", value=destination_cidr_block, expected_type=type_hints["destination_cidr_block"])
41781
- check_type(argname="argument destination_ipv6_cidr_block", value=destination_ipv6_cidr_block, expected_type=type_hints["destination_ipv6_cidr_block"])
41782
- check_type(argname="argument destination_prefix_list_id", value=destination_prefix_list_id, expected_type=type_hints["destination_prefix_list_id"])
41783
- check_type(argname="argument egress_only_internet_gateway_id", value=egress_only_internet_gateway_id, expected_type=type_hints["egress_only_internet_gateway_id"])
41784
- check_type(argname="argument gateway_id", value=gateway_id, expected_type=type_hints["gateway_id"])
41785
- check_type(argname="argument instance_id", value=instance_id, expected_type=type_hints["instance_id"])
41786
- check_type(argname="argument local_gateway_id", value=local_gateway_id, expected_type=type_hints["local_gateway_id"])
41787
- check_type(argname="argument nat_gateway_id", value=nat_gateway_id, expected_type=type_hints["nat_gateway_id"])
41788
- check_type(argname="argument network_interface_id", value=network_interface_id, expected_type=type_hints["network_interface_id"])
41789
- check_type(argname="argument transit_gateway_id", value=transit_gateway_id, expected_type=type_hints["transit_gateway_id"])
41790
- check_type(argname="argument vpc_endpoint_id", value=vpc_endpoint_id, expected_type=type_hints["vpc_endpoint_id"])
41791
- check_type(argname="argument vpc_peering_connection_id", value=vpc_peering_connection_id, expected_type=type_hints["vpc_peering_connection_id"])
41792
43400
  self._values: typing.Dict[builtins.str, typing.Any] = {
43401
+ "route_server_id": route_server_id,
41793
43402
  "route_table_id": route_table_id,
41794
43403
  }
41795
- if carrier_gateway_id is not None:
41796
- self._values["carrier_gateway_id"] = carrier_gateway_id
41797
- if core_network_arn is not None:
41798
- self._values["core_network_arn"] = core_network_arn
41799
- if destination_cidr_block is not None:
41800
- self._values["destination_cidr_block"] = destination_cidr_block
41801
- if destination_ipv6_cidr_block is not None:
41802
- self._values["destination_ipv6_cidr_block"] = destination_ipv6_cidr_block
41803
- if destination_prefix_list_id is not None:
41804
- self._values["destination_prefix_list_id"] = destination_prefix_list_id
41805
- if egress_only_internet_gateway_id is not None:
41806
- self._values["egress_only_internet_gateway_id"] = egress_only_internet_gateway_id
41807
- if gateway_id is not None:
41808
- self._values["gateway_id"] = gateway_id
41809
- if instance_id is not None:
41810
- self._values["instance_id"] = instance_id
41811
- if local_gateway_id is not None:
41812
- self._values["local_gateway_id"] = local_gateway_id
41813
- if nat_gateway_id is not None:
41814
- self._values["nat_gateway_id"] = nat_gateway_id
41815
- if network_interface_id is not None:
41816
- self._values["network_interface_id"] = network_interface_id
41817
- if transit_gateway_id is not None:
41818
- self._values["transit_gateway_id"] = transit_gateway_id
41819
- if vpc_endpoint_id is not None:
41820
- self._values["vpc_endpoint_id"] = vpc_endpoint_id
41821
- if vpc_peering_connection_id is not None:
41822
- self._values["vpc_peering_connection_id"] = vpc_peering_connection_id
41823
43404
 
41824
43405
  @builtins.property
41825
- def route_table_id(self) -> builtins.str:
41826
- '''The ID of the route table for the route.
43406
+ def route_server_id(self) -> builtins.str:
43407
+ '''The ID of the route server configured for route propagation.
41827
43408
 
41828
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-routetableid
43409
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html#cfn-ec2-routeserverpropagation-routeserverid
41829
43410
  '''
41830
- result = self._values.get("route_table_id")
41831
- assert result is not None, "Required property 'route_table_id' is missing"
43411
+ result = self._values.get("route_server_id")
43412
+ assert result is not None, "Required property 'route_server_id' is missing"
41832
43413
  return typing.cast(builtins.str, result)
41833
43414
 
41834
43415
  @builtins.property
41835
- def carrier_gateway_id(self) -> typing.Optional[builtins.str]:
41836
- '''The ID of the carrier gateway.
41837
-
41838
- You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.
41839
-
41840
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-carriergatewayid
41841
- '''
41842
- result = self._values.get("carrier_gateway_id")
41843
- return typing.cast(typing.Optional[builtins.str], result)
41844
-
41845
- @builtins.property
41846
- def core_network_arn(self) -> typing.Optional[builtins.str]:
41847
- '''The Amazon Resource Name (ARN) of the core network.
41848
-
41849
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-corenetworkarn
41850
- '''
41851
- result = self._values.get("core_network_arn")
41852
- return typing.cast(typing.Optional[builtins.str], result)
41853
-
41854
- @builtins.property
41855
- def destination_cidr_block(self) -> typing.Optional[builtins.str]:
41856
- '''The IPv4 CIDR address block used for the destination match.
41857
-
41858
- Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18`` , we modify it to ``100.68.0.0/18`` .
43416
+ def route_table_id(self) -> builtins.str:
43417
+ '''The ID of the route table configured for route server propagation.
41859
43418
 
41860
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationcidrblock
43419
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html#cfn-ec2-routeserverpropagation-routetableid
41861
43420
  '''
41862
- result = self._values.get("destination_cidr_block")
41863
- return typing.cast(typing.Optional[builtins.str], result)
43421
+ result = self._values.get("route_table_id")
43422
+ assert result is not None, "Required property 'route_table_id' is missing"
43423
+ return typing.cast(builtins.str, result)
41864
43424
 
41865
- @builtins.property
41866
- def destination_ipv6_cidr_block(self) -> typing.Optional[builtins.str]:
41867
- '''The IPv6 CIDR block used for the destination match.
43425
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
43426
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
41868
43427
 
41869
- Routing decisions are based on the most specific match.
43428
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
43429
+ return not (rhs == self)
41870
43430
 
41871
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationipv6cidrblock
41872
- '''
41873
- result = self._values.get("destination_ipv6_cidr_block")
41874
- return typing.cast(typing.Optional[builtins.str], result)
43431
+ def __repr__(self) -> str:
43432
+ return "CfnRouteServerPropagationProps(%s)" % ", ".join(
43433
+ k + "=" + repr(v) for k, v in self._values.items()
43434
+ )
41875
43435
 
41876
- @builtins.property
41877
- def destination_prefix_list_id(self) -> typing.Optional[builtins.str]:
41878
- '''The ID of a prefix list used for the destination match.
41879
43436
 
41880
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationprefixlistid
41881
- '''
41882
- result = self._values.get("destination_prefix_list_id")
41883
- return typing.cast(typing.Optional[builtins.str], result)
43437
+ @jsii.data_type(
43438
+ jsii_type="aws-cdk-lib.aws_ec2.CfnRouteServerProps",
43439
+ jsii_struct_bases=[],
43440
+ name_mapping={
43441
+ "amazon_side_asn": "amazonSideAsn",
43442
+ "persist_routes": "persistRoutes",
43443
+ "persist_routes_duration": "persistRoutesDuration",
43444
+ "sns_notifications_enabled": "snsNotificationsEnabled",
43445
+ "tags": "tags",
43446
+ },
43447
+ )
43448
+ class CfnRouteServerProps:
43449
+ def __init__(
43450
+ self,
43451
+ *,
43452
+ amazon_side_asn: jsii.Number,
43453
+ persist_routes: typing.Optional[builtins.str] = None,
43454
+ persist_routes_duration: typing.Optional[jsii.Number] = None,
43455
+ sns_notifications_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
43456
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
43457
+ ) -> None:
43458
+ '''Properties for defining a ``CfnRouteServer``.
41884
43459
 
41885
- @builtins.property
41886
- def egress_only_internet_gateway_id(self) -> typing.Optional[builtins.str]:
41887
- '''[IPv6 traffic only] The ID of an egress-only internet gateway.
43460
+ :param amazon_side_asn: The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
43461
+ :param persist_routes: Indicates whether routes should be persisted after all BGP sessions are terminated.
43462
+ :param persist_routes_duration: The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB. Value must be in the range of 1-5. The default value is 1. Only valid if ``persistRoutesState`` is 'enabled'. If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.
43463
+ :param sns_notifications_enabled: Indicates whether SNS notifications are enabled for the route server. Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by AWS .
43464
+ :param tags: Any tags assigned to the route server.
41888
43465
 
41889
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-egressonlyinternetgatewayid
41890
- '''
41891
- result = self._values.get("egress_only_internet_gateway_id")
41892
- return typing.cast(typing.Optional[builtins.str], result)
43466
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html
43467
+ :exampleMetadata: fixture=_generated
41893
43468
 
41894
- @builtins.property
41895
- def gateway_id(self) -> typing.Optional[builtins.str]:
41896
- '''The ID of an internet gateway or virtual private gateway attached to your VPC.
43469
+ Example::
41897
43470
 
41898
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-gatewayid
43471
+ # The code below shows an example of how to instantiate this type.
43472
+ # The values are placeholders you should change.
43473
+ from aws_cdk import aws_ec2 as ec2
43474
+
43475
+ cfn_route_server_props = ec2.CfnRouteServerProps(
43476
+ amazon_side_asn=123,
43477
+
43478
+ # the properties below are optional
43479
+ persist_routes="persistRoutes",
43480
+ persist_routes_duration=123,
43481
+ sns_notifications_enabled=False,
43482
+ tags=[CfnTag(
43483
+ key="key",
43484
+ value="value"
43485
+ )]
43486
+ )
41899
43487
  '''
41900
- result = self._values.get("gateway_id")
41901
- return typing.cast(typing.Optional[builtins.str], result)
43488
+ if __debug__:
43489
+ type_hints = typing.get_type_hints(_typecheckingstub__db9a1c3babbc82d0464e4dc5d03d23f14024cadfb4a9c0aa32f743c5968b354c)
43490
+ check_type(argname="argument amazon_side_asn", value=amazon_side_asn, expected_type=type_hints["amazon_side_asn"])
43491
+ check_type(argname="argument persist_routes", value=persist_routes, expected_type=type_hints["persist_routes"])
43492
+ check_type(argname="argument persist_routes_duration", value=persist_routes_duration, expected_type=type_hints["persist_routes_duration"])
43493
+ check_type(argname="argument sns_notifications_enabled", value=sns_notifications_enabled, expected_type=type_hints["sns_notifications_enabled"])
43494
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
43495
+ self._values: typing.Dict[builtins.str, typing.Any] = {
43496
+ "amazon_side_asn": amazon_side_asn,
43497
+ }
43498
+ if persist_routes is not None:
43499
+ self._values["persist_routes"] = persist_routes
43500
+ if persist_routes_duration is not None:
43501
+ self._values["persist_routes_duration"] = persist_routes_duration
43502
+ if sns_notifications_enabled is not None:
43503
+ self._values["sns_notifications_enabled"] = sns_notifications_enabled
43504
+ if tags is not None:
43505
+ self._values["tags"] = tags
41902
43506
 
41903
43507
  @builtins.property
41904
- def instance_id(self) -> typing.Optional[builtins.str]:
41905
- '''The ID of a NAT instance in your VPC.
41906
-
41907
- The operation fails if you specify an instance ID unless exactly one network interface is attached.
41908
-
41909
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-instanceid
41910
- '''
41911
- result = self._values.get("instance_id")
41912
- return typing.cast(typing.Optional[builtins.str], result)
43508
+ def amazon_side_asn(self) -> jsii.Number:
43509
+ '''The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance.
41913
43510
 
41914
- @builtins.property
41915
- def local_gateway_id(self) -> typing.Optional[builtins.str]:
41916
- '''The ID of the local gateway.
43511
+ Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
41917
43512
 
41918
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-localgatewayid
43513
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html#cfn-ec2-routeserver-amazonsideasn
41919
43514
  '''
41920
- result = self._values.get("local_gateway_id")
41921
- return typing.cast(typing.Optional[builtins.str], result)
43515
+ result = self._values.get("amazon_side_asn")
43516
+ assert result is not None, "Required property 'amazon_side_asn' is missing"
43517
+ return typing.cast(jsii.Number, result)
41922
43518
 
41923
43519
  @builtins.property
41924
- def nat_gateway_id(self) -> typing.Optional[builtins.str]:
41925
- '''[IPv4 traffic only] The ID of a NAT gateway.
43520
+ def persist_routes(self) -> typing.Optional[builtins.str]:
43521
+ '''Indicates whether routes should be persisted after all BGP sessions are terminated.
41926
43522
 
41927
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-natgatewayid
43523
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html#cfn-ec2-routeserver-persistroutes
41928
43524
  '''
41929
- result = self._values.get("nat_gateway_id")
43525
+ result = self._values.get("persist_routes")
41930
43526
  return typing.cast(typing.Optional[builtins.str], result)
41931
43527
 
41932
43528
  @builtins.property
41933
- def network_interface_id(self) -> typing.Optional[builtins.str]:
41934
- '''The ID of a network interface.
43529
+ def persist_routes_duration(self) -> typing.Optional[jsii.Number]:
43530
+ '''The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB.
41935
43531
 
41936
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-networkinterfaceid
41937
- '''
41938
- result = self._values.get("network_interface_id")
41939
- return typing.cast(typing.Optional[builtins.str], result)
43532
+ Value must be in the range of 1-5. The default value is 1. Only valid if ``persistRoutesState`` is 'enabled'.
41940
43533
 
41941
- @builtins.property
41942
- def transit_gateway_id(self) -> typing.Optional[builtins.str]:
41943
- '''The ID of a transit gateway.
43534
+ If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.
41944
43535
 
41945
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-transitgatewayid
43536
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html#cfn-ec2-routeserver-persistroutesduration
41946
43537
  '''
41947
- result = self._values.get("transit_gateway_id")
41948
- return typing.cast(typing.Optional[builtins.str], result)
43538
+ result = self._values.get("persist_routes_duration")
43539
+ return typing.cast(typing.Optional[jsii.Number], result)
41949
43540
 
41950
43541
  @builtins.property
41951
- def vpc_endpoint_id(self) -> typing.Optional[builtins.str]:
41952
- '''The ID of a VPC endpoint.
43542
+ def sns_notifications_enabled(
43543
+ self,
43544
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
43545
+ '''Indicates whether SNS notifications are enabled for the route server.
41953
43546
 
41954
- Supported for Gateway Load Balancer endpoints only.
43547
+ Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by AWS .
41955
43548
 
41956
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcendpointid
43549
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html#cfn-ec2-routeserver-snsnotificationsenabled
41957
43550
  '''
41958
- result = self._values.get("vpc_endpoint_id")
41959
- return typing.cast(typing.Optional[builtins.str], result)
43551
+ result = self._values.get("sns_notifications_enabled")
43552
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
41960
43553
 
41961
43554
  @builtins.property
41962
- def vpc_peering_connection_id(self) -> typing.Optional[builtins.str]:
41963
- '''The ID of a VPC peering connection.
43555
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
43556
+ '''Any tags assigned to the route server.
41964
43557
 
41965
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcpeeringconnectionid
43558
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html#cfn-ec2-routeserver-tags
41966
43559
  '''
41967
- result = self._values.get("vpc_peering_connection_id")
41968
- return typing.cast(typing.Optional[builtins.str], result)
43560
+ result = self._values.get("tags")
43561
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
41969
43562
 
41970
43563
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
41971
43564
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -41974,7 +43567,7 @@ class CfnRouteProps:
41974
43567
  return not (rhs == self)
41975
43568
 
41976
43569
  def __repr__(self) -> str:
41977
- return "CfnRouteProps(%s)" % ", ".join(
43570
+ return "CfnRouteServerProps(%s)" % ", ".join(
41978
43571
  k + "=" + repr(v) for k, v in self._values.items()
41979
43572
  )
41980
43573
 
@@ -42200,6 +43793,8 @@ class CfnSecurityGroup(
42200
43793
 
42201
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.
42202
43795
 
43796
+ 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
+
42203
43798
  This type supports updates. For more information about updating stacks, see `AWS CloudFormation Stacks Updates <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html>`_ .
42204
43799
  .. epigraph::
42205
43800
 
@@ -42271,8 +43866,8 @@ class CfnSecurityGroup(
42271
43866
  :param id: Construct identifier for this resource (unique in its scope).
42272
43867
  :param group_description: A description for the security group. Constraints: Up to 255 characters in length Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*
42273
43868
  :param group_name: The name of the security group. Names are case-insensitive and must be unique within the VPC. Constraints: Up to 255 characters in length. Can't start with ``sg-`` . Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*
42274
- :param security_group_egress: The outbound rules associated with the security group. There is a short interruption during which you cannot connect to the security group.
42275
- :param security_group_ingress: The inbound rules associated with the security group. There is a short interruption during which you cannot connect to the security group.
43869
+ :param security_group_egress: The outbound rules associated with the security group.
43870
+ :param security_group_ingress: The inbound rules associated with the security group.
42276
43871
  :param tags: Any tags assigned to the security group.
42277
43872
  :param vpc_id: The ID of the VPC for the security group. If you do not specify a VPC, the default is to use the default VPC for the Region. If there's no specified VPC and no default VPC, security group creation fails.
42278
43873
  '''
@@ -43956,8 +45551,8 @@ class CfnSecurityGroupProps:
43956
45551
 
43957
45552
  :param group_description: A description for the security group. Constraints: Up to 255 characters in length Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*
43958
45553
  :param group_name: The name of the security group. Names are case-insensitive and must be unique within the VPC. Constraints: Up to 255 characters in length. Can't start with ``sg-`` . Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*
43959
- :param security_group_egress: The outbound rules associated with the security group. There is a short interruption during which you cannot connect to the security group.
43960
- :param security_group_ingress: The inbound rules associated with the security group. There is a short interruption during which you cannot connect to the security group.
45554
+ :param security_group_egress: The outbound rules associated with the security group.
45555
+ :param security_group_ingress: The inbound rules associated with the security group.
43961
45556
  :param tags: Any tags assigned to the security group.
43962
45557
  :param vpc_id: The ID of the VPC for the security group. If you do not specify a VPC, the default is to use the default VPC for the Region. If there's no specified VPC and no default VPC, security group creation fails.
43963
45558
 
@@ -44063,8 +45658,6 @@ class CfnSecurityGroupProps:
44063
45658
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnSecurityGroup.EgressProperty]]]]:
44064
45659
  '''The outbound rules associated with the security group.
44065
45660
 
44066
- There is a short interruption during which you cannot connect to the security group.
44067
-
44068
45661
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html#cfn-ec2-securitygroup-securitygroupegress
44069
45662
  '''
44070
45663
  result = self._values.get("security_group_egress")
@@ -44076,8 +45669,6 @@ class CfnSecurityGroupProps:
44076
45669
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnSecurityGroup.IngressProperty]]]]:
44077
45670
  '''The inbound rules associated with the security group.
44078
45671
 
44079
- There is a short interruption during which you cannot connect to the security group.
44080
-
44081
45672
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html#cfn-ec2-securitygroup-securitygroupingress
44082
45673
  '''
44083
45674
  result = self._values.get("security_group_ingress")
@@ -80558,6 +82149,16 @@ class InterfaceVpcEndpointAwsService(
80558
82149
  def MACIE(cls) -> "InterfaceVpcEndpointAwsService":
80559
82150
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "MACIE"))
80560
82151
 
82152
+ @jsii.python.classproperty
82153
+ @jsii.member(jsii_name="MAILMANAGER")
82154
+ def MAILMANAGER(cls) -> "InterfaceVpcEndpointAwsService":
82155
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "MAILMANAGER"))
82156
+
82157
+ @jsii.python.classproperty
82158
+ @jsii.member(jsii_name="MAILMANAGER_FIPS")
82159
+ def MAILMANAGER_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
82160
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "MAILMANAGER_FIPS"))
82161
+
80561
82162
  @jsii.python.classproperty
80562
82163
  @jsii.member(jsii_name="MAINFRAME_MODERNIZATION")
80563
82164
  def MAINFRAME_MODERNIZATION(cls) -> "InterfaceVpcEndpointAwsService":
@@ -100617,6 +102218,16 @@ __all__ = [
100617
102218
  "CfnPrefixListProps",
100618
102219
  "CfnRoute",
100619
102220
  "CfnRouteProps",
102221
+ "CfnRouteServer",
102222
+ "CfnRouteServerAssociation",
102223
+ "CfnRouteServerAssociationProps",
102224
+ "CfnRouteServerEndpoint",
102225
+ "CfnRouteServerEndpointProps",
102226
+ "CfnRouteServerPeer",
102227
+ "CfnRouteServerPeerProps",
102228
+ "CfnRouteServerPropagation",
102229
+ "CfnRouteServerPropagationProps",
102230
+ "CfnRouteServerProps",
100620
102231
  "CfnRouteTable",
100621
102232
  "CfnRouteTableProps",
100622
102233
  "CfnSecurityGroup",
@@ -103867,6 +105478,21 @@ def _typecheckingstub__9b0fb3dd7e11b3d77e5e684588da3e531072d536c01a1f2f8089cb89f
103867
105478
  """Type checking stubs"""
103868
105479
  pass
103869
105480
 
105481
+ def _typecheckingstub__cb5cfa1ad0a955752d0fe5cf1fa975e214907046a3adab82f42c2cb294897482(
105482
+ *,
105483
+ ena_srd_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
105484
+ ena_srd_udp_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.EnaSrdUdpSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
105485
+ ) -> None:
105486
+ """Type checking stubs"""
105487
+ pass
105488
+
105489
+ def _typecheckingstub__2ca233cf2c335cfa3da294e921b5541acd4aaf5e78b3618e6108270995e3e826(
105490
+ *,
105491
+ ena_srd_udp_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
105492
+ ) -> None:
105493
+ """Type checking stubs"""
105494
+ pass
105495
+
103870
105496
  def _typecheckingstub__a5c9ea6a0fe6571a95aa17f5c0b6f90e2695fa23c1a38965ff092c2938757847(
103871
105497
  *,
103872
105498
  enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
@@ -103911,6 +105537,7 @@ def _typecheckingstub__34d8c3e0456d2764eb1c3d4b68e63d75d3e51811fe46a5cc1a3cd7a84
103911
105537
  associate_public_ip_address: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
103912
105538
  delete_on_termination: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
103913
105539
  description: typing.Optional[builtins.str] = None,
105540
+ ena_srd_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.EnaSrdSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
103914
105541
  group_set: typing.Optional[typing.Sequence[builtins.str]] = None,
103915
105542
  ipv6_address_count: typing.Optional[jsii.Number] = None,
103916
105543
  ipv6_addresses: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.InstanceIpv6AddressProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -106305,6 +107932,272 @@ def _typecheckingstub__f90e7814d59b7c562ab4b24d54461eba6a4c88fbd5451ba2b2b0adf84
106305
107932
  """Type checking stubs"""
106306
107933
  pass
106307
107934
 
107935
+ def _typecheckingstub__e744a2467360e6327da0cb79726e11e01d594dbeec11f2982a422bcb176447d5(
107936
+ scope: _constructs_77d1e7e8.Construct,
107937
+ id: builtins.str,
107938
+ *,
107939
+ amazon_side_asn: jsii.Number,
107940
+ persist_routes: typing.Optional[builtins.str] = None,
107941
+ persist_routes_duration: typing.Optional[jsii.Number] = None,
107942
+ sns_notifications_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
107943
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
107944
+ ) -> None:
107945
+ """Type checking stubs"""
107946
+ pass
107947
+
107948
+ def _typecheckingstub__3d4e9ce25bdead6fc034e09d4bd133ca6d8a9bdb28edabd76818abeb5861c650(
107949
+ inspector: _TreeInspector_488e0dd5,
107950
+ ) -> None:
107951
+ """Type checking stubs"""
107952
+ pass
107953
+
107954
+ def _typecheckingstub__e93eb022fd962b1a573488d55ae2a6f533460dcd1478ae568a1ca2cbaec1166c(
107955
+ props: typing.Mapping[builtins.str, typing.Any],
107956
+ ) -> None:
107957
+ """Type checking stubs"""
107958
+ pass
107959
+
107960
+ def _typecheckingstub__e13de778bf88a0d2426e3072806feaf234141e06da104df8828fa31858466ede(
107961
+ value: jsii.Number,
107962
+ ) -> None:
107963
+ """Type checking stubs"""
107964
+ pass
107965
+
107966
+ def _typecheckingstub__4a44997a1e32efb135940b74f2a929e8036d94d6404f4bf5512259c997ca5c9e(
107967
+ value: typing.Optional[builtins.str],
107968
+ ) -> None:
107969
+ """Type checking stubs"""
107970
+ pass
107971
+
107972
+ def _typecheckingstub__b356730d4d3fb48506651734b873006a73e7e68636b664817f9430f6064743e2(
107973
+ value: typing.Optional[jsii.Number],
107974
+ ) -> None:
107975
+ """Type checking stubs"""
107976
+ pass
107977
+
107978
+ def _typecheckingstub__3fb35650e2c20c86ca3846527e1fbe136cb8034d9a94e7934e14e7c78eddeadb(
107979
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
107980
+ ) -> None:
107981
+ """Type checking stubs"""
107982
+ pass
107983
+
107984
+ def _typecheckingstub__2d586f2ad9d0305ceb1f3ece538490d14e9c96aeb12e951e59be8899a1412ea4(
107985
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
107986
+ ) -> None:
107987
+ """Type checking stubs"""
107988
+ pass
107989
+
107990
+ def _typecheckingstub__3e6189f73b644788c8019b72b4d8a2aa6c79c4d018333b9c657eba49644b2680(
107991
+ scope: _constructs_77d1e7e8.Construct,
107992
+ id: builtins.str,
107993
+ *,
107994
+ route_server_id: builtins.str,
107995
+ vpc_id: builtins.str,
107996
+ ) -> None:
107997
+ """Type checking stubs"""
107998
+ pass
107999
+
108000
+ def _typecheckingstub__6b36f7b91f0c35572aea114010d9abe5eb6819cc14bf7a83fd8eaae89d84c513(
108001
+ inspector: _TreeInspector_488e0dd5,
108002
+ ) -> None:
108003
+ """Type checking stubs"""
108004
+ pass
108005
+
108006
+ def _typecheckingstub__2061cfa69aa80401640d0ebfc6ecb03d4710d83371735dfda34e6b1a112f4b61(
108007
+ props: typing.Mapping[builtins.str, typing.Any],
108008
+ ) -> None:
108009
+ """Type checking stubs"""
108010
+ pass
108011
+
108012
+ def _typecheckingstub__a30a1dfa1b5b5a2238f1ea3896d581c69df96b4fc842c1511df6b0d0d8bfc0a5(
108013
+ value: builtins.str,
108014
+ ) -> None:
108015
+ """Type checking stubs"""
108016
+ pass
108017
+
108018
+ def _typecheckingstub__b5c4a6f8b540144e4bab65f284f718719b1d99a890e26010fe631a8f9b8d6c09(
108019
+ value: builtins.str,
108020
+ ) -> None:
108021
+ """Type checking stubs"""
108022
+ pass
108023
+
108024
+ def _typecheckingstub__486c86fa481692f6a9be14621c56393d4598ea52756029970e390e215a9f4e41(
108025
+ *,
108026
+ route_server_id: builtins.str,
108027
+ vpc_id: builtins.str,
108028
+ ) -> None:
108029
+ """Type checking stubs"""
108030
+ pass
108031
+
108032
+ def _typecheckingstub__bc6285d87d5119c3a92dc59ed8148d7d11adb84676a3fb4a32f638fcab96de86(
108033
+ scope: _constructs_77d1e7e8.Construct,
108034
+ id: builtins.str,
108035
+ *,
108036
+ route_server_id: builtins.str,
108037
+ subnet_id: builtins.str,
108038
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
108039
+ ) -> None:
108040
+ """Type checking stubs"""
108041
+ pass
108042
+
108043
+ def _typecheckingstub__1646f051eeeb9accd22a953e4c76242751791c83c2230b011e8bf14a01edee0b(
108044
+ inspector: _TreeInspector_488e0dd5,
108045
+ ) -> None:
108046
+ """Type checking stubs"""
108047
+ pass
108048
+
108049
+ def _typecheckingstub__bcffaecc222403f9f7f3c1b77c8038cdf2a159c437c841195d90470dfcd48aee(
108050
+ props: typing.Mapping[builtins.str, typing.Any],
108051
+ ) -> None:
108052
+ """Type checking stubs"""
108053
+ pass
108054
+
108055
+ def _typecheckingstub__d8293a15458c2f707e5aad3c3e7963f25efd74f21e1827293cc0d47398b11f95(
108056
+ value: builtins.str,
108057
+ ) -> None:
108058
+ """Type checking stubs"""
108059
+ pass
108060
+
108061
+ def _typecheckingstub__eac409477ed07195dcf6725a9d25a19057a6b1c5b51f681223f2cab65c4f598a(
108062
+ value: builtins.str,
108063
+ ) -> None:
108064
+ """Type checking stubs"""
108065
+ pass
108066
+
108067
+ def _typecheckingstub__78be2aa7fed6300c7b7b98f999bd9f022dcc25e5d7385d9c47220e274abcbc51(
108068
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
108069
+ ) -> None:
108070
+ """Type checking stubs"""
108071
+ pass
108072
+
108073
+ def _typecheckingstub__15c8f9c8c8d61903f1fbf4887a562f523716b17fed0a8b0f9948078c468b4e0d(
108074
+ *,
108075
+ route_server_id: builtins.str,
108076
+ subnet_id: builtins.str,
108077
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
108078
+ ) -> None:
108079
+ """Type checking stubs"""
108080
+ pass
108081
+
108082
+ def _typecheckingstub__1a1790ead48cbfa3b30bad1ac0c338d415fa3cdaeb20762a23ab6b7030c2266d(
108083
+ scope: _constructs_77d1e7e8.Construct,
108084
+ id: builtins.str,
108085
+ *,
108086
+ bgp_options: typing.Union[_IResolvable_da3f097b, typing.Union[CfnRouteServerPeer.BgpOptionsProperty, typing.Dict[builtins.str, typing.Any]]],
108087
+ peer_address: builtins.str,
108088
+ route_server_endpoint_id: builtins.str,
108089
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
108090
+ ) -> None:
108091
+ """Type checking stubs"""
108092
+ pass
108093
+
108094
+ def _typecheckingstub__f16ce6f04d507826742aed952b4ee08df1a7f5e094ef81a6b1ff59953ab6d033(
108095
+ inspector: _TreeInspector_488e0dd5,
108096
+ ) -> None:
108097
+ """Type checking stubs"""
108098
+ pass
108099
+
108100
+ def _typecheckingstub__324e991216c37d43fa3e580d243adc940b2ffe28390731ba008a2993c1eeaf46(
108101
+ props: typing.Mapping[builtins.str, typing.Any],
108102
+ ) -> None:
108103
+ """Type checking stubs"""
108104
+ pass
108105
+
108106
+ def _typecheckingstub__14edeb8cd14c52bec2920709e09f35b87f1095d4eeb9788f5ace78bf28861ba3(
108107
+ value: typing.Union[_IResolvable_da3f097b, CfnRouteServerPeer.BgpOptionsProperty],
108108
+ ) -> None:
108109
+ """Type checking stubs"""
108110
+ pass
108111
+
108112
+ def _typecheckingstub__963224c073f81d69053b59f68248587a5cf06a83a818d216b7f2539be11c5eac(
108113
+ value: builtins.str,
108114
+ ) -> None:
108115
+ """Type checking stubs"""
108116
+ pass
108117
+
108118
+ def _typecheckingstub__db34b963306745d8d939b30678b68f972ef95f5f538d76ceb677355955f800be(
108119
+ value: builtins.str,
108120
+ ) -> None:
108121
+ """Type checking stubs"""
108122
+ pass
108123
+
108124
+ def _typecheckingstub__405a1707b0a270b215856d8cb1642bed0f93815e2b9a8382ed83b8f481a652c5(
108125
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
108126
+ ) -> None:
108127
+ """Type checking stubs"""
108128
+ pass
108129
+
108130
+ def _typecheckingstub__d3762043f4004483da78ddbfb131e0b34dfcfe25c8154498f0b6c91bfe10ef28(
108131
+ *,
108132
+ peer_asn: typing.Optional[jsii.Number] = None,
108133
+ peer_liveness_detection: typing.Optional[builtins.str] = None,
108134
+ ) -> None:
108135
+ """Type checking stubs"""
108136
+ pass
108137
+
108138
+ def _typecheckingstub__41ecfe37cb908f7a1db9eac7ef3a64c49c0ee3fdade6d6c294d52f6341d911e3(
108139
+ *,
108140
+ bgp_options: typing.Union[_IResolvable_da3f097b, typing.Union[CfnRouteServerPeer.BgpOptionsProperty, typing.Dict[builtins.str, typing.Any]]],
108141
+ peer_address: builtins.str,
108142
+ route_server_endpoint_id: builtins.str,
108143
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
108144
+ ) -> None:
108145
+ """Type checking stubs"""
108146
+ pass
108147
+
108148
+ def _typecheckingstub__0d139e896cf279d926dd7b03bd4605d62bf6e6d336cab83c19f03f115f11332f(
108149
+ scope: _constructs_77d1e7e8.Construct,
108150
+ id: builtins.str,
108151
+ *,
108152
+ route_server_id: builtins.str,
108153
+ route_table_id: builtins.str,
108154
+ ) -> None:
108155
+ """Type checking stubs"""
108156
+ pass
108157
+
108158
+ def _typecheckingstub__dcdd387ffc37afa195a7e25d5c44536188638f43cf7f40cca0453fa46b860ce5(
108159
+ inspector: _TreeInspector_488e0dd5,
108160
+ ) -> None:
108161
+ """Type checking stubs"""
108162
+ pass
108163
+
108164
+ def _typecheckingstub__2dbcf0d472b0cc21729046719e317f1e14c0110825faf1f017c05e237f61aeba(
108165
+ props: typing.Mapping[builtins.str, typing.Any],
108166
+ ) -> None:
108167
+ """Type checking stubs"""
108168
+ pass
108169
+
108170
+ def _typecheckingstub__a1d3bdf36fee55ea70a83f37033fadc68a67310d7a4f2d403cb0ad237e57c622(
108171
+ value: builtins.str,
108172
+ ) -> None:
108173
+ """Type checking stubs"""
108174
+ pass
108175
+
108176
+ def _typecheckingstub__7fc992ffac821b5511c01446ca80e457d3120cdf8e1bbe982c1dcd5b3bf2a9e0(
108177
+ value: builtins.str,
108178
+ ) -> None:
108179
+ """Type checking stubs"""
108180
+ pass
108181
+
108182
+ def _typecheckingstub__4f93feed063aa24e3ccac40eb1b470367c4be09679255ec2cc2d4589ffd2f3b0(
108183
+ *,
108184
+ route_server_id: builtins.str,
108185
+ route_table_id: builtins.str,
108186
+ ) -> None:
108187
+ """Type checking stubs"""
108188
+ pass
108189
+
108190
+ def _typecheckingstub__db9a1c3babbc82d0464e4dc5d03d23f14024cadfb4a9c0aa32f743c5968b354c(
108191
+ *,
108192
+ amazon_side_asn: jsii.Number,
108193
+ persist_routes: typing.Optional[builtins.str] = None,
108194
+ persist_routes_duration: typing.Optional[jsii.Number] = None,
108195
+ sns_notifications_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
108196
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
108197
+ ) -> None:
108198
+ """Type checking stubs"""
108199
+ pass
108200
+
106308
108201
  def _typecheckingstub__93a1e7c740b947cc510161b87d4afa4b057e501067ea1f7ef24fdb6a8ab5614c(
106309
108202
  scope: _constructs_77d1e7e8.Construct,
106310
108203
  id: builtins.str,