aws-cdk-lib 2.138.0__py3-none-any.whl → 2.139.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 (37) hide show
  1. aws_cdk/_jsii/__init__.py +1 -1
  2. aws_cdk/_jsii/{aws-cdk-lib@2.138.0.jsii.tgz → aws-cdk-lib@2.139.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_apigateway/__init__.py +29 -16
  4. aws_cdk/aws_appconfig/__init__.py +289 -44
  5. aws_cdk/aws_appintegrations/__init__.py +55 -6
  6. aws_cdk/aws_autoscaling/__init__.py +62 -60
  7. aws_cdk/aws_backup/__init__.py +34 -42
  8. aws_cdk/aws_batch/__init__.py +9 -3
  9. aws_cdk/aws_bedrock/__init__.py +4144 -0
  10. aws_cdk/aws_cloudwatch/__init__.py +120 -0
  11. aws_cdk/aws_datazone/__init__.py +22 -0
  12. aws_cdk/aws_dms/__init__.py +2 -4
  13. aws_cdk/aws_ec2/__init__.py +123 -84
  14. aws_cdk/aws_ecr/__init__.py +630 -0
  15. aws_cdk/aws_ecs/__init__.py +121 -19
  16. aws_cdk/aws_efs/__init__.py +592 -0
  17. aws_cdk/aws_elasticloadbalancingv2/__init__.py +23 -8
  18. aws_cdk/aws_events_targets/__init__.py +17 -4
  19. aws_cdk/aws_kms/__init__.py +44 -0
  20. aws_cdk/aws_lambda/__init__.py +9 -0
  21. aws_cdk/aws_oam/__init__.py +204 -0
  22. aws_cdk/aws_rds/__init__.py +15 -11
  23. aws_cdk/aws_redshiftserverless/__init__.py +157 -0
  24. aws_cdk/aws_securitylake/__init__.py +160 -105
  25. aws_cdk/aws_ses_actions/__init__.py +155 -0
  26. aws_cdk/aws_ssm/__init__.py +5 -2
  27. aws_cdk/aws_timestream/__init__.py +1045 -0
  28. aws_cdk/aws_transfer/__init__.py +15 -6
  29. aws_cdk/aws_wisdom/__init__.py +2 -2
  30. aws_cdk/custom_resources/__init__.py +440 -0
  31. aws_cdk/cx_api/__init__.py +17 -0
  32. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/METADATA +1 -1
  33. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/RECORD +37 -37
  34. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/LICENSE +0 -0
  35. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/NOTICE +0 -0
  36. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/WHEEL +0 -0
  37. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/top_level.txt +0 -0
@@ -2760,7 +2760,7 @@ class BaseLoadBalancerProps:
2760
2760
  '''Shared properties of both Application and Network Load Balancers.
2761
2761
 
2762
2762
  :param vpc: The VPC network to place the load balancer in.
2763
- :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
2763
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers. This can not be ``false`` for Application Load Balancers.
2764
2764
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
2765
2765
  :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
2766
2766
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
@@ -2837,7 +2837,12 @@ class BaseLoadBalancerProps:
2837
2837
  def cross_zone_enabled(self) -> typing.Optional[builtins.bool]:
2838
2838
  '''Indicates whether cross-zone load balancing is enabled.
2839
2839
 
2840
- :default: - false for Network Load Balancers and true for Application Load Balancers.
2840
+ :default:
2841
+
2842
+ - false for Network Load Balancers and true for Application Load Balancers.
2843
+ This can not be ``false`` for Application Load Balancers.
2844
+
2845
+ :see: - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html
2841
2846
  '''
2842
2847
  result = self._values.get("cross_zone_enabled")
2843
2848
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -15950,7 +15955,7 @@ class NetworkLoadBalancer(
15950
15955
  :param ip_address_type: The type of IP addresses to use. If you want to add a UDP or TCP_UDP listener to the load balancer, you must choose IPv4. Default: IpAddressType.IPV4
15951
15956
  :param security_groups: Security groups to associate with this load balancer. Default: - No security groups associated with the load balancer.
15952
15957
  :param vpc: The VPC network to place the load balancer in.
15953
- :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
15958
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers. This can not be ``false`` for Application Load Balancers.
15954
15959
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
15955
15960
  :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
15956
15961
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
@@ -16735,7 +16740,7 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16735
16740
  '''Properties for a network load balancer.
16736
16741
 
16737
16742
  :param vpc: The VPC network to place the load balancer in.
16738
- :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
16743
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers. This can not be ``false`` for Application Load Balancers.
16739
16744
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
16740
16745
  :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
16741
16746
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
@@ -16814,7 +16819,12 @@ class NetworkLoadBalancerProps(BaseLoadBalancerProps):
16814
16819
  def cross_zone_enabled(self) -> typing.Optional[builtins.bool]:
16815
16820
  '''Indicates whether cross-zone load balancing is enabled.
16816
16821
 
16817
- :default: - false for Network Load Balancers and true for Application Load Balancers.
16822
+ :default:
16823
+
16824
+ - false for Network Load Balancers and true for Application Load Balancers.
16825
+ This can not be ``false`` for Application Load Balancers.
16826
+
16827
+ :see: - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html
16818
16828
  '''
16819
16829
  result = self._values.get("cross_zone_enabled")
16820
16830
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -19309,7 +19319,7 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19309
19319
  '''Properties for defining an Application Load Balancer.
19310
19320
 
19311
19321
  :param vpc: The VPC network to place the load balancer in.
19312
- :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
19322
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers. This can not be ``false`` for Application Load Balancers.
19313
19323
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
19314
19324
  :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
19315
19325
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
@@ -19437,7 +19447,12 @@ class ApplicationLoadBalancerProps(BaseLoadBalancerProps):
19437
19447
  def cross_zone_enabled(self) -> typing.Optional[builtins.bool]:
19438
19448
  '''Indicates whether cross-zone load balancing is enabled.
19439
19449
 
19440
- :default: - false for Network Load Balancers and true for Application Load Balancers.
19450
+ :default:
19451
+
19452
+ - false for Network Load Balancers and true for Application Load Balancers.
19453
+ This can not be ``false`` for Application Load Balancers.
19454
+
19455
+ :see: - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html
19441
19456
  '''
19442
19457
  result = self._values.get("cross_zone_enabled")
19443
19458
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -21558,7 +21573,7 @@ class ApplicationLoadBalancer(
21558
21573
  :param x_amzn_tls_version_and_cipher_suite_headers: Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The x-amzn-tls-version header has information about the TLS protocol version negotiated with the client, and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. Default: false
21559
21574
  :param xff_header_processing_mode: Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request before the Application Load Balancer sends the request to the target. Default: XffHeaderProcessingMode.APPEND
21560
21575
  :param vpc: The VPC network to place the load balancer in.
21561
- :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers.
21576
+ :param cross_zone_enabled: Indicates whether cross-zone load balancing is enabled. Default: - false for Network Load Balancers and true for Application Load Balancers. This can not be ``false`` for Application Load Balancers.
21562
21577
  :param deletion_protection: Indicates whether deletion protection is enabled. Default: false
21563
21578
  :param deny_all_igw_traffic: Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). Default: - false for internet-facing load balancers and true for internal load balancers
21564
21579
  :param internet_facing: Whether the load balancer has an internet-routable address. Default: false
@@ -499,7 +499,9 @@ from .._jsii import *
499
499
 
500
500
  import constructs as _constructs_77d1e7e8
501
501
  from .. import Duration as _Duration_4839e8c3
502
- from ..aws_apigateway import RestApi as _RestApi_777c8238
502
+ from ..aws_apigateway import (
503
+ IRestApi as _IRestApi_1f02523d, RestApi as _RestApi_777c8238
504
+ )
503
505
  from ..aws_codebuild import IProject as _IProject_aafae30a
504
506
  from ..aws_codepipeline import IPipeline as _IPipeline_0931f838
505
507
  from ..aws_ec2 import (
@@ -667,7 +669,7 @@ class ApiGateway(
667
669
 
668
670
  def __init__(
669
671
  self,
670
- rest_api: _RestApi_777c8238,
672
+ rest_api: _IRestApi_1f02523d,
671
673
  *,
672
674
  event_role: typing.Optional[_IRole_235f5d8e] = None,
673
675
  header_parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
@@ -682,7 +684,7 @@ class ApiGateway(
682
684
  retry_attempts: typing.Optional[jsii.Number] = None,
683
685
  ) -> None:
684
686
  '''
685
- :param rest_api: -
687
+ :param rest_api: - IRestApi implementation to use as event target.
686
688
  :param event_role: The role to assume before invoking the target (i.e., the pipeline) when the given rule is triggered. Default: - a new role will be created
687
689
  :param header_parameters: The headers to be set when requesting API. Default: no header parameters
688
690
  :param method: The method for api resource invoked by the rule. Default: '*' that treated as ANY
@@ -733,9 +735,20 @@ class ApiGateway(
733
735
  check_type(argname="argument _id", value=_id, expected_type=type_hints["_id"])
734
736
  return typing.cast(_RuleTargetConfig_4e70fe03, jsii.invoke(self, "bind", [rule, _id]))
735
737
 
738
+ @builtins.property
739
+ @jsii.member(jsii_name="iRestApi")
740
+ def i_rest_api(self) -> _IRestApi_1f02523d:
741
+ '''Returns the target IRestApi.'''
742
+ return typing.cast(_IRestApi_1f02523d, jsii.get(self, "iRestApi"))
743
+
736
744
  @builtins.property
737
745
  @jsii.member(jsii_name="restApi")
738
746
  def rest_api(self) -> _RestApi_777c8238:
747
+ '''
748
+ :deprecated: Use the ``iRestApi`` getter instead
749
+
750
+ :stability: deprecated
751
+ '''
739
752
  return typing.cast(_RestApi_777c8238, jsii.get(self, "restApi"))
740
753
 
741
754
 
@@ -4774,7 +4787,7 @@ def _typecheckingstub__7fc3c1c0cf00ea5f22f33bc5b97cb9290363f2ca57adb35a3ef3345ba
4774
4787
  pass
4775
4788
 
4776
4789
  def _typecheckingstub__4351ee68d84b56105dfaf7566e76bf0350931a4945a4f9e2599f6310ff34c1f4(
4777
- rest_api: _RestApi_777c8238,
4790
+ rest_api: _IRestApi_1f02523d,
4778
4791
  *,
4779
4792
  event_role: typing.Optional[_IRole_235f5d8e] = None,
4780
4793
  header_parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
@@ -720,6 +720,7 @@ class CfnKey(
720
720
  multi_region: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
721
721
  origin: typing.Optional[builtins.str] = None,
722
722
  pending_window_in_days: typing.Optional[jsii.Number] = None,
723
+ rotation_period_in_days: typing.Optional[jsii.Number] = None,
723
724
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
724
725
  ) -> None:
725
726
  '''
@@ -735,6 +736,7 @@ class CfnKey(
735
736
  :param multi_region: Creates a multi-Region primary key that you can replicate in other AWS Regions . You can't change the ``MultiRegion`` value after the KMS key is created. For a list of AWS Regions in which multi-Region keys are supported, see `Multi-Region keys in AWS KMS <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html>`_ in the ** . .. epigraph:: If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the ```UpdateReplacePolicy`` attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html>`_ . This prevents you from accidentally deleting a KMS key by changing an immutable property value. For a multi-Region key, set to this property to ``true`` . For a single-Region key, omit this property or set it to ``false`` . The default value is ``false`` . *Multi-Region keys* are an AWS KMS feature that lets you create multiple interoperable KMS keys in different AWS Regions . Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information, see `Multi-Region keys <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html>`_ in the *AWS Key Management Service Developer Guide* . You can create a symmetric encryption, HMAC, or asymmetric multi-Region KMS key, and you can create a multi-Region key with imported key material. However, you cannot create a multi-Region key in a custom key store. To create a replica of this primary key in a different AWS Region , create an `AWS::KMS::ReplicaKey <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html>`_ resource in a CloudFormation stack in the replica Region. Specify the key ARN of this primary key. Default: - false
736
737
  :param origin: The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is ``AWS_KMS`` , which means that AWS KMS creates the key material. To `create a KMS key with no key material <https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html>`_ (for imported key material), set this value to ``EXTERNAL`` . For more information about importing key material into AWS KMS , see `Importing Key Material <https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html>`_ in the *AWS Key Management Service Developer Guide* . You can ignore ``ENABLED`` when Origin is ``EXTERNAL`` . When a KMS key with Origin ``EXTERNAL`` is created, the key state is ``PENDING_IMPORT`` and ``ENABLED`` is ``false`` . After you import the key material, ``ENABLED`` updated to ``true`` . The KMS key can then be used for Cryptographic Operations. .. epigraph:: AWS CloudFormation doesn't support creating an ``Origin`` parameter of the ``AWS_CLOUDHSM`` or ``EXTERNAL_KEY_STORE`` values. Default: - "AWS_KMS"
737
738
  :param pending_window_in_days: Specifies the number of days in the waiting period before AWS KMS deletes a KMS key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days. When you remove a KMS key from a CloudFormation stack, AWS KMS schedules the KMS key for deletion and starts the mandatory waiting period. The ``PendingWindowInDays`` property determines the length of waiting period. During the waiting period, the key state of KMS key is ``Pending Deletion`` or ``Pending Replica Deletion`` , which prevents the KMS key from being used in cryptographic operations. When the waiting period expires, AWS KMS permanently deletes the KMS key. AWS KMS will not delete a `multi-Region primary key <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html>`_ that has replica keys. If you remove a multi-Region primary key from a CloudFormation stack, its key state changes to ``PendingReplicaDeletion`` so it cannot be replicated or used in cryptographic operations. This state can persist indefinitely. When the last of its replica keys is deleted, the key state of the primary key changes to ``PendingDeletion`` and the waiting period specified by ``PendingWindowInDays`` begins. When this waiting period expires, AWS KMS deletes the primary key. For details, see `Deleting multi-Region keys <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html>`_ in the *AWS Key Management Service Developer Guide* . You cannot use a CloudFormation template to cancel deletion of the KMS key after you remove it from the stack, regardless of the waiting period. If you specify a KMS key in your template, even one with the same name, CloudFormation creates a new KMS key. To cancel deletion of a KMS key, use the AWS KMS console or the `CancelKeyDeletion <https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html>`_ operation. For information about the ``Pending Deletion`` and ``Pending Replica Deletion`` key states, see `Key state: Effect on your KMS key <https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html>`_ in the *AWS Key Management Service Developer Guide* . For more information about deleting KMS keys, see the `ScheduleKeyDeletion <https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html>`_ operation in the *AWS Key Management Service API Reference* and `Deleting KMS keys <https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html>`_ in the *AWS Key Management Service Developer Guide* .
739
+ :param rotation_period_in_days: The number of days between each automatic rotation. The default value is 365 days. Default: - 365
738
740
  :param tags: Assigns one or more tags to the replica key. .. epigraph:: Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see `ABAC for AWS KMS <https://docs.aws.amazon.com/kms/latest/developerguide/abac.html>`_ in the *AWS Key Management Service Developer Guide* . For information about tags in AWS KMS , see `Tagging keys <https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html>`_ in the *AWS Key Management Service Developer Guide* . For information about tags in CloudFormation, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
739
741
  '''
740
742
  if __debug__:
@@ -752,6 +754,7 @@ class CfnKey(
752
754
  multi_region=multi_region,
753
755
  origin=origin,
754
756
  pending_window_in_days=pending_window_in_days,
757
+ rotation_period_in_days=rotation_period_in_days,
755
758
  tags=tags,
756
759
  )
757
760
 
@@ -976,6 +979,19 @@ class CfnKey(
976
979
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
977
980
  jsii.set(self, "pendingWindowInDays", value)
978
981
 
982
+ @builtins.property
983
+ @jsii.member(jsii_name="rotationPeriodInDays")
984
+ def rotation_period_in_days(self) -> typing.Optional[jsii.Number]:
985
+ '''The number of days between each automatic rotation.'''
986
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "rotationPeriodInDays"))
987
+
988
+ @rotation_period_in_days.setter
989
+ def rotation_period_in_days(self, value: typing.Optional[jsii.Number]) -> None:
990
+ if __debug__:
991
+ type_hints = typing.get_type_hints(_typecheckingstub__3b766cb0a8ed53bed340510bfb429fb6a5f36d2f63f9c7718fb1f0c92f2fbc59)
992
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
993
+ jsii.set(self, "rotationPeriodInDays", value)
994
+
979
995
  @builtins.property
980
996
  @jsii.member(jsii_name="tagsRaw")
981
997
  def tags_raw(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
@@ -1004,6 +1020,7 @@ class CfnKey(
1004
1020
  "multi_region": "multiRegion",
1005
1021
  "origin": "origin",
1006
1022
  "pending_window_in_days": "pendingWindowInDays",
1023
+ "rotation_period_in_days": "rotationPeriodInDays",
1007
1024
  "tags": "tags",
1008
1025
  },
1009
1026
  )
@@ -1021,6 +1038,7 @@ class CfnKeyProps:
1021
1038
  multi_region: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1022
1039
  origin: typing.Optional[builtins.str] = None,
1023
1040
  pending_window_in_days: typing.Optional[jsii.Number] = None,
1041
+ rotation_period_in_days: typing.Optional[jsii.Number] = None,
1024
1042
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1025
1043
  ) -> None:
1026
1044
  '''Properties for defining a ``CfnKey``.
@@ -1035,6 +1053,7 @@ class CfnKeyProps:
1035
1053
  :param multi_region: Creates a multi-Region primary key that you can replicate in other AWS Regions . You can't change the ``MultiRegion`` value after the KMS key is created. For a list of AWS Regions in which multi-Region keys are supported, see `Multi-Region keys in AWS KMS <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html>`_ in the ** . .. epigraph:: If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the ```UpdateReplacePolicy`` attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html>`_ . This prevents you from accidentally deleting a KMS key by changing an immutable property value. For a multi-Region key, set to this property to ``true`` . For a single-Region key, omit this property or set it to ``false`` . The default value is ``false`` . *Multi-Region keys* are an AWS KMS feature that lets you create multiple interoperable KMS keys in different AWS Regions . Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information, see `Multi-Region keys <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html>`_ in the *AWS Key Management Service Developer Guide* . You can create a symmetric encryption, HMAC, or asymmetric multi-Region KMS key, and you can create a multi-Region key with imported key material. However, you cannot create a multi-Region key in a custom key store. To create a replica of this primary key in a different AWS Region , create an `AWS::KMS::ReplicaKey <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html>`_ resource in a CloudFormation stack in the replica Region. Specify the key ARN of this primary key. Default: - false
1036
1054
  :param origin: The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is ``AWS_KMS`` , which means that AWS KMS creates the key material. To `create a KMS key with no key material <https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html>`_ (for imported key material), set this value to ``EXTERNAL`` . For more information about importing key material into AWS KMS , see `Importing Key Material <https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html>`_ in the *AWS Key Management Service Developer Guide* . You can ignore ``ENABLED`` when Origin is ``EXTERNAL`` . When a KMS key with Origin ``EXTERNAL`` is created, the key state is ``PENDING_IMPORT`` and ``ENABLED`` is ``false`` . After you import the key material, ``ENABLED`` updated to ``true`` . The KMS key can then be used for Cryptographic Operations. .. epigraph:: AWS CloudFormation doesn't support creating an ``Origin`` parameter of the ``AWS_CLOUDHSM`` or ``EXTERNAL_KEY_STORE`` values. Default: - "AWS_KMS"
1037
1055
  :param pending_window_in_days: Specifies the number of days in the waiting period before AWS KMS deletes a KMS key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days. When you remove a KMS key from a CloudFormation stack, AWS KMS schedules the KMS key for deletion and starts the mandatory waiting period. The ``PendingWindowInDays`` property determines the length of waiting period. During the waiting period, the key state of KMS key is ``Pending Deletion`` or ``Pending Replica Deletion`` , which prevents the KMS key from being used in cryptographic operations. When the waiting period expires, AWS KMS permanently deletes the KMS key. AWS KMS will not delete a `multi-Region primary key <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html>`_ that has replica keys. If you remove a multi-Region primary key from a CloudFormation stack, its key state changes to ``PendingReplicaDeletion`` so it cannot be replicated or used in cryptographic operations. This state can persist indefinitely. When the last of its replica keys is deleted, the key state of the primary key changes to ``PendingDeletion`` and the waiting period specified by ``PendingWindowInDays`` begins. When this waiting period expires, AWS KMS deletes the primary key. For details, see `Deleting multi-Region keys <https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html>`_ in the *AWS Key Management Service Developer Guide* . You cannot use a CloudFormation template to cancel deletion of the KMS key after you remove it from the stack, regardless of the waiting period. If you specify a KMS key in your template, even one with the same name, CloudFormation creates a new KMS key. To cancel deletion of a KMS key, use the AWS KMS console or the `CancelKeyDeletion <https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html>`_ operation. For information about the ``Pending Deletion`` and ``Pending Replica Deletion`` key states, see `Key state: Effect on your KMS key <https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html>`_ in the *AWS Key Management Service Developer Guide* . For more information about deleting KMS keys, see the `ScheduleKeyDeletion <https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html>`_ operation in the *AWS Key Management Service API Reference* and `Deleting KMS keys <https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html>`_ in the *AWS Key Management Service Developer Guide* .
1056
+ :param rotation_period_in_days: The number of days between each automatic rotation. The default value is 365 days. Default: - 365
1038
1057
  :param tags: Assigns one or more tags to the replica key. .. epigraph:: Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see `ABAC for AWS KMS <https://docs.aws.amazon.com/kms/latest/developerguide/abac.html>`_ in the *AWS Key Management Service Developer Guide* . For information about tags in AWS KMS , see `Tagging keys <https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html>`_ in the *AWS Key Management Service Developer Guide* . For information about tags in CloudFormation, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
1039
1058
 
1040
1059
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html
@@ -1059,6 +1078,7 @@ class CfnKeyProps:
1059
1078
  multi_region=False,
1060
1079
  origin="origin",
1061
1080
  pending_window_in_days=123,
1081
+ rotation_period_in_days=123,
1062
1082
  tags=[CfnTag(
1063
1083
  key="key",
1064
1084
  value="value"
@@ -1077,6 +1097,7 @@ class CfnKeyProps:
1077
1097
  check_type(argname="argument multi_region", value=multi_region, expected_type=type_hints["multi_region"])
1078
1098
  check_type(argname="argument origin", value=origin, expected_type=type_hints["origin"])
1079
1099
  check_type(argname="argument pending_window_in_days", value=pending_window_in_days, expected_type=type_hints["pending_window_in_days"])
1100
+ check_type(argname="argument rotation_period_in_days", value=rotation_period_in_days, expected_type=type_hints["rotation_period_in_days"])
1080
1101
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1081
1102
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1082
1103
  if bypass_policy_lockout_safety_check is not None:
@@ -1099,6 +1120,8 @@ class CfnKeyProps:
1099
1120
  self._values["origin"] = origin
1100
1121
  if pending_window_in_days is not None:
1101
1122
  self._values["pending_window_in_days"] = pending_window_in_days
1123
+ if rotation_period_in_days is not None:
1124
+ self._values["rotation_period_in_days"] = rotation_period_in_days
1102
1125
  if tags is not None:
1103
1126
  self._values["tags"] = tags
1104
1127
 
@@ -1326,6 +1349,19 @@ class CfnKeyProps:
1326
1349
  result = self._values.get("pending_window_in_days")
1327
1350
  return typing.cast(typing.Optional[jsii.Number], result)
1328
1351
 
1352
+ @builtins.property
1353
+ def rotation_period_in_days(self) -> typing.Optional[jsii.Number]:
1354
+ '''The number of days between each automatic rotation.
1355
+
1356
+ The default value is 365 days.
1357
+
1358
+ :default: - 365
1359
+
1360
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-rotationperiodindays
1361
+ '''
1362
+ result = self._values.get("rotation_period_in_days")
1363
+ return typing.cast(typing.Optional[jsii.Number], result)
1364
+
1329
1365
  @builtins.property
1330
1366
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1331
1367
  '''Assigns one or more tags to the replica key.
@@ -3186,6 +3222,7 @@ def _typecheckingstub__5ea678e9e5a947601d16e5bb11fec3683fbb15bba768bee0b88be7e19
3186
3222
  multi_region: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3187
3223
  origin: typing.Optional[builtins.str] = None,
3188
3224
  pending_window_in_days: typing.Optional[jsii.Number] = None,
3225
+ rotation_period_in_days: typing.Optional[jsii.Number] = None,
3189
3226
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3190
3227
  ) -> None:
3191
3228
  """Type checking stubs"""
@@ -3263,6 +3300,12 @@ def _typecheckingstub__1d3e524eda3827ec1d53e329afc207f3ef954caf7cf407b25faef721f
3263
3300
  """Type checking stubs"""
3264
3301
  pass
3265
3302
 
3303
+ def _typecheckingstub__3b766cb0a8ed53bed340510bfb429fb6a5f36d2f63f9c7718fb1f0c92f2fbc59(
3304
+ value: typing.Optional[jsii.Number],
3305
+ ) -> None:
3306
+ """Type checking stubs"""
3307
+ pass
3308
+
3266
3309
  def _typecheckingstub__b85648b8166c62900697e128ab3a35c1360fdab37323145ed7b7c76dd91c4576(
3267
3310
  value: typing.Optional[typing.List[_CfnTag_f6864754]],
3268
3311
  ) -> None:
@@ -3281,6 +3324,7 @@ def _typecheckingstub__52751771c8b3e52917eaf0c78bad67c065fa3f95795e92f5eab3e92ce
3281
3324
  multi_region: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3282
3325
  origin: typing.Optional[builtins.str] = None,
3283
3326
  pending_window_in_days: typing.Optional[jsii.Number] = None,
3327
+ rotation_period_in_days: typing.Optional[jsii.Number] = None,
3284
3328
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3285
3329
  ) -> None:
3286
3330
  """Type checking stubs"""
@@ -2917,6 +2917,15 @@ class CfnAlias(
2917
2917
  '''The CloudFormation resource type name for this resource class.'''
2918
2918
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
2919
2919
 
2920
+ @builtins.property
2921
+ @jsii.member(jsii_name="attrAliasArn")
2922
+ def attr_alias_arn(self) -> builtins.str:
2923
+ '''Lambda Alias ARN generated by the service.
2924
+
2925
+ :cloudformationAttribute: AliasArn
2926
+ '''
2927
+ return typing.cast(builtins.str, jsii.get(self, "attrAliasArn"))
2928
+
2920
2929
  @builtins.property
2921
2930
  @jsii.member(jsii_name="attrId")
2922
2931
  def attr_id(self) -> builtins.str:
@@ -46,6 +46,7 @@ import constructs as _constructs_77d1e7e8
46
46
  from .. import (
47
47
  CfnResource as _CfnResource_9df397a6,
48
48
  IInspectable as _IInspectable_c2943556,
49
+ IResolvable as _IResolvable_da3f097b,
49
50
  ITaggable as _ITaggable_36806126,
50
51
  TagManager as _TagManager_0a598cb3,
51
52
  TreeInspector as _TreeInspector_488e0dd5,
@@ -84,6 +85,14 @@ class CfnLink(
84
85
 
85
86
  # the properties below are optional
86
87
  label_template="labelTemplate",
88
+ link_configuration=oam.CfnLink.LinkConfigurationProperty(
89
+ log_group_configuration=oam.CfnLink.LinkFilterProperty(
90
+ filter="filter"
91
+ ),
92
+ metric_configuration=oam.CfnLink.LinkFilterProperty(
93
+ filter="filter"
94
+ )
95
+ ),
87
96
  tags={
88
97
  "tags_key": "tags"
89
98
  }
@@ -98,6 +107,7 @@ class CfnLink(
98
107
  resource_types: typing.Sequence[builtins.str],
99
108
  sink_identifier: builtins.str,
100
109
  label_template: typing.Optional[builtins.str] = None,
110
+ link_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLink.LinkConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
101
111
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
102
112
  ) -> None:
103
113
  '''
@@ -106,6 +116,7 @@ class CfnLink(
106
116
  :param resource_types: An array of strings that define which types of data that the source account shares with the monitoring account. Valid values are ``AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor`` .
107
117
  :param sink_identifier: The ARN of the sink in the monitoring account that you want to link to. You can use `ListSinks <https://docs.aws.amazon.com/OAM/latest/APIReference/API_ListSinks.html>`_ to find the ARNs of sinks.
108
118
  :param label_template: Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account. You can include the following variables in your template: - ``$AccountName`` is the name of the account - ``$AccountEmail`` is a globally-unique email address, which includes the email domain, such as ``mariagarcia@example.com`` - ``$AccountEmailNoDomain`` is an email address without the domain name, such as ``mariagarcia``
119
+ :param link_configuration:
109
120
  :param tags: An array of key-value pairs to apply to the link. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
110
121
  '''
111
122
  if __debug__:
@@ -116,6 +127,7 @@ class CfnLink(
116
127
  resource_types=resource_types,
117
128
  sink_identifier=sink_identifier,
118
129
  label_template=label_template,
130
+ link_configuration=link_configuration,
119
131
  tags=tags,
120
132
  )
121
133
 
@@ -223,6 +235,23 @@ class CfnLink(
223
235
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
224
236
  jsii.set(self, "labelTemplate", value)
225
237
 
238
+ @builtins.property
239
+ @jsii.member(jsii_name="linkConfiguration")
240
+ def link_configuration(
241
+ self,
242
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLink.LinkConfigurationProperty"]]:
243
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLink.LinkConfigurationProperty"]], jsii.get(self, "linkConfiguration"))
244
+
245
+ @link_configuration.setter
246
+ def link_configuration(
247
+ self,
248
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLink.LinkConfigurationProperty"]],
249
+ ) -> None:
250
+ if __debug__:
251
+ type_hints = typing.get_type_hints(_typecheckingstub__27fdc6d36999b24ee51a7ee604dfe60c82600027c0449d54ba66cc13499ab90c)
252
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
253
+ jsii.set(self, "linkConfiguration", value)
254
+
226
255
  @builtins.property
227
256
  @jsii.member(jsii_name="tagsRaw")
228
257
  def tags_raw(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
@@ -239,6 +268,134 @@ class CfnLink(
239
268
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
240
269
  jsii.set(self, "tagsRaw", value)
241
270
 
271
+ @jsii.data_type(
272
+ jsii_type="aws-cdk-lib.aws_oam.CfnLink.LinkConfigurationProperty",
273
+ jsii_struct_bases=[],
274
+ name_mapping={
275
+ "log_group_configuration": "logGroupConfiguration",
276
+ "metric_configuration": "metricConfiguration",
277
+ },
278
+ )
279
+ class LinkConfigurationProperty:
280
+ def __init__(
281
+ self,
282
+ *,
283
+ log_group_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLink.LinkFilterProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
284
+ metric_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLink.LinkFilterProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
285
+ ) -> None:
286
+ '''
287
+ :param log_group_configuration:
288
+ :param metric_configuration:
289
+
290
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html
291
+ :exampleMetadata: fixture=_generated
292
+
293
+ Example::
294
+
295
+ # The code below shows an example of how to instantiate this type.
296
+ # The values are placeholders you should change.
297
+ from aws_cdk import aws_oam as oam
298
+
299
+ link_configuration_property = oam.CfnLink.LinkConfigurationProperty(
300
+ log_group_configuration=oam.CfnLink.LinkFilterProperty(
301
+ filter="filter"
302
+ ),
303
+ metric_configuration=oam.CfnLink.LinkFilterProperty(
304
+ filter="filter"
305
+ )
306
+ )
307
+ '''
308
+ if __debug__:
309
+ type_hints = typing.get_type_hints(_typecheckingstub__ec2ec5a3ca147f06b311c2c2b0a7e72f655d6d296f564d1ae2c8d5d08d27c5d6)
310
+ check_type(argname="argument log_group_configuration", value=log_group_configuration, expected_type=type_hints["log_group_configuration"])
311
+ check_type(argname="argument metric_configuration", value=metric_configuration, expected_type=type_hints["metric_configuration"])
312
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
313
+ if log_group_configuration is not None:
314
+ self._values["log_group_configuration"] = log_group_configuration
315
+ if metric_configuration is not None:
316
+ self._values["metric_configuration"] = metric_configuration
317
+
318
+ @builtins.property
319
+ def log_group_configuration(
320
+ self,
321
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLink.LinkFilterProperty"]]:
322
+ '''
323
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html#cfn-oam-link-linkconfiguration-loggroupconfiguration
324
+ '''
325
+ result = self._values.get("log_group_configuration")
326
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLink.LinkFilterProperty"]], result)
327
+
328
+ @builtins.property
329
+ def metric_configuration(
330
+ self,
331
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLink.LinkFilterProperty"]]:
332
+ '''
333
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html#cfn-oam-link-linkconfiguration-metricconfiguration
334
+ '''
335
+ result = self._values.get("metric_configuration")
336
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnLink.LinkFilterProperty"]], result)
337
+
338
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
339
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
340
+
341
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
342
+ return not (rhs == self)
343
+
344
+ def __repr__(self) -> str:
345
+ return "LinkConfigurationProperty(%s)" % ", ".join(
346
+ k + "=" + repr(v) for k, v in self._values.items()
347
+ )
348
+
349
+ @jsii.data_type(
350
+ jsii_type="aws-cdk-lib.aws_oam.CfnLink.LinkFilterProperty",
351
+ jsii_struct_bases=[],
352
+ name_mapping={"filter": "filter"},
353
+ )
354
+ class LinkFilterProperty:
355
+ def __init__(self, *, filter: builtins.str) -> None:
356
+ '''
357
+ :param filter:
358
+
359
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkfilter.html
360
+ :exampleMetadata: fixture=_generated
361
+
362
+ Example::
363
+
364
+ # The code below shows an example of how to instantiate this type.
365
+ # The values are placeholders you should change.
366
+ from aws_cdk import aws_oam as oam
367
+
368
+ link_filter_property = oam.CfnLink.LinkFilterProperty(
369
+ filter="filter"
370
+ )
371
+ '''
372
+ if __debug__:
373
+ type_hints = typing.get_type_hints(_typecheckingstub__3a6822df441121f7f9fd0663c8f7c4745082bfd61605fab5fc6e5ce1c75b1f52)
374
+ check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
375
+ self._values: typing.Dict[builtins.str, typing.Any] = {
376
+ "filter": filter,
377
+ }
378
+
379
+ @builtins.property
380
+ def filter(self) -> builtins.str:
381
+ '''
382
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkfilter.html#cfn-oam-link-linkfilter-filter
383
+ '''
384
+ result = self._values.get("filter")
385
+ assert result is not None, "Required property 'filter' is missing"
386
+ return typing.cast(builtins.str, result)
387
+
388
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
389
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
390
+
391
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
392
+ return not (rhs == self)
393
+
394
+ def __repr__(self) -> str:
395
+ return "LinkFilterProperty(%s)" % ", ".join(
396
+ k + "=" + repr(v) for k, v in self._values.items()
397
+ )
398
+
242
399
 
243
400
  @jsii.data_type(
244
401
  jsii_type="aws-cdk-lib.aws_oam.CfnLinkProps",
@@ -247,6 +404,7 @@ class CfnLink(
247
404
  "resource_types": "resourceTypes",
248
405
  "sink_identifier": "sinkIdentifier",
249
406
  "label_template": "labelTemplate",
407
+ "link_configuration": "linkConfiguration",
250
408
  "tags": "tags",
251
409
  },
252
410
  )
@@ -257,6 +415,7 @@ class CfnLinkProps:
257
415
  resource_types: typing.Sequence[builtins.str],
258
416
  sink_identifier: builtins.str,
259
417
  label_template: typing.Optional[builtins.str] = None,
418
+ link_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLink.LinkConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
260
419
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
261
420
  ) -> None:
262
421
  '''Properties for defining a ``CfnLink``.
@@ -264,6 +423,7 @@ class CfnLinkProps:
264
423
  :param resource_types: An array of strings that define which types of data that the source account shares with the monitoring account. Valid values are ``AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor`` .
265
424
  :param sink_identifier: The ARN of the sink in the monitoring account that you want to link to. You can use `ListSinks <https://docs.aws.amazon.com/OAM/latest/APIReference/API_ListSinks.html>`_ to find the ARNs of sinks.
266
425
  :param label_template: Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account. You can include the following variables in your template: - ``$AccountName`` is the name of the account - ``$AccountEmail`` is a globally-unique email address, which includes the email domain, such as ``mariagarcia@example.com`` - ``$AccountEmailNoDomain`` is an email address without the domain name, such as ``mariagarcia``
426
+ :param link_configuration:
267
427
  :param tags: An array of key-value pairs to apply to the link. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
268
428
 
269
429
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html
@@ -281,6 +441,14 @@ class CfnLinkProps:
281
441
 
282
442
  # the properties below are optional
283
443
  label_template="labelTemplate",
444
+ link_configuration=oam.CfnLink.LinkConfigurationProperty(
445
+ log_group_configuration=oam.CfnLink.LinkFilterProperty(
446
+ filter="filter"
447
+ ),
448
+ metric_configuration=oam.CfnLink.LinkFilterProperty(
449
+ filter="filter"
450
+ )
451
+ ),
284
452
  tags={
285
453
  "tags_key": "tags"
286
454
  }
@@ -291,6 +459,7 @@ class CfnLinkProps:
291
459
  check_type(argname="argument resource_types", value=resource_types, expected_type=type_hints["resource_types"])
292
460
  check_type(argname="argument sink_identifier", value=sink_identifier, expected_type=type_hints["sink_identifier"])
293
461
  check_type(argname="argument label_template", value=label_template, expected_type=type_hints["label_template"])
462
+ check_type(argname="argument link_configuration", value=link_configuration, expected_type=type_hints["link_configuration"])
294
463
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
295
464
  self._values: typing.Dict[builtins.str, typing.Any] = {
296
465
  "resource_types": resource_types,
@@ -298,6 +467,8 @@ class CfnLinkProps:
298
467
  }
299
468
  if label_template is not None:
300
469
  self._values["label_template"] = label_template
470
+ if link_configuration is not None:
471
+ self._values["link_configuration"] = link_configuration
301
472
  if tags is not None:
302
473
  self._values["tags"] = tags
303
474
 
@@ -340,6 +511,16 @@ class CfnLinkProps:
340
511
  result = self._values.get("label_template")
341
512
  return typing.cast(typing.Optional[builtins.str], result)
342
513
 
514
+ @builtins.property
515
+ def link_configuration(
516
+ self,
517
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLink.LinkConfigurationProperty]]:
518
+ '''
519
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration
520
+ '''
521
+ result = self._values.get("link_configuration")
522
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLink.LinkConfigurationProperty]], result)
523
+
343
524
  @builtins.property
344
525
  def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
345
526
  '''An array of key-value pairs to apply to the link.
@@ -635,6 +816,7 @@ def _typecheckingstub__2ffbd6521de55eb2e3d4f2bc8edac2d144f850a53dbdfd3dac4b15916
635
816
  resource_types: typing.Sequence[builtins.str],
636
817
  sink_identifier: builtins.str,
637
818
  label_template: typing.Optional[builtins.str] = None,
819
+ link_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLink.LinkConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
638
820
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
639
821
  ) -> None:
640
822
  """Type checking stubs"""
@@ -670,17 +852,39 @@ def _typecheckingstub__997e0a25bd896cf32312772dad16f8a1714d949b05e540d8b70c8452e
670
852
  """Type checking stubs"""
671
853
  pass
672
854
 
855
+ def _typecheckingstub__27fdc6d36999b24ee51a7ee604dfe60c82600027c0449d54ba66cc13499ab90c(
856
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnLink.LinkConfigurationProperty]],
857
+ ) -> None:
858
+ """Type checking stubs"""
859
+ pass
860
+
673
861
  def _typecheckingstub__db8d2dd2bb0af63f05d76d96179bc7f7bcb803b9dedeabd14ee88e08a8734269(
674
862
  value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
675
863
  ) -> None:
676
864
  """Type checking stubs"""
677
865
  pass
678
866
 
867
+ def _typecheckingstub__ec2ec5a3ca147f06b311c2c2b0a7e72f655d6d296f564d1ae2c8d5d08d27c5d6(
868
+ *,
869
+ log_group_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLink.LinkFilterProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
870
+ metric_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLink.LinkFilterProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
871
+ ) -> None:
872
+ """Type checking stubs"""
873
+ pass
874
+
875
+ def _typecheckingstub__3a6822df441121f7f9fd0663c8f7c4745082bfd61605fab5fc6e5ce1c75b1f52(
876
+ *,
877
+ filter: builtins.str,
878
+ ) -> None:
879
+ """Type checking stubs"""
880
+ pass
881
+
679
882
  def _typecheckingstub__debdd90801a5b490b9ec98da9bb17f5329c1db3816f558321a3ce7bdfb7aab12(
680
883
  *,
681
884
  resource_types: typing.Sequence[builtins.str],
682
885
  sink_identifier: builtins.str,
683
886
  label_template: typing.Optional[builtins.str] = None,
887
+ link_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLink.LinkConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
684
888
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
685
889
  ) -> None:
686
890
  """Type checking stubs"""