aws-cdk-lib 2.215.0__py3-none-any.whl → 2.217.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 (64) hide show
  1. aws_cdk/__init__.py +90 -58
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.215.0.jsii.tgz → aws-cdk-lib@2.217.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +1 -1
  5. aws_cdk/aws_amplify/__init__.py +8 -8
  6. aws_cdk/aws_apigateway/__init__.py +26 -6
  7. aws_cdk/aws_apigatewayv2/__init__.py +32 -21
  8. aws_cdk/aws_appmesh/__init__.py +12 -12
  9. aws_cdk/aws_appstream/__init__.py +14 -4
  10. aws_cdk/aws_appsync/__init__.py +3 -3
  11. aws_cdk/aws_aps/__init__.py +459 -0
  12. aws_cdk/aws_batch/__init__.py +6 -2
  13. aws_cdk/aws_bedrock/__init__.py +162 -0
  14. aws_cdk/aws_bedrockagentcore/__init__.py +3178 -0
  15. aws_cdk/aws_certificatemanager/__init__.py +9 -10
  16. aws_cdk/aws_cleanrooms/__init__.py +163 -0
  17. aws_cdk/aws_cloudformation/__init__.py +14 -14
  18. aws_cdk/aws_cloudfront/__init__.py +91 -10
  19. aws_cdk/aws_cloudfront_origins/__init__.py +422 -47
  20. aws_cdk/aws_cognito/__init__.py +2 -2
  21. aws_cdk/aws_connect/__init__.py +138 -10
  22. aws_cdk/aws_cur/__init__.py +57 -3
  23. aws_cdk/aws_datasync/__init__.py +351 -0
  24. aws_cdk/aws_datazone/__init__.py +675 -2
  25. aws_cdk/aws_dynamodb/__init__.py +123 -0
  26. aws_cdk/aws_ec2/__init__.py +55 -10
  27. aws_cdk/aws_ecr/__init__.py +4 -0
  28. aws_cdk/aws_ecs/__init__.py +55 -12
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +275 -0
  30. aws_cdk/aws_elasticsearch/__init__.py +2 -2
  31. aws_cdk/aws_events/__init__.py +187 -0
  32. aws_cdk/aws_evs/__init__.py +58 -4
  33. aws_cdk/aws_gamelift/__init__.py +72 -56
  34. aws_cdk/aws_iam/__init__.py +1 -1
  35. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +35 -38
  36. aws_cdk/aws_iotsitewise/__init__.py +75 -111
  37. aws_cdk/aws_kinesisanalytics/__init__.py +315 -125
  38. aws_cdk/aws_kms/__init__.py +10 -2
  39. aws_cdk/aws_lambda/__init__.py +62 -8
  40. aws_cdk/aws_medialive/__init__.py +127 -0
  41. aws_cdk/aws_mediapackage/__init__.py +2 -2
  42. aws_cdk/aws_networkfirewall/__init__.py +10 -10
  43. aws_cdk/aws_networkmanager/__init__.py +63 -0
  44. aws_cdk/aws_odb/__init__.py +2082 -195
  45. aws_cdk/aws_omics/__init__.py +1414 -171
  46. aws_cdk/aws_opensearchserverless/__init__.py +164 -21
  47. aws_cdk/aws_opensearchservice/__init__.py +5 -4
  48. aws_cdk/aws_pcs/__init__.py +9 -9
  49. aws_cdk/aws_quicksight/__init__.py +295 -3
  50. aws_cdk/aws_rds/__init__.py +338 -58
  51. aws_cdk/aws_route53/__init__.py +5926 -4376
  52. aws_cdk/aws_sagemaker/__init__.py +251 -1
  53. aws_cdk/aws_servicecatalog/__init__.py +162 -154
  54. aws_cdk/aws_smsvoice/__init__.py +5218 -0
  55. aws_cdk/aws_stepfunctions_tasks/__init__.py +669 -81
  56. aws_cdk/aws_transfer/__init__.py +13 -12
  57. aws_cdk/aws_verifiedpermissions/__init__.py +1 -1
  58. aws_cdk/aws_workspacesinstances/__init__.py +641 -2
  59. {aws_cdk_lib-2.215.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/METADATA +1 -1
  60. {aws_cdk_lib-2.215.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/RECORD +64 -62
  61. {aws_cdk_lib-2.215.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/LICENSE +0 -0
  62. {aws_cdk_lib-2.215.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/NOTICE +0 -0
  63. {aws_cdk_lib-2.215.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/WHEEL +0 -0
  64. {aws_cdk_lib-2.215.0.dist-info → aws_cdk_lib-2.217.0.dist-info}/top_level.txt +0 -0
@@ -361,6 +361,24 @@ archive = Archive(stack, "Archive",
361
361
 
362
362
  To enable archives or schema discovery on an event bus, customers has the choice of using either an AWS owned key or a customer managed key.
363
363
  For more information, see [KMS key options for event bus encryption](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-encryption-at-rest-key-options.html).
364
+
365
+ ## Configuring logging
366
+
367
+ To configure logging for an Event Bus, leverage the LogConfig property. It allows different level of logging (NONE, INFO, TRACE, ERROR) and wether to include details or not.
368
+
369
+ ```python
370
+ from aws_cdk.aws_events import EventBus, IncludeDetail, Level
371
+
372
+
373
+ bus = EventBus(self, "Bus",
374
+ log_config=events.LogConfig(
375
+ include_detail=IncludeDetail.FULL,
376
+ level=Level.TRACE
377
+ )
378
+ )
379
+ ```
380
+
381
+ See more [Specifying event bus log level](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus-logs.html#eb-event-bus-logs-level)
364
382
  '''
365
383
  from pkgutil import extend_path
366
384
  __path__ = extend_path(__path__, __name__)
@@ -3386,6 +3404,7 @@ class EventBusPolicyReference:
3386
3404
  "event_bus_name": "eventBusName",
3387
3405
  "event_source_name": "eventSourceName",
3388
3406
  "kms_key": "kmsKey",
3407
+ "log_config": "logConfig",
3389
3408
  },
3390
3409
  )
3391
3410
  class EventBusProps:
@@ -3397,6 +3416,7 @@ class EventBusProps:
3397
3416
  event_bus_name: typing.Optional[builtins.str] = None,
3398
3417
  event_source_name: typing.Optional[builtins.str] = None,
3399
3418
  kms_key: typing.Optional[_IKey_5f11635f] = None,
3419
+ log_config: typing.Optional[typing.Union["LogConfig", typing.Dict[builtins.str, typing.Any]]] = None,
3400
3420
  ) -> None:
3401
3421
  '''Properties to define an event bus.
3402
3422
 
@@ -3405,6 +3425,7 @@ class EventBusProps:
3405
3425
  :param event_bus_name: The name of the event bus you are creating Note: If 'eventSourceName' is passed in, you cannot set this. Default: - automatically generated name
3406
3426
  :param event_source_name: The partner event source to associate with this event bus resource Note: If 'eventBusName' is passed in, you cannot set this. Default: - no partner event source
3407
3427
  :param kms_key: The customer managed key that encrypt events on this event bus. Default: - Use an AWS managed key
3428
+ :param log_config: The Logging Configuration of the Èvent Bus. Default: - no logging
3408
3429
 
3409
3430
  :exampleMetadata: infused
3410
3431
 
@@ -3428,6 +3449,8 @@ class EventBusProps:
3428
3449
  )]
3429
3450
  )
3430
3451
  '''
3452
+ if isinstance(log_config, dict):
3453
+ log_config = LogConfig(**log_config)
3431
3454
  if __debug__:
3432
3455
  type_hints = typing.get_type_hints(_typecheckingstub__298a8c4285f4e039344007a0deb097d820ddec52c59d396d7a8faa1aa9c8b743)
3433
3456
  check_type(argname="argument dead_letter_queue", value=dead_letter_queue, expected_type=type_hints["dead_letter_queue"])
@@ -3435,6 +3458,7 @@ class EventBusProps:
3435
3458
  check_type(argname="argument event_bus_name", value=event_bus_name, expected_type=type_hints["event_bus_name"])
3436
3459
  check_type(argname="argument event_source_name", value=event_source_name, expected_type=type_hints["event_source_name"])
3437
3460
  check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
3461
+ check_type(argname="argument log_config", value=log_config, expected_type=type_hints["log_config"])
3438
3462
  self._values: typing.Dict[builtins.str, typing.Any] = {}
3439
3463
  if dead_letter_queue is not None:
3440
3464
  self._values["dead_letter_queue"] = dead_letter_queue
@@ -3446,6 +3470,8 @@ class EventBusProps:
3446
3470
  self._values["event_source_name"] = event_source_name
3447
3471
  if kms_key is not None:
3448
3472
  self._values["kms_key"] = kms_key
3473
+ if log_config is not None:
3474
+ self._values["log_config"] = log_config
3449
3475
 
3450
3476
  @builtins.property
3451
3477
  def dead_letter_queue(self) -> typing.Optional[_IQueue_7ed6f679]:
@@ -3502,6 +3528,15 @@ class EventBusProps:
3502
3528
  result = self._values.get("kms_key")
3503
3529
  return typing.cast(typing.Optional[_IKey_5f11635f], result)
3504
3530
 
3531
+ @builtins.property
3532
+ def log_config(self) -> typing.Optional["LogConfig"]:
3533
+ '''The Logging Configuration of the Èvent Bus.
3534
+
3535
+ :default: - no logging
3536
+ '''
3537
+ result = self._values.get("log_config")
3538
+ return typing.cast(typing.Optional["LogConfig"], result)
3539
+
3505
3540
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
3506
3541
  return isinstance(rhs, self.__class__) and rhs._values == self._values
3507
3542
 
@@ -4860,6 +4895,142 @@ class _IRuleTargetProxy:
4860
4895
  typing.cast(typing.Any, IRuleTarget).__jsii_proxy_class__ = lambda : _IRuleTargetProxy
4861
4896
 
4862
4897
 
4898
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_events.IncludeDetail")
4899
+ class IncludeDetail(enum.Enum):
4900
+ '''Whether EventBridge include detailed event information in the records it generates.
4901
+
4902
+ Detailed data can be useful for troubleshooting and debugging.
4903
+ This information includes details of the event itself, as well as target details.
4904
+
4905
+ :exampleMetadata: infused
4906
+
4907
+ Example::
4908
+
4909
+ from aws_cdk.aws_events import EventBus, IncludeDetail, Level
4910
+
4911
+
4912
+ bus = EventBus(self, "Bus",
4913
+ log_config=events.LogConfig(
4914
+ include_detail=IncludeDetail.FULL,
4915
+ level=Level.TRACE
4916
+ )
4917
+ )
4918
+ '''
4919
+
4920
+ FULL = "FULL"
4921
+ '''FULL: Include all details related to event itself and the request EventBridge sends to the target.
4922
+
4923
+ Detailed data can be useful for troubleshooting and debugging.
4924
+ '''
4925
+ NONE = "NONE"
4926
+ '''NONE: Does not include any details.'''
4927
+
4928
+
4929
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_events.Level")
4930
+ class Level(enum.Enum):
4931
+ '''The level of logging detail to include.
4932
+
4933
+ This applies to all log destinations for the event bus.
4934
+
4935
+ :exampleMetadata: infused
4936
+
4937
+ Example::
4938
+
4939
+ from aws_cdk.aws_events import EventBus, IncludeDetail, Level
4940
+
4941
+
4942
+ bus = EventBus(self, "Bus",
4943
+ log_config=events.LogConfig(
4944
+ include_detail=IncludeDetail.FULL,
4945
+ level=Level.TRACE
4946
+ )
4947
+ )
4948
+ '''
4949
+
4950
+ INFO = "INFO"
4951
+ '''INFO: EventBridge sends any logs related to errors, as well as major steps performed during event processing.'''
4952
+ ERROR = "ERROR"
4953
+ '''ERROR: EventBridge sends any logs related to errors generated during event processing and target delivery.'''
4954
+ TRACE = "TRACE"
4955
+ '''TRACE: EventBridge sends any logs generated during all steps in the event processing.'''
4956
+ OFF = "OFF"
4957
+ '''OFF: EventBridge does not send any logs.
4958
+
4959
+ This is the default.
4960
+ '''
4961
+
4962
+
4963
+ @jsii.data_type(
4964
+ jsii_type="aws-cdk-lib.aws_events.LogConfig",
4965
+ jsii_struct_bases=[],
4966
+ name_mapping={"include_detail": "includeDetail", "level": "level"},
4967
+ )
4968
+ class LogConfig:
4969
+ def __init__(
4970
+ self,
4971
+ *,
4972
+ include_detail: typing.Optional[IncludeDetail] = None,
4973
+ level: typing.Optional[Level] = None,
4974
+ ) -> None:
4975
+ '''Interface for Logging Configuration of the Event Bus.
4976
+
4977
+ :param include_detail: Whether EventBridge include detailed event information in the records it generates. Default: no details
4978
+ :param level: Logging level. Default: OFF
4979
+
4980
+ :exampleMetadata: infused
4981
+
4982
+ Example::
4983
+
4984
+ from aws_cdk.aws_events import EventBus, IncludeDetail, Level
4985
+
4986
+
4987
+ bus = EventBus(self, "Bus",
4988
+ log_config=events.LogConfig(
4989
+ include_detail=IncludeDetail.FULL,
4990
+ level=Level.TRACE
4991
+ )
4992
+ )
4993
+ '''
4994
+ if __debug__:
4995
+ type_hints = typing.get_type_hints(_typecheckingstub__198ca7d856a2573ae11c3570c27c6ff5d3b3d059abd28650a790b698a11f30b9)
4996
+ check_type(argname="argument include_detail", value=include_detail, expected_type=type_hints["include_detail"])
4997
+ check_type(argname="argument level", value=level, expected_type=type_hints["level"])
4998
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4999
+ if include_detail is not None:
5000
+ self._values["include_detail"] = include_detail
5001
+ if level is not None:
5002
+ self._values["level"] = level
5003
+
5004
+ @builtins.property
5005
+ def include_detail(self) -> typing.Optional[IncludeDetail]:
5006
+ '''Whether EventBridge include detailed event information in the records it generates.
5007
+
5008
+ :default: no details
5009
+ '''
5010
+ result = self._values.get("include_detail")
5011
+ return typing.cast(typing.Optional[IncludeDetail], result)
5012
+
5013
+ @builtins.property
5014
+ def level(self) -> typing.Optional[Level]:
5015
+ '''Logging level.
5016
+
5017
+ :default: OFF
5018
+ '''
5019
+ result = self._values.get("level")
5020
+ return typing.cast(typing.Optional[Level], result)
5021
+
5022
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5023
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5024
+
5025
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5026
+ return not (rhs == self)
5027
+
5028
+ def __repr__(self) -> str:
5029
+ return "LogConfig(%s)" % ", ".join(
5030
+ k + "=" + repr(v) for k, v in self._values.items()
5031
+ )
5032
+
5033
+
4863
5034
  @jsii.implements(_IResolvable_da3f097b)
4864
5035
  class Match(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_events.Match"):
4865
5036
  '''An event pattern matcher.
@@ -13153,6 +13324,7 @@ class EventBus(
13153
13324
  event_bus_name: typing.Optional[builtins.str] = None,
13154
13325
  event_source_name: typing.Optional[builtins.str] = None,
13155
13326
  kms_key: typing.Optional[_IKey_5f11635f] = None,
13327
+ log_config: typing.Optional[typing.Union[LogConfig, typing.Dict[builtins.str, typing.Any]]] = None,
13156
13328
  ) -> None:
13157
13329
  '''
13158
13330
  :param scope: -
@@ -13162,6 +13334,7 @@ class EventBus(
13162
13334
  :param event_bus_name: The name of the event bus you are creating Note: If 'eventSourceName' is passed in, you cannot set this. Default: - automatically generated name
13163
13335
  :param event_source_name: The partner event source to associate with this event bus resource Note: If 'eventBusName' is passed in, you cannot set this. Default: - no partner event source
13164
13336
  :param kms_key: The customer managed key that encrypt events on this event bus. Default: - Use an AWS managed key
13337
+ :param log_config: The Logging Configuration of the Èvent Bus. Default: - no logging
13165
13338
  '''
13166
13339
  if __debug__:
13167
13340
  type_hints = typing.get_type_hints(_typecheckingstub__95a51d19a0503daf5e05f08738b44a6276eaa23c373c99735de37b1247783380)
@@ -13173,6 +13346,7 @@ class EventBus(
13173
13346
  event_bus_name=event_bus_name,
13174
13347
  event_source_name=event_source_name,
13175
13348
  kms_key=kms_key,
13349
+ log_config=log_config,
13176
13350
  )
13177
13351
 
13178
13352
  jsii.create(self.__class__, self, [scope, id, props])
@@ -13417,6 +13591,9 @@ __all__ = [
13417
13591
  "IRule",
13418
13592
  "IRuleRef",
13419
13593
  "IRuleTarget",
13594
+ "IncludeDetail",
13595
+ "Level",
13596
+ "LogConfig",
13420
13597
  "Match",
13421
13598
  "OAuthAuthorizationProps",
13422
13599
  "OnEventOptions",
@@ -13689,6 +13866,7 @@ def _typecheckingstub__298a8c4285f4e039344007a0deb097d820ddec52c59d396d7a8faa1aa
13689
13866
  event_bus_name: typing.Optional[builtins.str] = None,
13690
13867
  event_source_name: typing.Optional[builtins.str] = None,
13691
13868
  kms_key: typing.Optional[_IKey_5f11635f] = None,
13869
+ log_config: typing.Optional[typing.Union[LogConfig, typing.Dict[builtins.str, typing.Any]]] = None,
13692
13870
  ) -> None:
13693
13871
  """Type checking stubs"""
13694
13872
  pass
@@ -13776,6 +13954,14 @@ def _typecheckingstub__ee62e84f884e0e5476947339e584feca527844abc70d56b2fe2d048cc
13776
13954
  """Type checking stubs"""
13777
13955
  pass
13778
13956
 
13957
+ def _typecheckingstub__198ca7d856a2573ae11c3570c27c6ff5d3b3d059abd28650a790b698a11f30b9(
13958
+ *,
13959
+ include_detail: typing.Optional[IncludeDetail] = None,
13960
+ level: typing.Optional[Level] = None,
13961
+ ) -> None:
13962
+ """Type checking stubs"""
13963
+ pass
13964
+
13779
13965
  def _typecheckingstub__40e12e6e33c3e0969083091ee3865292a66ff488c5232a973beb73ef6c62c5fa(
13780
13966
  *matchers: typing.Any,
13781
13967
  ) -> None:
@@ -14977,6 +15163,7 @@ def _typecheckingstub__95a51d19a0503daf5e05f08738b44a6276eaa23c373c99735de37b124
14977
15163
  event_bus_name: typing.Optional[builtins.str] = None,
14978
15164
  event_source_name: typing.Optional[builtins.str] = None,
14979
15165
  kms_key: typing.Optional[_IKey_5f11635f] = None,
15166
+ log_config: typing.Optional[typing.Union[LogConfig, typing.Dict[builtins.str, typing.Any]]] = None,
14980
15167
  ) -> None:
14981
15168
  """Type checking stubs"""
14982
15169
  pass
@@ -210,7 +210,11 @@ class CfnEnvironmentProps:
210
210
  ),
211
211
  v_tep=evs.CfnEnvironment.InitialVlanInfoProperty(
212
212
  cidr="cidr"
213
- )
213
+ ),
214
+
215
+ # the properties below are optional
216
+ hcx_network_acl_id="hcxNetworkAclId",
217
+ is_hcx_public=False
214
218
  ),
215
219
  kms_key_id="kmsKeyId",
216
220
  service_access_security_groups=evs.CfnEnvironment.ServiceAccessSecurityGroupsProperty(
@@ -644,7 +648,11 @@ class CfnEnvironment(
644
648
  ),
645
649
  v_tep=evs.CfnEnvironment.InitialVlanInfoProperty(
646
650
  cidr="cidr"
647
- )
651
+ ),
652
+
653
+ # the properties below are optional
654
+ hcx_network_acl_id="hcxNetworkAclId",
655
+ is_hcx_public=False
648
656
  ),
649
657
  kms_key_id="kmsKeyId",
650
658
  service_access_security_groups=evs.CfnEnvironment.ServiceAccessSecurityGroupsProperty(
@@ -1432,6 +1440,8 @@ class CfnEnvironment(
1432
1440
  "v_motion": "vMotion",
1433
1441
  "v_san": "vSan",
1434
1442
  "v_tep": "vTep",
1443
+ "hcx_network_acl_id": "hcxNetworkAclId",
1444
+ "is_hcx_public": "isHcxPublic",
1435
1445
  },
1436
1446
  )
1437
1447
  class InitialVlansProperty:
@@ -1448,6 +1458,8 @@ class CfnEnvironment(
1448
1458
  v_motion: typing.Union[_IResolvable_da3f097b, typing.Union["CfnEnvironment.InitialVlanInfoProperty", typing.Dict[builtins.str, typing.Any]]],
1449
1459
  v_san: typing.Union[_IResolvable_da3f097b, typing.Union["CfnEnvironment.InitialVlanInfoProperty", typing.Dict[builtins.str, typing.Any]]],
1450
1460
  v_tep: typing.Union[_IResolvable_da3f097b, typing.Union["CfnEnvironment.InitialVlanInfoProperty", typing.Dict[builtins.str, typing.Any]]],
1461
+ hcx_network_acl_id: typing.Optional[builtins.str] = None,
1462
+ is_hcx_public: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1451
1463
  ) -> None:
1452
1464
  '''The initial VLAN subnets for the environment.
1453
1465
 
@@ -1456,13 +1468,15 @@ class CfnEnvironment(
1456
1468
  :param edge_v_tep: The edge VTEP VLAN subnet. This VLAN subnet manages traffic flowing between the internal network and external networks, including internet access and other site connections.
1457
1469
  :param expansion_vlan1: An additional VLAN subnet that can be used to extend VCF capabilities once configured. For example, you can configure an expansion VLAN subnet to use NSX Federation for centralized management and synchronization of multiple NSX deployments across different locations.
1458
1470
  :param expansion_vlan2: An additional VLAN subnet that can be used to extend VCF capabilities once configured. For example, you can configure an expansion VLAN subnet to use NSX Federation for centralized management and synchronization of multiple NSX deployments across different locations.
1459
- :param hcx: The HCX VLAN subnet. This VLAN subnet allows the HCX Interconnnect (IX) and HCX Network Extension (NE) to reach their peers and enable HCX Service Mesh creation.
1471
+ :param hcx: The HCX VLAN subnet. This VLAN subnet allows the HCX Interconnnect (IX) and HCX Network Extension (NE) to reach their peers and enable HCX Service Mesh creation. If you plan to use a public HCX VLAN subnet, the following requirements must be met: - Must have a /28 netmask and be allocated from the IPAM public pool. Required for HCX internet access configuration. - The HCX public VLAN CIDR block must be added to the VPC as a secondary CIDR block. - Must have at least two Elastic IP addresses to be allocated from the public IPAM pool for HCX components.
1460
1472
  :param nsx_up_link: The NSX uplink VLAN subnet. This VLAN subnet allows connectivity to the NSX overlay network.
1461
1473
  :param vmk_management: The host VMkernel management VLAN subnet. This VLAN subnet carries traffic for managing ESXi hosts and communicating with VMware vCenter Server.
1462
1474
  :param vm_management: The VM management VLAN subnet. This VLAN subnet carries traffic for vSphere virtual machines.
1463
1475
  :param v_motion: The vMotion VLAN subnet. This VLAN subnet carries traffic for vSphere vMotion.
1464
1476
  :param v_san: The vSAN VLAN subnet. This VLAN subnet carries the communication between ESXi hosts to implement a vSAN shared storage pool.
1465
1477
  :param v_tep: The VTEP VLAN subnet. This VLAN subnet handles internal network traffic between virtual machines within a VCF instance.
1478
+ :param hcx_network_acl_id: A unique ID for a network access control list that the HCX VLAN uses. Required when ``isHcxPublic`` is set to ``true`` .
1479
+ :param is_hcx_public: Determines if the HCX VLAN that Amazon EVS provisions is public or private.
1466
1480
 
1467
1481
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evs-environment-initialvlans.html
1468
1482
  :exampleMetadata: fixture=_generated
@@ -1503,7 +1517,11 @@ class CfnEnvironment(
1503
1517
  ),
1504
1518
  v_tep=evs.CfnEnvironment.InitialVlanInfoProperty(
1505
1519
  cidr="cidr"
1506
- )
1520
+ ),
1521
+
1522
+ # the properties below are optional
1523
+ hcx_network_acl_id="hcxNetworkAclId",
1524
+ is_hcx_public=False
1507
1525
  )
1508
1526
  '''
1509
1527
  if __debug__:
@@ -1518,6 +1536,8 @@ class CfnEnvironment(
1518
1536
  check_type(argname="argument v_motion", value=v_motion, expected_type=type_hints["v_motion"])
1519
1537
  check_type(argname="argument v_san", value=v_san, expected_type=type_hints["v_san"])
1520
1538
  check_type(argname="argument v_tep", value=v_tep, expected_type=type_hints["v_tep"])
1539
+ check_type(argname="argument hcx_network_acl_id", value=hcx_network_acl_id, expected_type=type_hints["hcx_network_acl_id"])
1540
+ check_type(argname="argument is_hcx_public", value=is_hcx_public, expected_type=type_hints["is_hcx_public"])
1521
1541
  self._values: typing.Dict[builtins.str, typing.Any] = {
1522
1542
  "edge_v_tep": edge_v_tep,
1523
1543
  "expansion_vlan1": expansion_vlan1,
@@ -1530,6 +1550,10 @@ class CfnEnvironment(
1530
1550
  "v_san": v_san,
1531
1551
  "v_tep": v_tep,
1532
1552
  }
1553
+ if hcx_network_acl_id is not None:
1554
+ self._values["hcx_network_acl_id"] = hcx_network_acl_id
1555
+ if is_hcx_public is not None:
1556
+ self._values["is_hcx_public"] = is_hcx_public
1533
1557
 
1534
1558
  @builtins.property
1535
1559
  def edge_v_tep(
@@ -1581,6 +1605,12 @@ class CfnEnvironment(
1581
1605
 
1582
1606
  This VLAN subnet allows the HCX Interconnnect (IX) and HCX Network Extension (NE) to reach their peers and enable HCX Service Mesh creation.
1583
1607
 
1608
+ If you plan to use a public HCX VLAN subnet, the following requirements must be met:
1609
+
1610
+ - Must have a /28 netmask and be allocated from the IPAM public pool. Required for HCX internet access configuration.
1611
+ - The HCX public VLAN CIDR block must be added to the VPC as a secondary CIDR block.
1612
+ - Must have at least two Elastic IP addresses to be allocated from the public IPAM pool for HCX components.
1613
+
1584
1614
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evs-environment-initialvlans.html#cfn-evs-environment-initialvlans-hcx
1585
1615
  '''
1586
1616
  result = self._values.get("hcx")
@@ -1671,6 +1701,28 @@ class CfnEnvironment(
1671
1701
  assert result is not None, "Required property 'v_tep' is missing"
1672
1702
  return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnEnvironment.InitialVlanInfoProperty"], result)
1673
1703
 
1704
+ @builtins.property
1705
+ def hcx_network_acl_id(self) -> typing.Optional[builtins.str]:
1706
+ '''A unique ID for a network access control list that the HCX VLAN uses.
1707
+
1708
+ Required when ``isHcxPublic`` is set to ``true`` .
1709
+
1710
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evs-environment-initialvlans.html#cfn-evs-environment-initialvlans-hcxnetworkaclid
1711
+ '''
1712
+ result = self._values.get("hcx_network_acl_id")
1713
+ return typing.cast(typing.Optional[builtins.str], result)
1714
+
1715
+ @builtins.property
1716
+ def is_hcx_public(
1717
+ self,
1718
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
1719
+ '''Determines if the HCX VLAN that Amazon EVS provisions is public or private.
1720
+
1721
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evs-environment-initialvlans.html#cfn-evs-environment-initialvlans-ishcxpublic
1722
+ '''
1723
+ result = self._values.get("is_hcx_public")
1724
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
1725
+
1674
1726
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1675
1727
  return isinstance(rhs, self.__class__) and rhs._values == self._values
1676
1728
 
@@ -2261,6 +2313,8 @@ def _typecheckingstub__a70b9547ba64740f8b44168dbcdcd80e75a75a1dc2ed733c834ad336f
2261
2313
  v_motion: typing.Union[_IResolvable_da3f097b, typing.Union[CfnEnvironment.InitialVlanInfoProperty, typing.Dict[builtins.str, typing.Any]]],
2262
2314
  v_san: typing.Union[_IResolvable_da3f097b, typing.Union[CfnEnvironment.InitialVlanInfoProperty, typing.Dict[builtins.str, typing.Any]]],
2263
2315
  v_tep: typing.Union[_IResolvable_da3f097b, typing.Union[CfnEnvironment.InitialVlanInfoProperty, typing.Dict[builtins.str, typing.Any]]],
2316
+ hcx_network_acl_id: typing.Optional[builtins.str] = None,
2317
+ is_hcx_public: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2264
2318
  ) -> None:
2265
2319
  """Type checking stubs"""
2266
2320
  pass