aws-cdk-lib 2.139.1__py3-none-any.whl → 2.141.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 +8 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.139.1.jsii.tgz → aws-cdk-lib@2.141.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +70 -56
  5. aws_cdk/aws_apigateway/__init__.py +126 -53
  6. aws_cdk/aws_applicationautoscaling/__init__.py +1 -4
  7. aws_cdk/aws_arczonalshift/__init__.py +49 -44
  8. aws_cdk/aws_bedrock/__init__.py +2829 -147
  9. aws_cdk/aws_cloudfront/__init__.py +51 -9
  10. aws_cdk/aws_cloudtrail/__init__.py +13 -4
  11. aws_cdk/aws_codecommit/__init__.py +72 -46
  12. aws_cdk/aws_connectcampaigns/__init__.py +34 -4
  13. aws_cdk/aws_datasync/__init__.py +96 -75
  14. aws_cdk/aws_dms/__init__.py +0 -269
  15. aws_cdk/aws_dynamodb/__init__.py +410 -0
  16. aws_cdk/aws_ec2/__init__.py +239 -84
  17. aws_cdk/aws_ecr/__init__.py +32 -7
  18. aws_cdk/aws_ecs/__init__.py +2 -4
  19. aws_cdk/aws_efs/__init__.py +16 -2
  20. aws_cdk/aws_eks/__init__.py +57 -0
  21. aws_cdk/aws_entityresolution/__init__.py +6 -2
  22. aws_cdk/aws_events/__init__.py +115 -0
  23. aws_cdk/aws_events_targets/__init__.py +15 -0
  24. aws_cdk/aws_fis/__init__.py +2 -1
  25. aws_cdk/aws_fms/__init__.py +7 -7
  26. aws_cdk/aws_gamelift/__init__.py +1984 -107
  27. aws_cdk/aws_globalaccelerator/__init__.py +20 -16
  28. aws_cdk/aws_iam/__init__.py +2 -2
  29. aws_cdk/aws_ivs/__init__.py +1 -3
  30. aws_cdk/aws_kinesis/__init__.py +21 -0
  31. aws_cdk/aws_kinesisvideo/__init__.py +6 -4
  32. aws_cdk/aws_kms/__init__.py +33 -6
  33. aws_cdk/aws_lambda/__init__.py +0 -9
  34. aws_cdk/aws_location/__init__.py +8 -4
  35. aws_cdk/aws_medialive/__init__.py +444 -3
  36. aws_cdk/aws_oam/__init__.py +45 -11
  37. aws_cdk/aws_omics/__init__.py +4 -4
  38. aws_cdk/aws_paymentcryptography/__init__.py +1155 -0
  39. aws_cdk/aws_personalize/__init__.py +8 -2
  40. aws_cdk/aws_pinpoint/__init__.py +7 -5
  41. aws_cdk/aws_qbusiness/__init__.py +5583 -0
  42. aws_cdk/aws_quicksight/__init__.py +10063 -1450
  43. aws_cdk/aws_rds/__init__.py +77 -5
  44. aws_cdk/aws_redshiftserverless/__init__.py +13 -9
  45. aws_cdk/aws_route53/__init__.py +350 -0
  46. aws_cdk/aws_route53profiles/__init__.py +1048 -0
  47. aws_cdk/aws_s3/__init__.py +1 -1
  48. aws_cdk/aws_sagemaker/__init__.py +30 -30
  49. aws_cdk/aws_ses/__init__.py +9 -9
  50. aws_cdk/aws_transfer/__init__.py +102 -37
  51. aws_cdk/aws_voiceid/__init__.py +2 -2
  52. aws_cdk/aws_workspacesweb/__init__.py +92 -6
  53. aws_cdk/custom_resources/__init__.py +23 -2
  54. aws_cdk/cx_api/__init__.py +16 -0
  55. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/METADATA +2 -2
  56. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/RECORD +60 -57
  57. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/LICENSE +0 -0
  58. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/NOTICE +0 -0
  59. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/WHEEL +0 -0
  60. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1155 @@
1
+ '''
2
+ # AWS::PaymentCryptography Construct Library
3
+
4
+ <!--BEGIN STABILITY BANNER-->---
5
+
6
+
7
+ ![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)
8
+
9
+ > All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) are always stable and safe to use.
10
+
11
+ ---
12
+ <!--END STABILITY BANNER-->
13
+
14
+ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.
15
+
16
+ ```python
17
+ import aws_cdk.aws_paymentcryptography as paymentcryptography
18
+ ```
19
+
20
+ <!--BEGIN CFNONLY DISCLAIMER-->
21
+
22
+ There are no official hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet. Here are some suggestions on how to proceed:
23
+
24
+ * Search [Construct Hub for PaymentCryptography construct libraries](https://constructs.dev/search?q=paymentcryptography)
25
+ * Use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, in the same way you would use [the CloudFormation AWS::PaymentCryptography resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PaymentCryptography.html) directly.
26
+
27
+ <!--BEGIN CFNONLY DISCLAIMER-->
28
+
29
+ There are no hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet.
30
+ However, you can still use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, and use this service exactly as you would using CloudFormation directly.
31
+
32
+ For more information on the resources and properties available for this service, see the [CloudFormation documentation for AWS::PaymentCryptography](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PaymentCryptography.html).
33
+
34
+ (Read the [CDK Contributing Guide](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and submit an RFC if you are interested in contributing to this construct library.)
35
+
36
+ <!--END CFNONLY DISCLAIMER-->
37
+ '''
38
+ from pkgutil import extend_path
39
+ __path__ = extend_path(__path__, __name__)
40
+
41
+ import abc
42
+ import builtins
43
+ import datetime
44
+ import enum
45
+ import typing
46
+
47
+ import jsii
48
+ import publication
49
+ import typing_extensions
50
+
51
+ from typeguard import check_type
52
+
53
+ from .._jsii import *
54
+
55
+ import constructs as _constructs_77d1e7e8
56
+ from .. import (
57
+ CfnResource as _CfnResource_9df397a6,
58
+ CfnTag as _CfnTag_f6864754,
59
+ IInspectable as _IInspectable_c2943556,
60
+ IResolvable as _IResolvable_da3f097b,
61
+ ITaggableV2 as _ITaggableV2_4e6798f8,
62
+ TagManager as _TagManager_0a598cb3,
63
+ TreeInspector as _TreeInspector_488e0dd5,
64
+ )
65
+
66
+
67
+ @jsii.implements(_IInspectable_c2943556)
68
+ class CfnAlias(
69
+ _CfnResource_9df397a6,
70
+ metaclass=jsii.JSIIMeta,
71
+ jsii_type="aws-cdk-lib.aws_paymentcryptography.CfnAlias",
72
+ ):
73
+ '''Creates an *alias* , or a friendly name, for an AWS Payment Cryptography key.
74
+
75
+ You can use an alias to identify a key in the console and when you call cryptographic operations such as `EncryptData <https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html>`_ or `DecryptData <https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html>`_ .
76
+
77
+ You can associate the alias with any key in the same AWS Region . Each alias is associated with only one key at a time, but a key can have multiple aliases. You can't create an alias without a key. The alias must be unique in the account and AWS Region , but you can create another alias with the same name in a different AWS Region .
78
+
79
+ To change the key that's associated with the alias, call `UpdateAlias <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_UpdateAlias.html>`_ . To delete the alias, call `DeleteAlias <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DeleteAlias.html>`_ . These operations don't affect the underlying key. To get the alias that you created, call `ListAliases <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ListAliases.html>`_ .
80
+
81
+ *Cross-account use* : This operation can't be used across different AWS accounts.
82
+
83
+ *Related operations:*
84
+
85
+ - `DeleteAlias <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DeleteAlias.html>`_
86
+ - `GetAlias <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetAlias.html>`_
87
+ - `ListAliases <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ListAliases.html>`_
88
+ - `UpdateAlias <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_UpdateAlias.html>`_
89
+
90
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html
91
+ :cloudformationResource: AWS::PaymentCryptography::Alias
92
+ :exampleMetadata: fixture=_generated
93
+
94
+ Example::
95
+
96
+ # The code below shows an example of how to instantiate this type.
97
+ # The values are placeholders you should change.
98
+ from aws_cdk import aws_paymentcryptography as paymentcryptography
99
+
100
+ cfn_alias = paymentcryptography.CfnAlias(self, "MyCfnAlias",
101
+ alias_name="aliasName",
102
+
103
+ # the properties below are optional
104
+ key_arn="keyArn"
105
+ )
106
+ '''
107
+
108
+ def __init__(
109
+ self,
110
+ scope: _constructs_77d1e7e8.Construct,
111
+ id: builtins.str,
112
+ *,
113
+ alias_name: builtins.str,
114
+ key_arn: typing.Optional[builtins.str] = None,
115
+ ) -> None:
116
+ '''
117
+ :param scope: Scope in which this resource is defined.
118
+ :param id: Construct identifier for this resource (unique in its scope).
119
+ :param alias_name: A friendly name that you can use to refer to a key. The value must begin with ``alias/`` . .. epigraph:: Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in AWS CloudTrail logs and other output.
120
+ :param key_arn: The ``KeyARN`` of the key associated with the alias.
121
+ '''
122
+ if __debug__:
123
+ type_hints = typing.get_type_hints(_typecheckingstub__03e3543c569149d753dcca4f9aa62f90766372bafcd1f94b89e73d5b425564e5)
124
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
125
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
126
+ props = CfnAliasProps(alias_name=alias_name, key_arn=key_arn)
127
+
128
+ jsii.create(self.__class__, self, [scope, id, props])
129
+
130
+ @jsii.member(jsii_name="inspect")
131
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
132
+ '''Examines the CloudFormation resource and discloses attributes.
133
+
134
+ :param inspector: tree inspector to collect and process attributes.
135
+ '''
136
+ if __debug__:
137
+ type_hints = typing.get_type_hints(_typecheckingstub__4ff200923cccd5fdae928ff708195bbced1ef4f7d50f668b5c73f249ed90f28f)
138
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
139
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
140
+
141
+ @jsii.member(jsii_name="renderProperties")
142
+ def _render_properties(
143
+ self,
144
+ props: typing.Mapping[builtins.str, typing.Any],
145
+ ) -> typing.Mapping[builtins.str, typing.Any]:
146
+ '''
147
+ :param props: -
148
+ '''
149
+ if __debug__:
150
+ type_hints = typing.get_type_hints(_typecheckingstub__b8f80ee3646838aabf7e90939e0251f8840c956ccf920965fde8a918b4cbf79b)
151
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
152
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
153
+
154
+ @jsii.python.classproperty
155
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
156
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
157
+ '''The CloudFormation resource type name for this resource class.'''
158
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
159
+
160
+ @builtins.property
161
+ @jsii.member(jsii_name="cfnProperties")
162
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
163
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
164
+
165
+ @builtins.property
166
+ @jsii.member(jsii_name="aliasName")
167
+ def alias_name(self) -> builtins.str:
168
+ '''A friendly name that you can use to refer to a key.
169
+
170
+ The value must begin with ``alias/`` .
171
+ '''
172
+ return typing.cast(builtins.str, jsii.get(self, "aliasName"))
173
+
174
+ @alias_name.setter
175
+ def alias_name(self, value: builtins.str) -> None:
176
+ if __debug__:
177
+ type_hints = typing.get_type_hints(_typecheckingstub__dbda40ab380bdefcb4b1f97fbdfb383ed08815fcaf1d136e881314e872f7e42b)
178
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
179
+ jsii.set(self, "aliasName", value)
180
+
181
+ @builtins.property
182
+ @jsii.member(jsii_name="keyArn")
183
+ def key_arn(self) -> typing.Optional[builtins.str]:
184
+ '''The ``KeyARN`` of the key associated with the alias.'''
185
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "keyArn"))
186
+
187
+ @key_arn.setter
188
+ def key_arn(self, value: typing.Optional[builtins.str]) -> None:
189
+ if __debug__:
190
+ type_hints = typing.get_type_hints(_typecheckingstub__fbafef3a7fe6a4ee77cdd86bde1df29b8df0e985f7099527ccce1ce9c0fb18d5)
191
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
192
+ jsii.set(self, "keyArn", value)
193
+
194
+
195
+ @jsii.data_type(
196
+ jsii_type="aws-cdk-lib.aws_paymentcryptography.CfnAliasProps",
197
+ jsii_struct_bases=[],
198
+ name_mapping={"alias_name": "aliasName", "key_arn": "keyArn"},
199
+ )
200
+ class CfnAliasProps:
201
+ def __init__(
202
+ self,
203
+ *,
204
+ alias_name: builtins.str,
205
+ key_arn: typing.Optional[builtins.str] = None,
206
+ ) -> None:
207
+ '''Properties for defining a ``CfnAlias``.
208
+
209
+ :param alias_name: A friendly name that you can use to refer to a key. The value must begin with ``alias/`` . .. epigraph:: Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in AWS CloudTrail logs and other output.
210
+ :param key_arn: The ``KeyARN`` of the key associated with the alias.
211
+
212
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html
213
+ :exampleMetadata: fixture=_generated
214
+
215
+ Example::
216
+
217
+ # The code below shows an example of how to instantiate this type.
218
+ # The values are placeholders you should change.
219
+ from aws_cdk import aws_paymentcryptography as paymentcryptography
220
+
221
+ cfn_alias_props = paymentcryptography.CfnAliasProps(
222
+ alias_name="aliasName",
223
+
224
+ # the properties below are optional
225
+ key_arn="keyArn"
226
+ )
227
+ '''
228
+ if __debug__:
229
+ type_hints = typing.get_type_hints(_typecheckingstub__0461ccf0903c4c242ef15c5e4bc2830b51a5cf5ebc2b326557f67cfef92bc428)
230
+ check_type(argname="argument alias_name", value=alias_name, expected_type=type_hints["alias_name"])
231
+ check_type(argname="argument key_arn", value=key_arn, expected_type=type_hints["key_arn"])
232
+ self._values: typing.Dict[builtins.str, typing.Any] = {
233
+ "alias_name": alias_name,
234
+ }
235
+ if key_arn is not None:
236
+ self._values["key_arn"] = key_arn
237
+
238
+ @builtins.property
239
+ def alias_name(self) -> builtins.str:
240
+ '''A friendly name that you can use to refer to a key. The value must begin with ``alias/`` .
241
+
242
+ .. epigraph::
243
+
244
+ Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in AWS CloudTrail logs and other output.
245
+
246
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html#cfn-paymentcryptography-alias-aliasname
247
+ '''
248
+ result = self._values.get("alias_name")
249
+ assert result is not None, "Required property 'alias_name' is missing"
250
+ return typing.cast(builtins.str, result)
251
+
252
+ @builtins.property
253
+ def key_arn(self) -> typing.Optional[builtins.str]:
254
+ '''The ``KeyARN`` of the key associated with the alias.
255
+
256
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-alias.html#cfn-paymentcryptography-alias-keyarn
257
+ '''
258
+ result = self._values.get("key_arn")
259
+ return typing.cast(typing.Optional[builtins.str], result)
260
+
261
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
262
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
263
+
264
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
265
+ return not (rhs == self)
266
+
267
+ def __repr__(self) -> str:
268
+ return "CfnAliasProps(%s)" % ", ".join(
269
+ k + "=" + repr(v) for k, v in self._values.items()
270
+ )
271
+
272
+
273
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
274
+ class CfnKey(
275
+ _CfnResource_9df397a6,
276
+ metaclass=jsii.JSIIMeta,
277
+ jsii_type="aws-cdk-lib.aws_paymentcryptography.CfnKey",
278
+ ):
279
+ '''Creates an AWS Payment Cryptography key, a logical representation of a cryptographic key, that is unique in your account and AWS Region .
280
+
281
+ You use keys for cryptographic functions such as encryption and decryption.
282
+
283
+ In addition to the key material used in cryptographic operations, an AWS Payment Cryptography key includes metadata such as the key ARN, key usage, key origin, creation date, description, and key state.
284
+
285
+ When you create a key, you specify both immutable and mutable data about the key. The immutable data contains key attributes that define the scope and cryptographic operations that you can perform using the key, for example key class (example: ``SYMMETRIC_KEY`` ), key algorithm (example: ``TDES_2KEY`` ), key usage (example: ``TR31_P0_PIN_ENCRYPTION_KEY`` ) and key modes of use (example: ``Encrypt`` ). For information about valid combinations of key attributes, see `Understanding key attributes <https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html>`_ in the *AWS Payment Cryptography User Guide* . The mutable data contained within a key includes usage timestamp and key deletion timestamp and can be modified after creation.
286
+
287
+ AWS Payment Cryptography binds key attributes to keys using key blocks when you store or export them. AWS Payment Cryptography stores the key contents wrapped and never stores or transmits them in the clear.
288
+
289
+ *Cross-account use* : This operation can't be used across different AWS accounts.
290
+
291
+ *Related operations:*
292
+
293
+ - `DeleteKey <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_DeleteKey.html>`_
294
+ - `GetKey <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetKey.html>`_
295
+ - `ListKeys <https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ListKeys.html>`_
296
+
297
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html
298
+ :cloudformationResource: AWS::PaymentCryptography::Key
299
+ :exampleMetadata: fixture=_generated
300
+
301
+ Example::
302
+
303
+ # The code below shows an example of how to instantiate this type.
304
+ # The values are placeholders you should change.
305
+ from aws_cdk import aws_paymentcryptography as paymentcryptography
306
+
307
+ cfn_key = paymentcryptography.CfnKey(self, "MyCfnKey",
308
+ exportable=False,
309
+ key_attributes=paymentcryptography.CfnKey.KeyAttributesProperty(
310
+ key_algorithm="keyAlgorithm",
311
+ key_class="keyClass",
312
+ key_modes_of_use=paymentcryptography.CfnKey.KeyModesOfUseProperty(
313
+ decrypt=False,
314
+ derive_key=False,
315
+ encrypt=False,
316
+ generate=False,
317
+ no_restrictions=False,
318
+ sign=False,
319
+ unwrap=False,
320
+ verify=False,
321
+ wrap=False
322
+ ),
323
+ key_usage="keyUsage"
324
+ ),
325
+
326
+ # the properties below are optional
327
+ enabled=False,
328
+ key_check_value_algorithm="keyCheckValueAlgorithm",
329
+ tags=[CfnTag(
330
+ key="key",
331
+ value="value"
332
+ )]
333
+ )
334
+ '''
335
+
336
+ def __init__(
337
+ self,
338
+ scope: _constructs_77d1e7e8.Construct,
339
+ id: builtins.str,
340
+ *,
341
+ exportable: typing.Union[builtins.bool, _IResolvable_da3f097b],
342
+ key_attributes: typing.Union[_IResolvable_da3f097b, typing.Union["CfnKey.KeyAttributesProperty", typing.Dict[builtins.str, typing.Any]]],
343
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
344
+ key_check_value_algorithm: typing.Optional[builtins.str] = None,
345
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
346
+ ) -> None:
347
+ '''
348
+ :param scope: Scope in which this resource is defined.
349
+ :param id: Construct identifier for this resource (unique in its scope).
350
+ :param exportable: Specifies whether the key is exportable. This data is immutable after the key is created.
351
+ :param key_attributes: The role of the key, the algorithm it supports, and the cryptographic operations allowed with the key. This data is immutable after the key is created.
352
+ :param enabled: Specifies whether the key is enabled.
353
+ :param key_check_value_algorithm: The algorithm that AWS Payment Cryptography uses to calculate the key check value (KCV). It is used to validate the key integrity. For TDES keys, the KCV is computed by encrypting 8 bytes, each with value of zero, with the key to be checked and retaining the 3 highest order bytes of the encrypted result. For AES keys, the KCV is computed using a CMAC algorithm where the input data is 16 bytes of zero and retaining the 3 highest order bytes of the encrypted result.
354
+ :param tags:
355
+ '''
356
+ if __debug__:
357
+ type_hints = typing.get_type_hints(_typecheckingstub__eae3f8af01ec3a496044e22e7d1ce2b96cf8f20736ded57ce899a918f81a9596)
358
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
359
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
360
+ props = CfnKeyProps(
361
+ exportable=exportable,
362
+ key_attributes=key_attributes,
363
+ enabled=enabled,
364
+ key_check_value_algorithm=key_check_value_algorithm,
365
+ tags=tags,
366
+ )
367
+
368
+ jsii.create(self.__class__, self, [scope, id, props])
369
+
370
+ @jsii.member(jsii_name="inspect")
371
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
372
+ '''Examines the CloudFormation resource and discloses attributes.
373
+
374
+ :param inspector: tree inspector to collect and process attributes.
375
+ '''
376
+ if __debug__:
377
+ type_hints = typing.get_type_hints(_typecheckingstub__3d0701d054ede99cce0d90b76ac7d1ff4eb40159e6fd502b56930a0b0a1cb63c)
378
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
379
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
380
+
381
+ @jsii.member(jsii_name="renderProperties")
382
+ def _render_properties(
383
+ self,
384
+ props: typing.Mapping[builtins.str, typing.Any],
385
+ ) -> typing.Mapping[builtins.str, typing.Any]:
386
+ '''
387
+ :param props: -
388
+ '''
389
+ if __debug__:
390
+ type_hints = typing.get_type_hints(_typecheckingstub__67d0864ea174d57204bcc36c049839be306d7849f2c1c3dc30e1a6292d6885fd)
391
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
392
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
393
+
394
+ @jsii.python.classproperty
395
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
396
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
397
+ '''The CloudFormation resource type name for this resource class.'''
398
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
399
+
400
+ @builtins.property
401
+ @jsii.member(jsii_name="attrKeyIdentifier")
402
+ def attr_key_identifier(self) -> builtins.str:
403
+ '''
404
+ :cloudformationAttribute: KeyIdentifier
405
+ '''
406
+ return typing.cast(builtins.str, jsii.get(self, "attrKeyIdentifier"))
407
+
408
+ @builtins.property
409
+ @jsii.member(jsii_name="attrKeyOrigin")
410
+ def attr_key_origin(self) -> builtins.str:
411
+ '''The source of the key material.
412
+
413
+ For keys created within AWS Payment Cryptography, the value is ``AWS_PAYMENT_CRYPTOGRAPHY`` . For keys imported into AWS Payment Cryptography, the value is ``EXTERNAL`` .
414
+
415
+ :cloudformationAttribute: KeyOrigin
416
+ '''
417
+ return typing.cast(builtins.str, jsii.get(self, "attrKeyOrigin"))
418
+
419
+ @builtins.property
420
+ @jsii.member(jsii_name="attrKeyState")
421
+ def attr_key_state(self) -> builtins.str:
422
+ '''The state of key that is being created or deleted.
423
+
424
+ :cloudformationAttribute: KeyState
425
+ '''
426
+ return typing.cast(builtins.str, jsii.get(self, "attrKeyState"))
427
+
428
+ @builtins.property
429
+ @jsii.member(jsii_name="cdkTagManager")
430
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
431
+ '''Tag Manager which manages the tags for this resource.'''
432
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
433
+
434
+ @builtins.property
435
+ @jsii.member(jsii_name="cfnProperties")
436
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
437
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
438
+
439
+ @builtins.property
440
+ @jsii.member(jsii_name="exportable")
441
+ def exportable(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
442
+ '''Specifies whether the key is exportable.'''
443
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], jsii.get(self, "exportable"))
444
+
445
+ @exportable.setter
446
+ def exportable(
447
+ self,
448
+ value: typing.Union[builtins.bool, _IResolvable_da3f097b],
449
+ ) -> None:
450
+ if __debug__:
451
+ type_hints = typing.get_type_hints(_typecheckingstub__f21c25b942e06e9156561ac93e6371242b5b4ddbcb85077df885feaa89b2b2a6)
452
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
453
+ jsii.set(self, "exportable", value)
454
+
455
+ @builtins.property
456
+ @jsii.member(jsii_name="keyAttributes")
457
+ def key_attributes(
458
+ self,
459
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnKey.KeyAttributesProperty"]:
460
+ '''The role of the key, the algorithm it supports, and the cryptographic operations allowed with the key.'''
461
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnKey.KeyAttributesProperty"], jsii.get(self, "keyAttributes"))
462
+
463
+ @key_attributes.setter
464
+ def key_attributes(
465
+ self,
466
+ value: typing.Union[_IResolvable_da3f097b, "CfnKey.KeyAttributesProperty"],
467
+ ) -> None:
468
+ if __debug__:
469
+ type_hints = typing.get_type_hints(_typecheckingstub__509385bb900abd87d7e9680c46b008a76766e5f51864d21972df261f9db73156)
470
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
471
+ jsii.set(self, "keyAttributes", value)
472
+
473
+ @builtins.property
474
+ @jsii.member(jsii_name="enabled")
475
+ def enabled(
476
+ self,
477
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
478
+ '''Specifies whether the key is enabled.'''
479
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "enabled"))
480
+
481
+ @enabled.setter
482
+ def enabled(
483
+ self,
484
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
485
+ ) -> None:
486
+ if __debug__:
487
+ type_hints = typing.get_type_hints(_typecheckingstub__1defb803536cf97ac83055a5760a6073dfc007fbfe2b34f9a774538091a30ef3)
488
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
489
+ jsii.set(self, "enabled", value)
490
+
491
+ @builtins.property
492
+ @jsii.member(jsii_name="keyCheckValueAlgorithm")
493
+ def key_check_value_algorithm(self) -> typing.Optional[builtins.str]:
494
+ '''The algorithm that AWS Payment Cryptography uses to calculate the key check value (KCV).'''
495
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "keyCheckValueAlgorithm"))
496
+
497
+ @key_check_value_algorithm.setter
498
+ def key_check_value_algorithm(self, value: typing.Optional[builtins.str]) -> None:
499
+ if __debug__:
500
+ type_hints = typing.get_type_hints(_typecheckingstub__197ab67a28372d3c264e1414d929d0c2287a028faf7915197718c789307d1350)
501
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
502
+ jsii.set(self, "keyCheckValueAlgorithm", value)
503
+
504
+ @builtins.property
505
+ @jsii.member(jsii_name="tags")
506
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
507
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
508
+
509
+ @tags.setter
510
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
511
+ if __debug__:
512
+ type_hints = typing.get_type_hints(_typecheckingstub__78d5368ca44b0ca5acba26b914716e9d9e8bb1acb0511f4f2a701cf6fcdd968d)
513
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
514
+ jsii.set(self, "tags", value)
515
+
516
+ @jsii.data_type(
517
+ jsii_type="aws-cdk-lib.aws_paymentcryptography.CfnKey.KeyAttributesProperty",
518
+ jsii_struct_bases=[],
519
+ name_mapping={
520
+ "key_algorithm": "keyAlgorithm",
521
+ "key_class": "keyClass",
522
+ "key_modes_of_use": "keyModesOfUse",
523
+ "key_usage": "keyUsage",
524
+ },
525
+ )
526
+ class KeyAttributesProperty:
527
+ def __init__(
528
+ self,
529
+ *,
530
+ key_algorithm: builtins.str,
531
+ key_class: builtins.str,
532
+ key_modes_of_use: typing.Union[_IResolvable_da3f097b, typing.Union["CfnKey.KeyModesOfUseProperty", typing.Dict[builtins.str, typing.Any]]],
533
+ key_usage: builtins.str,
534
+ ) -> None:
535
+ '''The role of the key, the algorithm it supports, and the cryptographic operations allowed with the key.
536
+
537
+ This data is immutable after the key is created.
538
+
539
+ :param key_algorithm: The key algorithm to be use during creation of an AWS Payment Cryptography key. For symmetric keys, AWS Payment Cryptography supports ``AES`` and ``TDES`` algorithms. For asymmetric keys, AWS Payment Cryptography supports ``RSA`` and ``ECC_NIST`` algorithms.
540
+ :param key_class: The type of AWS Payment Cryptography key to create, which determines the classification of the cryptographic method and whether AWS Payment Cryptography key contains a symmetric key or an asymmetric key pair.
541
+ :param key_modes_of_use: The list of cryptographic operations that you can perform using the key.
542
+ :param key_usage: The cryptographic usage of an AWS Payment Cryptography key as defined in section A.5.2 of the TR-31 spec.
543
+
544
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html
545
+ :exampleMetadata: fixture=_generated
546
+
547
+ Example::
548
+
549
+ # The code below shows an example of how to instantiate this type.
550
+ # The values are placeholders you should change.
551
+ from aws_cdk import aws_paymentcryptography as paymentcryptography
552
+
553
+ key_attributes_property = paymentcryptography.CfnKey.KeyAttributesProperty(
554
+ key_algorithm="keyAlgorithm",
555
+ key_class="keyClass",
556
+ key_modes_of_use=paymentcryptography.CfnKey.KeyModesOfUseProperty(
557
+ decrypt=False,
558
+ derive_key=False,
559
+ encrypt=False,
560
+ generate=False,
561
+ no_restrictions=False,
562
+ sign=False,
563
+ unwrap=False,
564
+ verify=False,
565
+ wrap=False
566
+ ),
567
+ key_usage="keyUsage"
568
+ )
569
+ '''
570
+ if __debug__:
571
+ type_hints = typing.get_type_hints(_typecheckingstub__0b75d16f6c2607cb760edf67dc96a26bed574dca4a5534dd5e3593befcc5f0a6)
572
+ check_type(argname="argument key_algorithm", value=key_algorithm, expected_type=type_hints["key_algorithm"])
573
+ check_type(argname="argument key_class", value=key_class, expected_type=type_hints["key_class"])
574
+ check_type(argname="argument key_modes_of_use", value=key_modes_of_use, expected_type=type_hints["key_modes_of_use"])
575
+ check_type(argname="argument key_usage", value=key_usage, expected_type=type_hints["key_usage"])
576
+ self._values: typing.Dict[builtins.str, typing.Any] = {
577
+ "key_algorithm": key_algorithm,
578
+ "key_class": key_class,
579
+ "key_modes_of_use": key_modes_of_use,
580
+ "key_usage": key_usage,
581
+ }
582
+
583
+ @builtins.property
584
+ def key_algorithm(self) -> builtins.str:
585
+ '''The key algorithm to be use during creation of an AWS Payment Cryptography key.
586
+
587
+ For symmetric keys, AWS Payment Cryptography supports ``AES`` and ``TDES`` algorithms. For asymmetric keys, AWS Payment Cryptography supports ``RSA`` and ``ECC_NIST`` algorithms.
588
+
589
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keyalgorithm
590
+ '''
591
+ result = self._values.get("key_algorithm")
592
+ assert result is not None, "Required property 'key_algorithm' is missing"
593
+ return typing.cast(builtins.str, result)
594
+
595
+ @builtins.property
596
+ def key_class(self) -> builtins.str:
597
+ '''The type of AWS Payment Cryptography key to create, which determines the classification of the cryptographic method and whether AWS Payment Cryptography key contains a symmetric key or an asymmetric key pair.
598
+
599
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keyclass
600
+ '''
601
+ result = self._values.get("key_class")
602
+ assert result is not None, "Required property 'key_class' is missing"
603
+ return typing.cast(builtins.str, result)
604
+
605
+ @builtins.property
606
+ def key_modes_of_use(
607
+ self,
608
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnKey.KeyModesOfUseProperty"]:
609
+ '''The list of cryptographic operations that you can perform using the key.
610
+
611
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keymodesofuse
612
+ '''
613
+ result = self._values.get("key_modes_of_use")
614
+ assert result is not None, "Required property 'key_modes_of_use' is missing"
615
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnKey.KeyModesOfUseProperty"], result)
616
+
617
+ @builtins.property
618
+ def key_usage(self) -> builtins.str:
619
+ '''The cryptographic usage of an AWS Payment Cryptography key as defined in section A.5.2 of the TR-31 spec.
620
+
621
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keyusage
622
+ '''
623
+ result = self._values.get("key_usage")
624
+ assert result is not None, "Required property 'key_usage' is missing"
625
+ return typing.cast(builtins.str, result)
626
+
627
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
628
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
629
+
630
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
631
+ return not (rhs == self)
632
+
633
+ def __repr__(self) -> str:
634
+ return "KeyAttributesProperty(%s)" % ", ".join(
635
+ k + "=" + repr(v) for k, v in self._values.items()
636
+ )
637
+
638
+ @jsii.data_type(
639
+ jsii_type="aws-cdk-lib.aws_paymentcryptography.CfnKey.KeyModesOfUseProperty",
640
+ jsii_struct_bases=[],
641
+ name_mapping={
642
+ "decrypt": "decrypt",
643
+ "derive_key": "deriveKey",
644
+ "encrypt": "encrypt",
645
+ "generate": "generate",
646
+ "no_restrictions": "noRestrictions",
647
+ "sign": "sign",
648
+ "unwrap": "unwrap",
649
+ "verify": "verify",
650
+ "wrap": "wrap",
651
+ },
652
+ )
653
+ class KeyModesOfUseProperty:
654
+ def __init__(
655
+ self,
656
+ *,
657
+ decrypt: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
658
+ derive_key: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
659
+ encrypt: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
660
+ generate: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
661
+ no_restrictions: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
662
+ sign: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
663
+ unwrap: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
664
+ verify: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
665
+ wrap: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
666
+ ) -> None:
667
+ '''The list of cryptographic operations that you can perform using the key.
668
+
669
+ The modes of use are defined in section A.5.3 of the TR-31 spec.
670
+
671
+ :param decrypt: Specifies whether an AWS Payment Cryptography key can be used to decrypt data. Default: - false
672
+ :param derive_key: Specifies whether an AWS Payment Cryptography key can be used to derive new keys. Default: - false
673
+ :param encrypt: Specifies whether an AWS Payment Cryptography key can be used to encrypt data. Default: - false
674
+ :param generate: Specifies whether an AWS Payment Cryptography key can be used to generate and verify other card and PIN verification keys. Default: - false
675
+ :param no_restrictions: Specifies whether an AWS Payment Cryptography key has no special restrictions other than the restrictions implied by ``KeyUsage`` . Default: - false
676
+ :param sign: Specifies whether an AWS Payment Cryptography key can be used for signing. Default: - false
677
+ :param unwrap: Default: - false
678
+ :param verify: Specifies whether an AWS Payment Cryptography key can be used to verify signatures. Default: - false
679
+ :param wrap: Specifies whether an AWS Payment Cryptography key can be used to wrap other keys. Default: - false
680
+
681
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html
682
+ :exampleMetadata: fixture=_generated
683
+
684
+ Example::
685
+
686
+ # The code below shows an example of how to instantiate this type.
687
+ # The values are placeholders you should change.
688
+ from aws_cdk import aws_paymentcryptography as paymentcryptography
689
+
690
+ key_modes_of_use_property = paymentcryptography.CfnKey.KeyModesOfUseProperty(
691
+ decrypt=False,
692
+ derive_key=False,
693
+ encrypt=False,
694
+ generate=False,
695
+ no_restrictions=False,
696
+ sign=False,
697
+ unwrap=False,
698
+ verify=False,
699
+ wrap=False
700
+ )
701
+ '''
702
+ if __debug__:
703
+ type_hints = typing.get_type_hints(_typecheckingstub__19bb5a67c0e2112fa91ea214bcd53a4406d0b3e006c09d38e9c0cd851824cb05)
704
+ check_type(argname="argument decrypt", value=decrypt, expected_type=type_hints["decrypt"])
705
+ check_type(argname="argument derive_key", value=derive_key, expected_type=type_hints["derive_key"])
706
+ check_type(argname="argument encrypt", value=encrypt, expected_type=type_hints["encrypt"])
707
+ check_type(argname="argument generate", value=generate, expected_type=type_hints["generate"])
708
+ check_type(argname="argument no_restrictions", value=no_restrictions, expected_type=type_hints["no_restrictions"])
709
+ check_type(argname="argument sign", value=sign, expected_type=type_hints["sign"])
710
+ check_type(argname="argument unwrap", value=unwrap, expected_type=type_hints["unwrap"])
711
+ check_type(argname="argument verify", value=verify, expected_type=type_hints["verify"])
712
+ check_type(argname="argument wrap", value=wrap, expected_type=type_hints["wrap"])
713
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
714
+ if decrypt is not None:
715
+ self._values["decrypt"] = decrypt
716
+ if derive_key is not None:
717
+ self._values["derive_key"] = derive_key
718
+ if encrypt is not None:
719
+ self._values["encrypt"] = encrypt
720
+ if generate is not None:
721
+ self._values["generate"] = generate
722
+ if no_restrictions is not None:
723
+ self._values["no_restrictions"] = no_restrictions
724
+ if sign is not None:
725
+ self._values["sign"] = sign
726
+ if unwrap is not None:
727
+ self._values["unwrap"] = unwrap
728
+ if verify is not None:
729
+ self._values["verify"] = verify
730
+ if wrap is not None:
731
+ self._values["wrap"] = wrap
732
+
733
+ @builtins.property
734
+ def decrypt(
735
+ self,
736
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
737
+ '''Specifies whether an AWS Payment Cryptography key can be used to decrypt data.
738
+
739
+ :default: - false
740
+
741
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-decrypt
742
+ '''
743
+ result = self._values.get("decrypt")
744
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
745
+
746
+ @builtins.property
747
+ def derive_key(
748
+ self,
749
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
750
+ '''Specifies whether an AWS Payment Cryptography key can be used to derive new keys.
751
+
752
+ :default: - false
753
+
754
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-derivekey
755
+ '''
756
+ result = self._values.get("derive_key")
757
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
758
+
759
+ @builtins.property
760
+ def encrypt(
761
+ self,
762
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
763
+ '''Specifies whether an AWS Payment Cryptography key can be used to encrypt data.
764
+
765
+ :default: - false
766
+
767
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-encrypt
768
+ '''
769
+ result = self._values.get("encrypt")
770
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
771
+
772
+ @builtins.property
773
+ def generate(
774
+ self,
775
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
776
+ '''Specifies whether an AWS Payment Cryptography key can be used to generate and verify other card and PIN verification keys.
777
+
778
+ :default: - false
779
+
780
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-generate
781
+ '''
782
+ result = self._values.get("generate")
783
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
784
+
785
+ @builtins.property
786
+ def no_restrictions(
787
+ self,
788
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
789
+ '''Specifies whether an AWS Payment Cryptography key has no special restrictions other than the restrictions implied by ``KeyUsage`` .
790
+
791
+ :default: - false
792
+
793
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-norestrictions
794
+ '''
795
+ result = self._values.get("no_restrictions")
796
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
797
+
798
+ @builtins.property
799
+ def sign(
800
+ self,
801
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
802
+ '''Specifies whether an AWS Payment Cryptography key can be used for signing.
803
+
804
+ :default: - false
805
+
806
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-sign
807
+ '''
808
+ result = self._values.get("sign")
809
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
810
+
811
+ @builtins.property
812
+ def unwrap(
813
+ self,
814
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
815
+ '''
816
+ :default: - false
817
+
818
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-unwrap
819
+ '''
820
+ result = self._values.get("unwrap")
821
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
822
+
823
+ @builtins.property
824
+ def verify(
825
+ self,
826
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
827
+ '''Specifies whether an AWS Payment Cryptography key can be used to verify signatures.
828
+
829
+ :default: - false
830
+
831
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-verify
832
+ '''
833
+ result = self._values.get("verify")
834
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
835
+
836
+ @builtins.property
837
+ def wrap(
838
+ self,
839
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
840
+ '''Specifies whether an AWS Payment Cryptography key can be used to wrap other keys.
841
+
842
+ :default: - false
843
+
844
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keymodesofuse.html#cfn-paymentcryptography-key-keymodesofuse-wrap
845
+ '''
846
+ result = self._values.get("wrap")
847
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
848
+
849
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
850
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
851
+
852
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
853
+ return not (rhs == self)
854
+
855
+ def __repr__(self) -> str:
856
+ return "KeyModesOfUseProperty(%s)" % ", ".join(
857
+ k + "=" + repr(v) for k, v in self._values.items()
858
+ )
859
+
860
+
861
+ @jsii.data_type(
862
+ jsii_type="aws-cdk-lib.aws_paymentcryptography.CfnKeyProps",
863
+ jsii_struct_bases=[],
864
+ name_mapping={
865
+ "exportable": "exportable",
866
+ "key_attributes": "keyAttributes",
867
+ "enabled": "enabled",
868
+ "key_check_value_algorithm": "keyCheckValueAlgorithm",
869
+ "tags": "tags",
870
+ },
871
+ )
872
+ class CfnKeyProps:
873
+ def __init__(
874
+ self,
875
+ *,
876
+ exportable: typing.Union[builtins.bool, _IResolvable_da3f097b],
877
+ key_attributes: typing.Union[_IResolvable_da3f097b, typing.Union[CfnKey.KeyAttributesProperty, typing.Dict[builtins.str, typing.Any]]],
878
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
879
+ key_check_value_algorithm: typing.Optional[builtins.str] = None,
880
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
881
+ ) -> None:
882
+ '''Properties for defining a ``CfnKey``.
883
+
884
+ :param exportable: Specifies whether the key is exportable. This data is immutable after the key is created.
885
+ :param key_attributes: The role of the key, the algorithm it supports, and the cryptographic operations allowed with the key. This data is immutable after the key is created.
886
+ :param enabled: Specifies whether the key is enabled.
887
+ :param key_check_value_algorithm: The algorithm that AWS Payment Cryptography uses to calculate the key check value (KCV). It is used to validate the key integrity. For TDES keys, the KCV is computed by encrypting 8 bytes, each with value of zero, with the key to be checked and retaining the 3 highest order bytes of the encrypted result. For AES keys, the KCV is computed using a CMAC algorithm where the input data is 16 bytes of zero and retaining the 3 highest order bytes of the encrypted result.
888
+ :param tags:
889
+
890
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html
891
+ :exampleMetadata: fixture=_generated
892
+
893
+ Example::
894
+
895
+ # The code below shows an example of how to instantiate this type.
896
+ # The values are placeholders you should change.
897
+ from aws_cdk import aws_paymentcryptography as paymentcryptography
898
+
899
+ cfn_key_props = paymentcryptography.CfnKeyProps(
900
+ exportable=False,
901
+ key_attributes=paymentcryptography.CfnKey.KeyAttributesProperty(
902
+ key_algorithm="keyAlgorithm",
903
+ key_class="keyClass",
904
+ key_modes_of_use=paymentcryptography.CfnKey.KeyModesOfUseProperty(
905
+ decrypt=False,
906
+ derive_key=False,
907
+ encrypt=False,
908
+ generate=False,
909
+ no_restrictions=False,
910
+ sign=False,
911
+ unwrap=False,
912
+ verify=False,
913
+ wrap=False
914
+ ),
915
+ key_usage="keyUsage"
916
+ ),
917
+
918
+ # the properties below are optional
919
+ enabled=False,
920
+ key_check_value_algorithm="keyCheckValueAlgorithm",
921
+ tags=[CfnTag(
922
+ key="key",
923
+ value="value"
924
+ )]
925
+ )
926
+ '''
927
+ if __debug__:
928
+ type_hints = typing.get_type_hints(_typecheckingstub__1ba44ca0d377189c3fde668037b0b7a8a9ee19fc052286d570ba26e888b2cf78)
929
+ check_type(argname="argument exportable", value=exportable, expected_type=type_hints["exportable"])
930
+ check_type(argname="argument key_attributes", value=key_attributes, expected_type=type_hints["key_attributes"])
931
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
932
+ check_type(argname="argument key_check_value_algorithm", value=key_check_value_algorithm, expected_type=type_hints["key_check_value_algorithm"])
933
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
934
+ self._values: typing.Dict[builtins.str, typing.Any] = {
935
+ "exportable": exportable,
936
+ "key_attributes": key_attributes,
937
+ }
938
+ if enabled is not None:
939
+ self._values["enabled"] = enabled
940
+ if key_check_value_algorithm is not None:
941
+ self._values["key_check_value_algorithm"] = key_check_value_algorithm
942
+ if tags is not None:
943
+ self._values["tags"] = tags
944
+
945
+ @builtins.property
946
+ def exportable(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
947
+ '''Specifies whether the key is exportable.
948
+
949
+ This data is immutable after the key is created.
950
+
951
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html#cfn-paymentcryptography-key-exportable
952
+ '''
953
+ result = self._values.get("exportable")
954
+ assert result is not None, "Required property 'exportable' is missing"
955
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
956
+
957
+ @builtins.property
958
+ def key_attributes(
959
+ self,
960
+ ) -> typing.Union[_IResolvable_da3f097b, CfnKey.KeyAttributesProperty]:
961
+ '''The role of the key, the algorithm it supports, and the cryptographic operations allowed with the key.
962
+
963
+ This data is immutable after the key is created.
964
+
965
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html#cfn-paymentcryptography-key-keyattributes
966
+ '''
967
+ result = self._values.get("key_attributes")
968
+ assert result is not None, "Required property 'key_attributes' is missing"
969
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnKey.KeyAttributesProperty], result)
970
+
971
+ @builtins.property
972
+ def enabled(
973
+ self,
974
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
975
+ '''Specifies whether the key is enabled.
976
+
977
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html#cfn-paymentcryptography-key-enabled
978
+ '''
979
+ result = self._values.get("enabled")
980
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
981
+
982
+ @builtins.property
983
+ def key_check_value_algorithm(self) -> typing.Optional[builtins.str]:
984
+ '''The algorithm that AWS Payment Cryptography uses to calculate the key check value (KCV).
985
+
986
+ It is used to validate the key integrity.
987
+
988
+ For TDES keys, the KCV is computed by encrypting 8 bytes, each with value of zero, with the key to be checked and retaining the 3 highest order bytes of the encrypted result. For AES keys, the KCV is computed using a CMAC algorithm where the input data is 16 bytes of zero and retaining the 3 highest order bytes of the encrypted result.
989
+
990
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html#cfn-paymentcryptography-key-keycheckvaluealgorithm
991
+ '''
992
+ result = self._values.get("key_check_value_algorithm")
993
+ return typing.cast(typing.Optional[builtins.str], result)
994
+
995
+ @builtins.property
996
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
997
+ '''
998
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-paymentcryptography-key.html#cfn-paymentcryptography-key-tags
999
+ '''
1000
+ result = self._values.get("tags")
1001
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
1002
+
1003
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1004
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1005
+
1006
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1007
+ return not (rhs == self)
1008
+
1009
+ def __repr__(self) -> str:
1010
+ return "CfnKeyProps(%s)" % ", ".join(
1011
+ k + "=" + repr(v) for k, v in self._values.items()
1012
+ )
1013
+
1014
+
1015
+ __all__ = [
1016
+ "CfnAlias",
1017
+ "CfnAliasProps",
1018
+ "CfnKey",
1019
+ "CfnKeyProps",
1020
+ ]
1021
+
1022
+ publication.publish()
1023
+
1024
+ def _typecheckingstub__03e3543c569149d753dcca4f9aa62f90766372bafcd1f94b89e73d5b425564e5(
1025
+ scope: _constructs_77d1e7e8.Construct,
1026
+ id: builtins.str,
1027
+ *,
1028
+ alias_name: builtins.str,
1029
+ key_arn: typing.Optional[builtins.str] = None,
1030
+ ) -> None:
1031
+ """Type checking stubs"""
1032
+ pass
1033
+
1034
+ def _typecheckingstub__4ff200923cccd5fdae928ff708195bbced1ef4f7d50f668b5c73f249ed90f28f(
1035
+ inspector: _TreeInspector_488e0dd5,
1036
+ ) -> None:
1037
+ """Type checking stubs"""
1038
+ pass
1039
+
1040
+ def _typecheckingstub__b8f80ee3646838aabf7e90939e0251f8840c956ccf920965fde8a918b4cbf79b(
1041
+ props: typing.Mapping[builtins.str, typing.Any],
1042
+ ) -> None:
1043
+ """Type checking stubs"""
1044
+ pass
1045
+
1046
+ def _typecheckingstub__dbda40ab380bdefcb4b1f97fbdfb383ed08815fcaf1d136e881314e872f7e42b(
1047
+ value: builtins.str,
1048
+ ) -> None:
1049
+ """Type checking stubs"""
1050
+ pass
1051
+
1052
+ def _typecheckingstub__fbafef3a7fe6a4ee77cdd86bde1df29b8df0e985f7099527ccce1ce9c0fb18d5(
1053
+ value: typing.Optional[builtins.str],
1054
+ ) -> None:
1055
+ """Type checking stubs"""
1056
+ pass
1057
+
1058
+ def _typecheckingstub__0461ccf0903c4c242ef15c5e4bc2830b51a5cf5ebc2b326557f67cfef92bc428(
1059
+ *,
1060
+ alias_name: builtins.str,
1061
+ key_arn: typing.Optional[builtins.str] = None,
1062
+ ) -> None:
1063
+ """Type checking stubs"""
1064
+ pass
1065
+
1066
+ def _typecheckingstub__eae3f8af01ec3a496044e22e7d1ce2b96cf8f20736ded57ce899a918f81a9596(
1067
+ scope: _constructs_77d1e7e8.Construct,
1068
+ id: builtins.str,
1069
+ *,
1070
+ exportable: typing.Union[builtins.bool, _IResolvable_da3f097b],
1071
+ key_attributes: typing.Union[_IResolvable_da3f097b, typing.Union[CfnKey.KeyAttributesProperty, typing.Dict[builtins.str, typing.Any]]],
1072
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1073
+ key_check_value_algorithm: typing.Optional[builtins.str] = None,
1074
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1075
+ ) -> None:
1076
+ """Type checking stubs"""
1077
+ pass
1078
+
1079
+ def _typecheckingstub__3d0701d054ede99cce0d90b76ac7d1ff4eb40159e6fd502b56930a0b0a1cb63c(
1080
+ inspector: _TreeInspector_488e0dd5,
1081
+ ) -> None:
1082
+ """Type checking stubs"""
1083
+ pass
1084
+
1085
+ def _typecheckingstub__67d0864ea174d57204bcc36c049839be306d7849f2c1c3dc30e1a6292d6885fd(
1086
+ props: typing.Mapping[builtins.str, typing.Any],
1087
+ ) -> None:
1088
+ """Type checking stubs"""
1089
+ pass
1090
+
1091
+ def _typecheckingstub__f21c25b942e06e9156561ac93e6371242b5b4ddbcb85077df885feaa89b2b2a6(
1092
+ value: typing.Union[builtins.bool, _IResolvable_da3f097b],
1093
+ ) -> None:
1094
+ """Type checking stubs"""
1095
+ pass
1096
+
1097
+ def _typecheckingstub__509385bb900abd87d7e9680c46b008a76766e5f51864d21972df261f9db73156(
1098
+ value: typing.Union[_IResolvable_da3f097b, CfnKey.KeyAttributesProperty],
1099
+ ) -> None:
1100
+ """Type checking stubs"""
1101
+ pass
1102
+
1103
+ def _typecheckingstub__1defb803536cf97ac83055a5760a6073dfc007fbfe2b34f9a774538091a30ef3(
1104
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
1105
+ ) -> None:
1106
+ """Type checking stubs"""
1107
+ pass
1108
+
1109
+ def _typecheckingstub__197ab67a28372d3c264e1414d929d0c2287a028faf7915197718c789307d1350(
1110
+ value: typing.Optional[builtins.str],
1111
+ ) -> None:
1112
+ """Type checking stubs"""
1113
+ pass
1114
+
1115
+ def _typecheckingstub__78d5368ca44b0ca5acba26b914716e9d9e8bb1acb0511f4f2a701cf6fcdd968d(
1116
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
1117
+ ) -> None:
1118
+ """Type checking stubs"""
1119
+ pass
1120
+
1121
+ def _typecheckingstub__0b75d16f6c2607cb760edf67dc96a26bed574dca4a5534dd5e3593befcc5f0a6(
1122
+ *,
1123
+ key_algorithm: builtins.str,
1124
+ key_class: builtins.str,
1125
+ key_modes_of_use: typing.Union[_IResolvable_da3f097b, typing.Union[CfnKey.KeyModesOfUseProperty, typing.Dict[builtins.str, typing.Any]]],
1126
+ key_usage: builtins.str,
1127
+ ) -> None:
1128
+ """Type checking stubs"""
1129
+ pass
1130
+
1131
+ def _typecheckingstub__19bb5a67c0e2112fa91ea214bcd53a4406d0b3e006c09d38e9c0cd851824cb05(
1132
+ *,
1133
+ decrypt: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1134
+ derive_key: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1135
+ encrypt: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1136
+ generate: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1137
+ no_restrictions: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1138
+ sign: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1139
+ unwrap: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1140
+ verify: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1141
+ wrap: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1142
+ ) -> None:
1143
+ """Type checking stubs"""
1144
+ pass
1145
+
1146
+ def _typecheckingstub__1ba44ca0d377189c3fde668037b0b7a8a9ee19fc052286d570ba26e888b2cf78(
1147
+ *,
1148
+ exportable: typing.Union[builtins.bool, _IResolvable_da3f097b],
1149
+ key_attributes: typing.Union[_IResolvable_da3f097b, typing.Union[CfnKey.KeyAttributesProperty, typing.Dict[builtins.str, typing.Any]]],
1150
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1151
+ key_check_value_algorithm: typing.Optional[builtins.str] = None,
1152
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1153
+ ) -> None:
1154
+ """Type checking stubs"""
1155
+ pass