aws-cdk-lib 2.165.0__py3-none-any.whl → 2.167.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (60) hide show
  1. aws_cdk/__init__.py +1 -1
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.165.0.jsii.tgz → aws-cdk-lib@2.167.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +9 -0
  5. aws_cdk/aws_appsync/__init__.py +2271 -359
  6. aws_cdk/aws_backup/__init__.py +57 -31
  7. aws_cdk/aws_bedrock/__init__.py +994 -197
  8. aws_cdk/aws_cleanrooms/__init__.py +66 -5
  9. aws_cdk/aws_cloudfront/__init__.py +21 -3
  10. aws_cdk/aws_cloudfront/experimental/__init__.py +3 -3
  11. aws_cdk/aws_codebuild/__init__.py +59 -29
  12. aws_cdk/aws_codepipeline/__init__.py +98 -5
  13. aws_cdk/aws_codestar/__init__.py +1 -1
  14. aws_cdk/aws_cognito/__init__.py +0 -8
  15. aws_cdk/aws_connect/__init__.py +1 -1
  16. aws_cdk/aws_datasync/__init__.py +60 -7
  17. aws_cdk/aws_devopsguru/__init__.py +2 -2
  18. aws_cdk/aws_dms/__init__.py +762 -0
  19. aws_cdk/aws_dynamodb/__init__.py +13 -8
  20. aws_cdk/aws_ec2/__init__.py +316 -11
  21. aws_cdk/aws_ecs/__init__.py +20 -7
  22. aws_cdk/aws_elasticache/__init__.py +16 -9
  23. aws_cdk/aws_elasticloadbalancingv2/__init__.py +73 -46
  24. aws_cdk/aws_emrserverless/__init__.py +35 -33
  25. aws_cdk/aws_events/__init__.py +25 -30
  26. aws_cdk/aws_gamelift/__init__.py +52 -40
  27. aws_cdk/aws_inspectorv2/__init__.py +6 -12
  28. aws_cdk/aws_kinesis/__init__.py +297 -1
  29. aws_cdk/aws_kms/__init__.py +2 -0
  30. aws_cdk/aws_lambda/__init__.py +339 -22
  31. aws_cdk/aws_lambda_nodejs/__init__.py +3 -3
  32. aws_cdk/aws_logs/__init__.py +214 -0
  33. aws_cdk/aws_m2/__init__.py +58 -58
  34. aws_cdk/aws_mediapackagev2/__init__.py +191 -0
  35. aws_cdk/aws_networkfirewall/__init__.py +14 -5
  36. aws_cdk/aws_nimblestudio/__init__.py +6 -103
  37. aws_cdk/aws_opensearchservice/__init__.py +969 -0
  38. aws_cdk/aws_pipes/__init__.py +1 -1
  39. aws_cdk/aws_qbusiness/__init__.py +2 -0
  40. aws_cdk/aws_quicksight/__init__.py +481 -10
  41. aws_cdk/aws_rds/__init__.py +667 -16
  42. aws_cdk/aws_route53/__init__.py +38 -12
  43. aws_cdk/aws_s3_assets/__init__.py +37 -0
  44. aws_cdk/aws_s3_deployment/__init__.py +18 -7
  45. aws_cdk/aws_sagemaker/__init__.py +61 -25
  46. aws_cdk/aws_secretsmanager/__init__.py +2 -1
  47. aws_cdk/aws_servicecatalog/__init__.py +52 -4
  48. aws_cdk/aws_ses/__init__.py +22 -1
  49. aws_cdk/aws_sqs/__init__.py +12 -9
  50. aws_cdk/aws_stepfunctions/__init__.py +8 -0
  51. aws_cdk/aws_synthetics/__init__.py +133 -1
  52. aws_cdk/aws_timestream/__init__.py +41 -0
  53. aws_cdk/aws_wisdom/__init__.py +2348 -54
  54. aws_cdk/triggers/__init__.py +3 -3
  55. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/METADATA +1 -1
  56. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/RECORD +60 -60
  57. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/WHEEL +1 -1
  58. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/LICENSE +0 -0
  59. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/NOTICE +0 -0
  60. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,7 @@ intake and aggregation.
17
17
  * [Write Permissions](#write-permissions)
18
18
  * [Custom Permissions](#custom-permissions)
19
19
  * [Metrics](#metrics)
20
+ * [Resource Policy](#resource-policy)
20
21
 
21
22
  ## Streams
22
23
 
@@ -184,6 +185,52 @@ stream.metric_get_records_success()
184
185
  # using pre-defined and overriding the statistic
185
186
  stream.metric_get_records_success(statistic="Maximum")
186
187
  ```
188
+
189
+ ### Resource Policy
190
+
191
+ You can create a resource policy for a data stream.
192
+ For more information, see [Controlling access to Amazon Kinesis Data Streams resources using IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html).
193
+
194
+ A resource policy is automatically created when `addToResourcePolicy` is called, if one doesn't already exist.
195
+
196
+ Using `addToResourcePolicy` is the simplest way to add a resource policy:
197
+
198
+ ```python
199
+ stream = kinesis.Stream(self, "MyStream")
200
+
201
+ # create a resource policy via addToResourcePolicy method
202
+ stream.add_to_resource_policy(iam.PolicyStatement(
203
+ resources=[stream.stream_arn],
204
+ actions=["kinesis:GetRecords"],
205
+ principals=[iam.AnyPrincipal()]
206
+ ))
207
+ ```
208
+
209
+ You can create a resource manually by using `ResourcePolicy`.
210
+ Also, you can set a custom policy document to `ResourcePolicy`.
211
+ If not, a blank policy document will be set.
212
+
213
+ ```python
214
+ stream = kinesis.Stream(self, "MyStream")
215
+
216
+ # create a custom policy document
217
+ policy_document = iam.PolicyDocument(
218
+ assign_sids=True,
219
+ statements=[
220
+ iam.PolicyStatement(
221
+ actions=["kinesis:GetRecords"],
222
+ resources=[stream.stream_arn],
223
+ principals=[iam.AnyPrincipal()]
224
+ )
225
+ ]
226
+ )
227
+
228
+ # create a resource policy manually
229
+ kinesis.ResourcePolicy(self, "ResourcePolicy",
230
+ stream=stream,
231
+ policy_document=policy_document
232
+ )
233
+ ```
187
234
  '''
188
235
  from pkgutil import extend_path
189
236
  __path__ = extend_path(__path__, __name__)
@@ -236,7 +283,13 @@ from ..aws_cloudwatch import (
236
283
  MetricOptions as _MetricOptions_1788b62f,
237
284
  Unit as _Unit_61bc6f70,
238
285
  )
239
- from ..aws_iam import Grant as _Grant_a7ae64f8, IGrantable as _IGrantable_71c4f5de
286
+ from ..aws_iam import (
287
+ AddToResourcePolicyResult as _AddToResourcePolicyResult_1d0a53ad,
288
+ Grant as _Grant_a7ae64f8,
289
+ IGrantable as _IGrantable_71c4f5de,
290
+ PolicyDocument as _PolicyDocument_3ac34393,
291
+ PolicyStatement as _PolicyStatement_0fe33853,
292
+ )
240
293
  from ..aws_kms import IKey as _IKey_5f11635f
241
294
 
242
295
 
@@ -1233,6 +1286,21 @@ class IStream(_IResource_c80c4260, typing_extensions.Protocol):
1233
1286
  '''Optional KMS encryption key associated with this stream.'''
1234
1287
  ...
1235
1288
 
1289
+ @jsii.member(jsii_name="addToResourcePolicy")
1290
+ def add_to_resource_policy(
1291
+ self,
1292
+ statement: _PolicyStatement_0fe33853,
1293
+ ) -> _AddToResourcePolicyResult_1d0a53ad:
1294
+ '''Adds a statement to the IAM resource policy associated with this stream.
1295
+
1296
+ If this stream was created in this stack (``new Stream``), a resource policy
1297
+ will be automatically created upon the first call to ``addToResourcePolicy``. If
1298
+ the stream is imported (``Stream.import``), then this is a no-op.
1299
+
1300
+ :param statement: -
1301
+ '''
1302
+ ...
1303
+
1236
1304
  @jsii.member(jsii_name="grant")
1237
1305
  def grant(
1238
1306
  self,
@@ -1914,6 +1982,24 @@ class _IStreamProxy(
1914
1982
  '''Optional KMS encryption key associated with this stream.'''
1915
1983
  return typing.cast(typing.Optional[_IKey_5f11635f], jsii.get(self, "encryptionKey"))
1916
1984
 
1985
+ @jsii.member(jsii_name="addToResourcePolicy")
1986
+ def add_to_resource_policy(
1987
+ self,
1988
+ statement: _PolicyStatement_0fe33853,
1989
+ ) -> _AddToResourcePolicyResult_1d0a53ad:
1990
+ '''Adds a statement to the IAM resource policy associated with this stream.
1991
+
1992
+ If this stream was created in this stack (``new Stream``), a resource policy
1993
+ will be automatically created upon the first call to ``addToResourcePolicy``. If
1994
+ the stream is imported (``Stream.import``), then this is a no-op.
1995
+
1996
+ :param statement: -
1997
+ '''
1998
+ if __debug__:
1999
+ type_hints = typing.get_type_hints(_typecheckingstub__8f2bc2272d75f698f14f87a303fdf13c87275a121d59d5fa5df4a16bb120598b)
2000
+ check_type(argname="argument statement", value=statement, expected_type=type_hints["statement"])
2001
+ return typing.cast(_AddToResourcePolicyResult_1d0a53ad, jsii.invoke(self, "addToResourcePolicy", [statement]))
2002
+
1917
2003
  @jsii.member(jsii_name="grant")
1918
2004
  def grant(
1919
2005
  self,
@@ -2803,6 +2889,157 @@ class _IStreamProxy(
2803
2889
  typing.cast(typing.Any, IStream).__jsii_proxy_class__ = lambda : _IStreamProxy
2804
2890
 
2805
2891
 
2892
+ class ResourcePolicy(
2893
+ _Resource_45bc6135,
2894
+ metaclass=jsii.JSIIMeta,
2895
+ jsii_type="aws-cdk-lib.aws_kinesis.ResourcePolicy",
2896
+ ):
2897
+ '''The policy for a data stream or registered consumer.
2898
+
2899
+ Policies define the operations that are allowed on this resource.
2900
+
2901
+ You almost never need to define this construct directly.
2902
+
2903
+ All AWS resources that support resource policies have a method called
2904
+ ``addToResourcePolicy()``, which will automatically create a new resource
2905
+ policy if one doesn't exist yet, otherwise it will add to the existing
2906
+ policy.
2907
+
2908
+ Prefer to use ``addToResourcePolicy()`` instead.
2909
+
2910
+ :exampleMetadata: infused
2911
+
2912
+ Example::
2913
+
2914
+ stream = kinesis.Stream(self, "MyStream")
2915
+
2916
+ # create a custom policy document
2917
+ policy_document = iam.PolicyDocument(
2918
+ assign_sids=True,
2919
+ statements=[
2920
+ iam.PolicyStatement(
2921
+ actions=["kinesis:GetRecords"],
2922
+ resources=[stream.stream_arn],
2923
+ principals=[iam.AnyPrincipal()]
2924
+ )
2925
+ ]
2926
+ )
2927
+
2928
+ # create a resource policy manually
2929
+ kinesis.ResourcePolicy(self, "ResourcePolicy",
2930
+ stream=stream,
2931
+ policy_document=policy_document
2932
+ )
2933
+ '''
2934
+
2935
+ def __init__(
2936
+ self,
2937
+ scope: _constructs_77d1e7e8.Construct,
2938
+ id: builtins.str,
2939
+ *,
2940
+ stream: IStream,
2941
+ policy_document: typing.Optional[_PolicyDocument_3ac34393] = None,
2942
+ ) -> None:
2943
+ '''
2944
+ :param scope: -
2945
+ :param id: -
2946
+ :param stream: The stream this policy applies to.
2947
+ :param policy_document: IAM policy document to apply to a data stream. Default: - empty policy document
2948
+ '''
2949
+ if __debug__:
2950
+ type_hints = typing.get_type_hints(_typecheckingstub__4488fc34b1387c696011cd138108f10e13139cd2d56365a8ba9602ad6ba244f0)
2951
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2952
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2953
+ props = ResourcePolicyProps(stream=stream, policy_document=policy_document)
2954
+
2955
+ jsii.create(self.__class__, self, [scope, id, props])
2956
+
2957
+ @builtins.property
2958
+ @jsii.member(jsii_name="document")
2959
+ def document(self) -> _PolicyDocument_3ac34393:
2960
+ '''The IAM policy document for this policy.'''
2961
+ return typing.cast(_PolicyDocument_3ac34393, jsii.get(self, "document"))
2962
+
2963
+
2964
+ @jsii.data_type(
2965
+ jsii_type="aws-cdk-lib.aws_kinesis.ResourcePolicyProps",
2966
+ jsii_struct_bases=[],
2967
+ name_mapping={"stream": "stream", "policy_document": "policyDocument"},
2968
+ )
2969
+ class ResourcePolicyProps:
2970
+ def __init__(
2971
+ self,
2972
+ *,
2973
+ stream: IStream,
2974
+ policy_document: typing.Optional[_PolicyDocument_3ac34393] = None,
2975
+ ) -> None:
2976
+ '''Properties to associate a data stream with a policy.
2977
+
2978
+ :param stream: The stream this policy applies to.
2979
+ :param policy_document: IAM policy document to apply to a data stream. Default: - empty policy document
2980
+
2981
+ :exampleMetadata: infused
2982
+
2983
+ Example::
2984
+
2985
+ stream = kinesis.Stream(self, "MyStream")
2986
+
2987
+ # create a custom policy document
2988
+ policy_document = iam.PolicyDocument(
2989
+ assign_sids=True,
2990
+ statements=[
2991
+ iam.PolicyStatement(
2992
+ actions=["kinesis:GetRecords"],
2993
+ resources=[stream.stream_arn],
2994
+ principals=[iam.AnyPrincipal()]
2995
+ )
2996
+ ]
2997
+ )
2998
+
2999
+ # create a resource policy manually
3000
+ kinesis.ResourcePolicy(self, "ResourcePolicy",
3001
+ stream=stream,
3002
+ policy_document=policy_document
3003
+ )
3004
+ '''
3005
+ if __debug__:
3006
+ type_hints = typing.get_type_hints(_typecheckingstub__b4f61add9bc5e3d367f841a39ff9a752c7eed270f05849d0b5f9dc5e5ad3382a)
3007
+ check_type(argname="argument stream", value=stream, expected_type=type_hints["stream"])
3008
+ check_type(argname="argument policy_document", value=policy_document, expected_type=type_hints["policy_document"])
3009
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3010
+ "stream": stream,
3011
+ }
3012
+ if policy_document is not None:
3013
+ self._values["policy_document"] = policy_document
3014
+
3015
+ @builtins.property
3016
+ def stream(self) -> IStream:
3017
+ '''The stream this policy applies to.'''
3018
+ result = self._values.get("stream")
3019
+ assert result is not None, "Required property 'stream' is missing"
3020
+ return typing.cast(IStream, result)
3021
+
3022
+ @builtins.property
3023
+ def policy_document(self) -> typing.Optional[_PolicyDocument_3ac34393]:
3024
+ '''IAM policy document to apply to a data stream.
3025
+
3026
+ :default: - empty policy document
3027
+ '''
3028
+ result = self._values.get("policy_document")
3029
+ return typing.cast(typing.Optional[_PolicyDocument_3ac34393], result)
3030
+
3031
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3032
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3033
+
3034
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3035
+ return not (rhs == self)
3036
+
3037
+ def __repr__(self) -> str:
3038
+ return "ResourcePolicyProps(%s)" % ", ".join(
3039
+ k + "=" + repr(v) for k, v in self._values.items()
3040
+ )
3041
+
3042
+
2806
3043
  @jsii.implements(IStream)
2807
3044
  class Stream(
2808
3045
  _Resource_45bc6135,
@@ -2911,6 +3148,24 @@ class Stream(
2911
3148
 
2912
3149
  return typing.cast(IStream, jsii.sinvoke(cls, "fromStreamAttributes", [scope, id, attrs]))
2913
3150
 
3151
+ @jsii.member(jsii_name="addToResourcePolicy")
3152
+ def add_to_resource_policy(
3153
+ self,
3154
+ statement: _PolicyStatement_0fe33853,
3155
+ ) -> _AddToResourcePolicyResult_1d0a53ad:
3156
+ '''Adds a statement to the IAM resource policy associated with this stream.
3157
+
3158
+ If this stream was created in this stack (``new Strem``), a resource policy
3159
+ will be automatically created upon the first call to ``addToResourcePolicy``. If
3160
+ the stream is imported (``Stream.import``), then this is a no-op.
3161
+
3162
+ :param statement: -
3163
+ '''
3164
+ if __debug__:
3165
+ type_hints = typing.get_type_hints(_typecheckingstub__a7e5618d0b21ec8f8ee6f75c9ce4726b0e2f49cca4d61efdf76bb36d81eedef9)
3166
+ check_type(argname="argument statement", value=statement, expected_type=type_hints["statement"])
3167
+ return typing.cast(_AddToResourcePolicyResult_1d0a53ad, jsii.invoke(self, "addToResourcePolicy", [statement]))
3168
+
2914
3169
  @jsii.member(jsii_name="grant")
2915
3170
  def grant(
2916
3171
  self,
@@ -3797,6 +4052,15 @@ class Stream(
3797
4052
 
3798
4053
  return typing.cast(_Metric_e396a4dc, jsii.invoke(self, "metricWriteProvisionedThroughputExceeded", [props]))
3799
4054
 
4055
+ @builtins.property
4056
+ @jsii.member(jsii_name="autoCreatePolicy")
4057
+ def _auto_create_policy(self) -> builtins.bool:
4058
+ '''Indicates if a stream resource policy should automatically be created upon the first call to ``addToResourcePolicy``.
4059
+
4060
+ Set by subclasses.
4061
+ '''
4062
+ return typing.cast(builtins.bool, jsii.get(self, "autoCreatePolicy"))
4063
+
3800
4064
  @builtins.property
3801
4065
  @jsii.member(jsii_name="streamArn")
3802
4066
  def stream_arn(self) -> builtins.str:
@@ -4098,6 +4362,8 @@ __all__ = [
4098
4362
  "CfnStreamConsumerProps",
4099
4363
  "CfnStreamProps",
4100
4364
  "IStream",
4365
+ "ResourcePolicy",
4366
+ "ResourcePolicyProps",
4101
4367
  "Stream",
4102
4368
  "StreamAttributes",
4103
4369
  "StreamEncryption",
@@ -4280,6 +4546,12 @@ def _typecheckingstub__d3bac625363d3769acb567c00e5b48d63afe09fd6d0305829f157ffcc
4280
4546
  """Type checking stubs"""
4281
4547
  pass
4282
4548
 
4549
+ def _typecheckingstub__8f2bc2272d75f698f14f87a303fdf13c87275a121d59d5fa5df4a16bb120598b(
4550
+ statement: _PolicyStatement_0fe33853,
4551
+ ) -> None:
4552
+ """Type checking stubs"""
4553
+ pass
4554
+
4283
4555
  def _typecheckingstub__144c672e53e3086b23a7fab80cf6f8440b56b13da782550703291ecf8e7ee03c(
4284
4556
  grantee: _IGrantable_71c4f5de,
4285
4557
  *actions: builtins.str,
@@ -4320,6 +4592,24 @@ def _typecheckingstub__bd578f4ca8facd0463f7e56d3d2cea7e56ba9ad274338af8f84fa661d
4320
4592
  """Type checking stubs"""
4321
4593
  pass
4322
4594
 
4595
+ def _typecheckingstub__4488fc34b1387c696011cd138108f10e13139cd2d56365a8ba9602ad6ba244f0(
4596
+ scope: _constructs_77d1e7e8.Construct,
4597
+ id: builtins.str,
4598
+ *,
4599
+ stream: IStream,
4600
+ policy_document: typing.Optional[_PolicyDocument_3ac34393] = None,
4601
+ ) -> None:
4602
+ """Type checking stubs"""
4603
+ pass
4604
+
4605
+ def _typecheckingstub__b4f61add9bc5e3d367f841a39ff9a752c7eed270f05849d0b5f9dc5e5ad3382a(
4606
+ *,
4607
+ stream: IStream,
4608
+ policy_document: typing.Optional[_PolicyDocument_3ac34393] = None,
4609
+ ) -> None:
4610
+ """Type checking stubs"""
4611
+ pass
4612
+
4323
4613
  def _typecheckingstub__d9e4f581406090d861e3fe8214f939eedc5d1ccaffe122a7542878ec423959f9(
4324
4614
  scope: _constructs_77d1e7e8.Construct,
4325
4615
  id: builtins.str,
@@ -4353,6 +4643,12 @@ def _typecheckingstub__b96a6f7eaad7642c3b76701b21a0f3785de9e62fe0775dc42bcd732de
4353
4643
  """Type checking stubs"""
4354
4644
  pass
4355
4645
 
4646
+ def _typecheckingstub__a7e5618d0b21ec8f8ee6f75c9ce4726b0e2f49cca4d61efdf76bb36d81eedef9(
4647
+ statement: _PolicyStatement_0fe33853,
4648
+ ) -> None:
4649
+ """Type checking stubs"""
4650
+ pass
4651
+
4356
4652
  def _typecheckingstub__697192e2b3dde0e9d7ea188584de9b7bc6b68afbd4b7ab621caa32eaeecfb0fe(
4357
4653
  grantee: _IGrantable_71c4f5de,
4358
4654
  *actions: builtins.str,
@@ -2957,6 +2957,8 @@ class KeyUsage(enum.Enum):
2957
2957
  '''Signing and verification.'''
2958
2958
  GENERATE_VERIFY_MAC = "GENERATE_VERIFY_MAC"
2959
2959
  '''Generating and verifying MACs.'''
2960
+ KEY_AGREEMENT = "KEY_AGREEMENT"
2961
+ '''Deriving shared secrets.'''
2960
2962
 
2961
2963
 
2962
2964
  class ViaServicePrincipal(