aws-cdk-lib 2.155.0__py3-none-any.whl → 2.157.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 (66) hide show
  1. aws_cdk/__init__.py +28 -24
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.155.0.jsii.tgz → aws-cdk-lib@2.157.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +10 -75
  5. aws_cdk/aws_amplify/__init__.py +106 -0
  6. aws_cdk/aws_apigatewayv2/__init__.py +81 -13
  7. aws_cdk/aws_appintegrations/__init__.py +14 -14
  8. aws_cdk/aws_applicationsignals/__init__.py +750 -1
  9. aws_cdk/aws_appsync/__init__.py +50 -18
  10. aws_cdk/aws_autoscaling/__init__.py +6 -6
  11. aws_cdk/aws_backup/__init__.py +39 -0
  12. aws_cdk/aws_batch/__init__.py +41 -0
  13. aws_cdk/aws_bedrock/__init__.py +1528 -91
  14. aws_cdk/aws_chatbot/__init__.py +6 -6
  15. aws_cdk/aws_cloudformation/__init__.py +22 -22
  16. aws_cdk/aws_cloudfront/__init__.py +650 -57
  17. aws_cdk/aws_cloudfront/experimental/__init__.py +30 -3
  18. aws_cdk/aws_cloudfront_origins/__init__.py +2034 -91
  19. aws_cdk/aws_codebuild/__init__.py +1 -1
  20. aws_cdk/aws_datasync/__init__.py +40 -29
  21. aws_cdk/aws_docdb/__init__.py +78 -6
  22. aws_cdk/aws_ec2/__init__.py +397 -75
  23. aws_cdk/aws_ecs/__init__.py +271 -101
  24. aws_cdk/aws_ecs_patterns/__init__.py +129 -11
  25. aws_cdk/aws_eks/__init__.py +40 -4
  26. aws_cdk/aws_elasticloadbalancingv2/__init__.py +26 -50
  27. aws_cdk/aws_entityresolution/__init__.py +117 -4
  28. aws_cdk/aws_events/__init__.py +40 -14
  29. aws_cdk/aws_events_targets/__init__.py +357 -0
  30. aws_cdk/aws_glue/__init__.py +0 -8
  31. aws_cdk/aws_groundstation/__init__.py +27 -16
  32. aws_cdk/aws_guardduty/__init__.py +26 -14
  33. aws_cdk/aws_iam/__init__.py +7 -8
  34. aws_cdk/aws_iotfleetwise/__init__.py +108 -0
  35. aws_cdk/aws_kms/__init__.py +53 -10
  36. aws_cdk/aws_lambda/__init__.py +147 -17
  37. aws_cdk/aws_lambda_nodejs/__init__.py +30 -3
  38. aws_cdk/aws_macie/__init__.py +4 -4
  39. aws_cdk/aws_medialive/__init__.py +348 -0
  40. aws_cdk/aws_mediapackagev2/__init__.py +38 -38
  41. aws_cdk/aws_neptune/__init__.py +14 -8
  42. aws_cdk/aws_opensearchservice/__init__.py +194 -0
  43. aws_cdk/aws_pcaconnectorscep/__init__.py +884 -0
  44. aws_cdk/aws_personalize/__init__.py +2 -2
  45. aws_cdk/aws_pipes/__init__.py +22 -22
  46. aws_cdk/aws_qbusiness/__init__.py +675 -6
  47. aws_cdk/aws_quicksight/__init__.py +3285 -0
  48. aws_cdk/aws_rds/__init__.py +24 -0
  49. aws_cdk/aws_s3/__init__.py +13 -14
  50. aws_cdk/aws_sagemaker/__init__.py +1167 -0
  51. aws_cdk/aws_secretsmanager/__init__.py +2 -3
  52. aws_cdk/aws_securityhub/__init__.py +108 -103
  53. aws_cdk/aws_ses/__init__.py +31 -0
  54. aws_cdk/aws_sns/__init__.py +19 -13
  55. aws_cdk/aws_ssm/__init__.py +10 -6
  56. aws_cdk/aws_ssmquicksetup/__init__.py +967 -0
  57. aws_cdk/aws_stepfunctions_tasks/__init__.py +106 -45
  58. aws_cdk/aws_synthetics/__init__.py +13 -0
  59. aws_cdk/cx_api/__init__.py +16 -0
  60. aws_cdk/triggers/__init__.py +30 -3
  61. {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/METADATA +1 -1
  62. {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/RECORD +66 -64
  63. {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/LICENSE +0 -0
  64. {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/NOTICE +0 -0
  65. {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/WHEEL +0 -0
  66. {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/top_level.txt +0 -0
@@ -1139,7 +1139,7 @@ class CfnFilter(
1139
1139
  '''
1140
1140
  :param scope: Scope in which this resource is defined.
1141
1141
  :param id: Construct identifier for this resource (unique in its scope).
1142
- :param detector_id: The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
1142
+ :param detector_id: The detector ID associated with the GuardDuty account for which you want to create a filter. To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
1143
1143
  :param finding_criteria: Represents the criteria to be used in the filter for querying findings.
1144
1144
  :param name: The name of the filter. Valid characters include period (.), underscore (_), dash (-), and alphanumeric characters. A whitespace is considered to be an invalid character.
1145
1145
  :param action: Specifies the action that is to be applied to the findings that match the filter.
@@ -1207,7 +1207,7 @@ class CfnFilter(
1207
1207
  @builtins.property
1208
1208
  @jsii.member(jsii_name="detectorId")
1209
1209
  def detector_id(self) -> builtins.str:
1210
- '''The ID of the detector belonging to the GuardDuty account that you want to create a filter for.'''
1210
+ '''The detector ID associated with the GuardDuty account for which you want to create a filter.'''
1211
1211
  return typing.cast(builtins.str, jsii.get(self, "detectorId"))
1212
1212
 
1213
1213
  @detector_id.setter
@@ -1758,7 +1758,7 @@ class CfnFilterProps:
1758
1758
  ) -> None:
1759
1759
  '''Properties for defining a ``CfnFilter``.
1760
1760
 
1761
- :param detector_id: The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
1761
+ :param detector_id: The detector ID associated with the GuardDuty account for which you want to create a filter. To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
1762
1762
  :param finding_criteria: Represents the criteria to be used in the filter for querying findings.
1763
1763
  :param name: The name of the filter. Valid characters include period (.), underscore (_), dash (-), and alphanumeric characters. A whitespace is considered to be an invalid character.
1764
1764
  :param action: Specifies the action that is to be applied to the findings that match the filter.
@@ -1833,7 +1833,10 @@ class CfnFilterProps:
1833
1833
 
1834
1834
  @builtins.property
1835
1835
  def detector_id(self) -> builtins.str:
1836
- '''The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
1836
+ '''The detector ID associated with the GuardDuty account for which you want to create a filter.
1837
+
1838
+ To find the ``detectorId`` in the current Region, see the
1839
+ Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
1837
1840
 
1838
1841
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-detectorid
1839
1842
  '''
@@ -1976,7 +1979,7 @@ class CfnIPSet(
1976
1979
  :param format: The format of the file that contains the IPSet.
1977
1980
  :param location: The URI of the file that contains the IPSet.
1978
1981
  :param activate: Indicates whether or not GuardDuty uses the ``IPSet`` .
1979
- :param detector_id: The unique ID of the detector of the GuardDuty account that you want to create an IPSet for.
1982
+ :param detector_id: The unique ID of the detector of the GuardDuty account for which you want to create an IPSet. To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
1980
1983
  :param name: The user-friendly name to identify the IPSet. Allowed characters are alphanumeric, whitespace, dash (-), and underscores (_).
1981
1984
  :param tags: The tags to be added to a new IP set resource. Each tag consists of a key and an optional value, both of which you define. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
1982
1985
  '''
@@ -2091,7 +2094,7 @@ class CfnIPSet(
2091
2094
  @builtins.property
2092
2095
  @jsii.member(jsii_name="detectorId")
2093
2096
  def detector_id(self) -> typing.Optional[builtins.str]:
2094
- '''The unique ID of the detector of the GuardDuty account that you want to create an IPSet for.'''
2097
+ '''The unique ID of the detector of the GuardDuty account for which you want to create an IPSet.'''
2095
2098
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "detectorId"))
2096
2099
 
2097
2100
  @detector_id.setter
@@ -2156,7 +2159,7 @@ class CfnIPSetProps:
2156
2159
  :param format: The format of the file that contains the IPSet.
2157
2160
  :param location: The URI of the file that contains the IPSet.
2158
2161
  :param activate: Indicates whether or not GuardDuty uses the ``IPSet`` .
2159
- :param detector_id: The unique ID of the detector of the GuardDuty account that you want to create an IPSet for.
2162
+ :param detector_id: The unique ID of the detector of the GuardDuty account for which you want to create an IPSet. To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
2160
2163
  :param name: The user-friendly name to identify the IPSet. Allowed characters are alphanumeric, whitespace, dash (-), and underscores (_).
2161
2164
  :param tags: The tags to be added to a new IP set resource. Each tag consists of a key and an optional value, both of which you define. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
2162
2165
 
@@ -2237,7 +2240,10 @@ class CfnIPSetProps:
2237
2240
 
2238
2241
  @builtins.property
2239
2242
  def detector_id(self) -> typing.Optional[builtins.str]:
2240
- '''The unique ID of the detector of the GuardDuty account that you want to create an IPSet for.
2243
+ '''The unique ID of the detector of the GuardDuty account for which you want to create an IPSet.
2244
+
2245
+ To find the ``detectorId`` in the current Region, see the
2246
+ Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
2241
2247
 
2242
2248
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-detectorid
2243
2249
  '''
@@ -3071,7 +3077,7 @@ class CfnMaster(
3071
3077
  '''
3072
3078
  :param scope: Scope in which this resource is defined.
3073
3079
  :param id: Construct identifier for this resource (unique in its scope).
3074
- :param detector_id: The unique ID of the detector of the GuardDuty member account.
3080
+ :param detector_id: The unique ID of the detector of the GuardDuty member account. To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
3075
3081
  :param master_id: The AWS account ID of the account designated as the GuardDuty administrator account.
3076
3082
  :param invitation_id: The ID of the invitation that is sent to the account designated as a member account. You can find the invitation ID by running the `ListInvitations <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListInvitations.html>`_ in the *GuardDuty API Reference* .
3077
3083
  '''
@@ -3179,7 +3185,7 @@ class CfnMasterProps:
3179
3185
  ) -> None:
3180
3186
  '''Properties for defining a ``CfnMaster``.
3181
3187
 
3182
- :param detector_id: The unique ID of the detector of the GuardDuty member account.
3188
+ :param detector_id: The unique ID of the detector of the GuardDuty member account. To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
3183
3189
  :param master_id: The AWS account ID of the account designated as the GuardDuty administrator account.
3184
3190
  :param invitation_id: The ID of the invitation that is sent to the account designated as a member account. You can find the invitation ID by running the `ListInvitations <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListInvitations.html>`_ in the *GuardDuty API Reference* .
3185
3191
 
@@ -3216,6 +3222,9 @@ class CfnMasterProps:
3216
3222
  def detector_id(self) -> builtins.str:
3217
3223
  '''The unique ID of the detector of the GuardDuty member account.
3218
3224
 
3225
+ To find the ``detectorId`` in the current Region, see the
3226
+ Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
3227
+
3219
3228
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-detectorid
3220
3229
  '''
3221
3230
  result = self._values.get("detector_id")
@@ -3641,7 +3650,7 @@ class CfnThreatIntelSet(
3641
3650
  :param format: The format of the file that contains the ThreatIntelSet.
3642
3651
  :param location: The URI of the file that contains the ThreatIntelSet.
3643
3652
  :param activate: A Boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet.
3644
- :param detector_id: The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for.
3653
+ :param detector_id: The unique ID of the detector of the GuardDuty account for which you want to create a ``ThreatIntelSet`` . To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
3645
3654
  :param name: A user-friendly ThreatIntelSet name displayed in all findings that are generated by activity that involves IP addresses included in this ThreatIntelSet.
3646
3655
  :param tags: The tags to be added to a new threat list resource. Each tag consists of a key and an optional value, both of which you define. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
3647
3656
  '''
@@ -3757,7 +3766,7 @@ class CfnThreatIntelSet(
3757
3766
  @builtins.property
3758
3767
  @jsii.member(jsii_name="detectorId")
3759
3768
  def detector_id(self) -> typing.Optional[builtins.str]:
3760
- '''The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for.'''
3769
+ '''The unique ID of the detector of the GuardDuty account for which you want to create a ``ThreatIntelSet`` .'''
3761
3770
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "detectorId"))
3762
3771
 
3763
3772
  @detector_id.setter
@@ -3822,7 +3831,7 @@ class CfnThreatIntelSetProps:
3822
3831
  :param format: The format of the file that contains the ThreatIntelSet.
3823
3832
  :param location: The URI of the file that contains the ThreatIntelSet.
3824
3833
  :param activate: A Boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet.
3825
- :param detector_id: The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for.
3834
+ :param detector_id: The unique ID of the detector of the GuardDuty account for which you want to create a ``ThreatIntelSet`` . To find the ``detectorId`` in the current Region, see the Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
3826
3835
  :param name: A user-friendly ThreatIntelSet name displayed in all findings that are generated by activity that involves IP addresses included in this ThreatIntelSet.
3827
3836
  :param tags: The tags to be added to a new threat list resource. Each tag consists of a key and an optional value, both of which you define. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
3828
3837
 
@@ -3903,7 +3912,10 @@ class CfnThreatIntelSetProps:
3903
3912
 
3904
3913
  @builtins.property
3905
3914
  def detector_id(self) -> typing.Optional[builtins.str]:
3906
- '''The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for.
3915
+ '''The unique ID of the detector of the GuardDuty account for which you want to create a ``ThreatIntelSet`` .
3916
+
3917
+ To find the ``detectorId`` in the current Region, see the
3918
+ Settings page in the GuardDuty console, or run the `ListDetectors <https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html>`_ API.
3907
3919
 
3908
3920
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-detectorid
3909
3921
  '''
@@ -13237,17 +13237,16 @@ class ServicePrincipal(
13237
13237
 
13238
13238
  Example::
13239
13239
 
13240
- lambda_role = iam.Role(self, "Role",
13241
- assumed_by=iam.ServicePrincipal("lambda.amazonaws.com"),
13242
- description="Example role..."
13240
+ # definition: sfn.IChainable
13241
+ role = iam.Role(self, "Role",
13242
+ assumed_by=iam.ServicePrincipal("lambda.amazonaws.com")
13243
13243
  )
13244
-
13245
- stream = kinesis.Stream(self, "MyEncryptedStream",
13246
- encryption=kinesis.StreamEncryption.KMS
13244
+ state_machine = sfn.StateMachine(self, "StateMachine",
13245
+ definition_body=sfn.DefinitionBody.from_chainable(definition)
13247
13246
  )
13248
13247
 
13249
- # give lambda permissions to read stream
13250
- stream.grant_read(lambda_role)
13248
+ # Give role permission to get execution history of ALL executions for the state machine
13249
+ state_machine.grant_execution(role, "states:GetExecutionHistory")
13251
13250
  '''
13252
13251
 
13253
13252
  def __init__(
@@ -98,6 +98,10 @@ class CfnCampaign(
98
98
  # the properties below are optional
99
99
  compression="compression",
100
100
  data_destination_configs=[iotfleetwise.CfnCampaign.DataDestinationConfigProperty(
101
+ mqtt_topic_config=iotfleetwise.CfnCampaign.MqttTopicConfigProperty(
102
+ execution_role_arn="executionRoleArn",
103
+ mqtt_topic_arn="mqttTopicArn"
104
+ ),
101
105
  s3_config=iotfleetwise.CfnCampaign.S3ConfigProperty(
102
106
  bucket_arn="bucketArn",
103
107
 
@@ -733,6 +737,7 @@ class CfnCampaign(
733
737
  jsii_type="aws-cdk-lib.aws_iotfleetwise.CfnCampaign.DataDestinationConfigProperty",
734
738
  jsii_struct_bases=[],
735
739
  name_mapping={
740
+ "mqtt_topic_config": "mqttTopicConfig",
736
741
  "s3_config": "s3Config",
737
742
  "timestream_config": "timestreamConfig",
738
743
  },
@@ -741,6 +746,7 @@ class CfnCampaign(
741
746
  def __init__(
742
747
  self,
743
748
  *,
749
+ mqtt_topic_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCampaign.MqttTopicConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
744
750
  s3_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCampaign.S3ConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
745
751
  timestream_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCampaign.TimestreamConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
746
752
  ) -> None:
@@ -748,6 +754,7 @@ class CfnCampaign(
748
754
 
749
755
  You can send data to be stored in Amazon S3 or Amazon Timestream .
750
756
 
757
+ :param mqtt_topic_config:
751
758
  :param s3_config: (Optional) The Amazon S3 bucket where the AWS IoT FleetWise campaign sends data.
752
759
  :param timestream_config: (Optional) The Amazon Timestream table where the campaign sends data.
753
760
 
@@ -761,6 +768,10 @@ class CfnCampaign(
761
768
  from aws_cdk import aws_iotfleetwise as iotfleetwise
762
769
 
763
770
  data_destination_config_property = iotfleetwise.CfnCampaign.DataDestinationConfigProperty(
771
+ mqtt_topic_config=iotfleetwise.CfnCampaign.MqttTopicConfigProperty(
772
+ execution_role_arn="executionRoleArn",
773
+ mqtt_topic_arn="mqttTopicArn"
774
+ ),
764
775
  s3_config=iotfleetwise.CfnCampaign.S3ConfigProperty(
765
776
  bucket_arn="bucketArn",
766
777
 
@@ -777,14 +788,27 @@ class CfnCampaign(
777
788
  '''
778
789
  if __debug__:
779
790
  type_hints = typing.get_type_hints(_typecheckingstub__a76d3ecac8a3286ba64142d7bb2621dd82495be58438bdb339be1559bb8129f3)
791
+ check_type(argname="argument mqtt_topic_config", value=mqtt_topic_config, expected_type=type_hints["mqtt_topic_config"])
780
792
  check_type(argname="argument s3_config", value=s3_config, expected_type=type_hints["s3_config"])
781
793
  check_type(argname="argument timestream_config", value=timestream_config, expected_type=type_hints["timestream_config"])
782
794
  self._values: typing.Dict[builtins.str, typing.Any] = {}
795
+ if mqtt_topic_config is not None:
796
+ self._values["mqtt_topic_config"] = mqtt_topic_config
783
797
  if s3_config is not None:
784
798
  self._values["s3_config"] = s3_config
785
799
  if timestream_config is not None:
786
800
  self._values["timestream_config"] = timestream_config
787
801
 
802
+ @builtins.property
803
+ def mqtt_topic_config(
804
+ self,
805
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCampaign.MqttTopicConfigProperty"]]:
806
+ '''
807
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-campaign-datadestinationconfig.html#cfn-iotfleetwise-campaign-datadestinationconfig-mqtttopicconfig
808
+ '''
809
+ result = self._values.get("mqtt_topic_config")
810
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCampaign.MqttTopicConfigProperty"]], result)
811
+
788
812
  @builtins.property
789
813
  def s3_config(
790
814
  self,
@@ -818,6 +842,77 @@ class CfnCampaign(
818
842
  k + "=" + repr(v) for k, v in self._values.items()
819
843
  )
820
844
 
845
+ @jsii.data_type(
846
+ jsii_type="aws-cdk-lib.aws_iotfleetwise.CfnCampaign.MqttTopicConfigProperty",
847
+ jsii_struct_bases=[],
848
+ name_mapping={
849
+ "execution_role_arn": "executionRoleArn",
850
+ "mqtt_topic_arn": "mqttTopicArn",
851
+ },
852
+ )
853
+ class MqttTopicConfigProperty:
854
+ def __init__(
855
+ self,
856
+ *,
857
+ execution_role_arn: builtins.str,
858
+ mqtt_topic_arn: builtins.str,
859
+ ) -> None:
860
+ '''
861
+ :param execution_role_arn:
862
+ :param mqtt_topic_arn:
863
+
864
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-campaign-mqtttopicconfig.html
865
+ :exampleMetadata: fixture=_generated
866
+
867
+ Example::
868
+
869
+ # The code below shows an example of how to instantiate this type.
870
+ # The values are placeholders you should change.
871
+ from aws_cdk import aws_iotfleetwise as iotfleetwise
872
+
873
+ mqtt_topic_config_property = iotfleetwise.CfnCampaign.MqttTopicConfigProperty(
874
+ execution_role_arn="executionRoleArn",
875
+ mqtt_topic_arn="mqttTopicArn"
876
+ )
877
+ '''
878
+ if __debug__:
879
+ type_hints = typing.get_type_hints(_typecheckingstub__209686ec18cb4107b2d1b131e663816da747fda2930c62c84213e6efecdbbb97)
880
+ check_type(argname="argument execution_role_arn", value=execution_role_arn, expected_type=type_hints["execution_role_arn"])
881
+ check_type(argname="argument mqtt_topic_arn", value=mqtt_topic_arn, expected_type=type_hints["mqtt_topic_arn"])
882
+ self._values: typing.Dict[builtins.str, typing.Any] = {
883
+ "execution_role_arn": execution_role_arn,
884
+ "mqtt_topic_arn": mqtt_topic_arn,
885
+ }
886
+
887
+ @builtins.property
888
+ def execution_role_arn(self) -> builtins.str:
889
+ '''
890
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-campaign-mqtttopicconfig.html#cfn-iotfleetwise-campaign-mqtttopicconfig-executionrolearn
891
+ '''
892
+ result = self._values.get("execution_role_arn")
893
+ assert result is not None, "Required property 'execution_role_arn' is missing"
894
+ return typing.cast(builtins.str, result)
895
+
896
+ @builtins.property
897
+ def mqtt_topic_arn(self) -> builtins.str:
898
+ '''
899
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-campaign-mqtttopicconfig.html#cfn-iotfleetwise-campaign-mqtttopicconfig-mqtttopicarn
900
+ '''
901
+ result = self._values.get("mqtt_topic_arn")
902
+ assert result is not None, "Required property 'mqtt_topic_arn' is missing"
903
+ return typing.cast(builtins.str, result)
904
+
905
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
906
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
907
+
908
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
909
+ return not (rhs == self)
910
+
911
+ def __repr__(self) -> str:
912
+ return "MqttTopicConfigProperty(%s)" % ", ".join(
913
+ k + "=" + repr(v) for k, v in self._values.items()
914
+ )
915
+
821
916
  @jsii.data_type(
822
917
  jsii_type="aws-cdk-lib.aws_iotfleetwise.CfnCampaign.S3ConfigProperty",
823
918
  jsii_struct_bases=[],
@@ -1260,6 +1355,10 @@ class CfnCampaignProps:
1260
1355
  # the properties below are optional
1261
1356
  compression="compression",
1262
1357
  data_destination_configs=[iotfleetwise.CfnCampaign.DataDestinationConfigProperty(
1358
+ mqtt_topic_config=iotfleetwise.CfnCampaign.MqttTopicConfigProperty(
1359
+ execution_role_arn="executionRoleArn",
1360
+ mqtt_topic_arn="mqttTopicArn"
1361
+ ),
1263
1362
  s3_config=iotfleetwise.CfnCampaign.S3ConfigProperty(
1264
1363
  bucket_arn="bucketArn",
1265
1364
 
@@ -6037,12 +6136,21 @@ def _typecheckingstub__dd3351de9470a98f13f006dd95deedef6c30dbfc08cdfe7bde2b9d950
6037
6136
 
6038
6137
  def _typecheckingstub__a76d3ecac8a3286ba64142d7bb2621dd82495be58438bdb339be1559bb8129f3(
6039
6138
  *,
6139
+ mqtt_topic_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCampaign.MqttTopicConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6040
6140
  s3_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCampaign.S3ConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6041
6141
  timestream_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCampaign.TimestreamConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6042
6142
  ) -> None:
6043
6143
  """Type checking stubs"""
6044
6144
  pass
6045
6145
 
6146
+ def _typecheckingstub__209686ec18cb4107b2d1b131e663816da747fda2930c62c84213e6efecdbbb97(
6147
+ *,
6148
+ execution_role_arn: builtins.str,
6149
+ mqtt_topic_arn: builtins.str,
6150
+ ) -> None:
6151
+ """Type checking stubs"""
6152
+ pass
6153
+
6046
6154
  def _typecheckingstub__cb82e0c92a9fdd48764ec7ba91d5dabd16d19776d63621d9b09fba43e604eb8a(
6047
6155
  *,
6048
6156
  bucket_arn: builtins.str,
@@ -708,10 +708,49 @@ class CfnKey(
708
708
 
709
709
  Example::
710
710
 
711
- # cfn_template: cfn_inc.CfnInclude
711
+ import aws_cdk.aws_kms as kms
712
712
 
713
- cfn_key = cfn_template.get_resource("Key")
714
- key = kms.Key.from_cfn_key(cfn_key)
713
+
714
+ kms_key = kms.Key(self, "myKMSKey")
715
+ my_bucket = s3.Bucket(self, "mySSEKMSEncryptedBucket",
716
+ encryption=s3.BucketEncryption.KMS,
717
+ encryption_key=kms_key,
718
+ object_ownership=s3.ObjectOwnership.BUCKET_OWNER_ENFORCED
719
+ )
720
+ cloudfront.Distribution(self, "myDist",
721
+ default_behavior=cloudfront.BehaviorOptions(
722
+ origin=origins.S3BucketOrigin.with_origin_access_control(my_bucket)
723
+ )
724
+ )
725
+
726
+ # Add the following to scope down the key policy
727
+ scoped_down_key_policy = {
728
+ "Version": "2012-10-17",
729
+ "Statement": [{
730
+ "Effect": "Allow",
731
+ "Principal": {
732
+ "AWS": "arn:aws:iam::111122223333:root"
733
+ },
734
+ "Action": "kms:*",
735
+ "Resource": "*"
736
+ }, {
737
+ "Effect": "Allow",
738
+ "Principal": {
739
+ "Service": "cloudfront.amazonaws.com"
740
+ },
741
+ "Action": ["kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*"
742
+ ],
743
+ "Resource": "*",
744
+ "Condition": {
745
+ "StringEquals": {
746
+ "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>"
747
+ }
748
+ }
749
+ }
750
+ ]
751
+ }
752
+ cfn_key = (kms_key.node.default_child)
753
+ cfn_key.key_policy = scoped_down_key_policy
715
754
  '''
716
755
 
717
756
  def __init__(
@@ -2086,15 +2125,19 @@ class Key(
2086
2125
 
2087
2126
  Example::
2088
2127
 
2089
- # destination_bucket: s3.Bucket
2128
+ import aws_cdk.aws_kms as kms
2090
2129
 
2091
- source_bucket = s3.Bucket.from_bucket_attributes(self, "SourceBucket",
2092
- bucket_arn="arn:aws:s3:::my-source-bucket-name",
2093
- encryption_key=kms.Key.from_key_arn(self, "SourceBucketEncryptionKey", "arn:aws:kms:us-east-1:123456789012:key/<key-id>")
2130
+
2131
+ my_kms_key = kms.Key(self, "myKMSKey")
2132
+ my_bucket = s3.Bucket(self, "mySSEKMSEncryptedBucket",
2133
+ encryption=s3.BucketEncryption.KMS,
2134
+ encryption_key=my_kms_key,
2135
+ object_ownership=s3.ObjectOwnership.BUCKET_OWNER_ENFORCED
2094
2136
  )
2095
- deployment = s3deploy.BucketDeployment(self, "DeployFiles",
2096
- sources=[s3deploy.Source.bucket(source_bucket, "source.zip")],
2097
- destination_bucket=destination_bucket
2137
+ cloudfront.Distribution(self, "myDist",
2138
+ default_behavior=cloudfront.BehaviorOptions(
2139
+ origin=origins.S3BucketOrigin.with_origin_access_control(my_bucket)
2140
+ )
2098
2141
  )
2099
2142
  '''
2100
2143