aws-cdk-lib 2.117.0__py3-none-any.whl → 2.119.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 (57) hide show
  1. aws_cdk/__init__.py +138 -25
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.117.0.jsii.tgz → aws-cdk-lib@2.119.0.jsii.tgz} +0 -0
  4. aws_cdk/amzn_sdc/__init__.py +496 -0
  5. aws_cdk/aws_appsync/__init__.py +94 -22
  6. aws_cdk/aws_autoscaling/__init__.py +139 -74
  7. aws_cdk/aws_certificatemanager/__init__.py +164 -3
  8. aws_cdk/aws_cloud9/__init__.py +3 -3
  9. aws_cdk/aws_cloudfront/__init__.py +853 -38
  10. aws_cdk/aws_cloudtrail/__init__.py +54 -34
  11. aws_cdk/aws_cloudwatch_actions/__init__.py +105 -0
  12. aws_cdk/aws_codebuild/__init__.py +46 -5
  13. aws_cdk/aws_codecommit/__init__.py +9 -3
  14. aws_cdk/aws_codepipeline_actions/__init__.py +54 -0
  15. aws_cdk/aws_codetest/__init__.py +788 -0
  16. aws_cdk/aws_cognito/__init__.py +104 -0
  17. aws_cdk/aws_connect/__init__.py +626 -78
  18. aws_cdk/aws_docdb/__init__.py +442 -0
  19. aws_cdk/aws_dynamodb/__init__.py +14 -0
  20. aws_cdk/aws_ec2/__init__.py +372 -44
  21. aws_cdk/aws_ecs/__init__.py +192 -35
  22. aws_cdk/aws_emrserverless/__init__.py +20 -13
  23. aws_cdk/aws_events/__init__.py +90 -1
  24. aws_cdk/aws_fis/__init__.py +12 -32
  25. aws_cdk/aws_globalaccelerator/__init__.py +19 -0
  26. aws_cdk/aws_glue/__init__.py +329 -0
  27. aws_cdk/aws_iam/__init__.py +50 -24
  28. aws_cdk/aws_iot/__init__.py +112 -0
  29. aws_cdk/aws_iotsitewise/__init__.py +4 -4
  30. aws_cdk/aws_kendra/__init__.py +10 -5
  31. aws_cdk/aws_kinesisfirehose/__init__.py +111 -0
  32. aws_cdk/aws_lambda/__init__.py +180 -407
  33. aws_cdk/aws_location/__init__.py +1132 -17
  34. aws_cdk/aws_mediatailor/__init__.py +120 -17
  35. aws_cdk/aws_networkfirewall/__init__.py +2 -2
  36. aws_cdk/aws_networkmanager/__init__.py +1 -1
  37. aws_cdk/aws_omics/__init__.py +4 -4
  38. aws_cdk/aws_opensearchservice/__init__.py +58 -0
  39. aws_cdk/aws_pinpoint/__init__.py +14 -6
  40. aws_cdk/aws_pipes/__init__.py +7 -2
  41. aws_cdk/aws_rds/__init__.py +247 -16
  42. aws_cdk/aws_redshift/__init__.py +103 -0
  43. aws_cdk/aws_route53/__init__.py +68 -20
  44. aws_cdk/aws_s3/__init__.py +2 -4
  45. aws_cdk/aws_s3objectlambda/__init__.py +2 -2
  46. aws_cdk/aws_servicecatalogappregistry/__init__.py +3 -3
  47. aws_cdk/aws_signer/__init__.py +27 -4
  48. aws_cdk/aws_ssm/__init__.py +76 -13
  49. aws_cdk/aws_stepfunctions/__init__.py +110 -5
  50. aws_cdk/aws_stepfunctions_tasks/__init__.py +84 -29
  51. aws_cdk/pipelines/__init__.py +136 -37
  52. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/LICENSE +1 -1
  53. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/METADATA +98 -12
  54. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/NOTICE +1 -1
  55. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/RECORD +57 -55
  56. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/WHEEL +0 -0
  57. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/top_level.txt +0 -0
@@ -141,7 +141,8 @@ import aws_cdk.aws_acmpca as acmpca
141
141
  acm.PrivateCertificate(self, "PrivateCertificate",
142
142
  domain_name="test.example.com",
143
143
  subject_alternative_names=["cool.example.com", "test.example.net"], # optional
144
- certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77")
144
+ certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77"),
145
+ key_algorithm=acm.KeyAlgorithm.RSA_2048
145
146
  )
146
147
  ```
147
148
 
@@ -156,6 +157,25 @@ acm.Certificate(self, "Certificate",
156
157
  )
157
158
  ```
158
159
 
160
+ ## Key Algorithms
161
+
162
+ To specify the algorithm of the public and private key pair that your certificate uses to encrypt data use the `keyAlgorithm` property.
163
+
164
+ Algorithms supported for an ACM certificate request include:
165
+
166
+ * `RSA_2048`
167
+ * `EC_prime256v1`
168
+ * `EC_secp384r1`
169
+
170
+ ```python
171
+ acm.Certificate(self, "Certificate",
172
+ domain_name="test.example.com",
173
+ key_algorithm=acm.KeyAlgorithm.EC_PRIME256V1
174
+ )
175
+ ```
176
+
177
+ > Visit [Key algorithms](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms.title) for more details.
178
+
159
179
  ## Importing
160
180
 
161
181
  If you want to import an existing certificate, you can do so from its ARN:
@@ -239,6 +259,7 @@ from ..aws_route53 import IHostedZone as _IHostedZone_9a6907ad
239
259
  name_mapping={
240
260
  "domain_name": "domainName",
241
261
  "certificate_name": "certificateName",
262
+ "key_algorithm": "keyAlgorithm",
242
263
  "subject_alternative_names": "subjectAlternativeNames",
243
264
  "transparency_logging_enabled": "transparencyLoggingEnabled",
244
265
  "validation": "validation",
@@ -250,6 +271,7 @@ class CertificateProps:
250
271
  *,
251
272
  domain_name: builtins.str,
252
273
  certificate_name: typing.Optional[builtins.str] = None,
274
+ key_algorithm: typing.Optional["KeyAlgorithm"] = None,
253
275
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
254
276
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
255
277
  validation: typing.Optional["CertificateValidation"] = None,
@@ -258,6 +280,7 @@ class CertificateProps:
258
280
 
259
281
  :param domain_name: Fully-qualified domain name to request a certificate for. May contain wildcards, such as ``*.domain.com``.
260
282
  :param certificate_name: The Certificate name. Since the Certificate resource doesn't support providing a physical name, the value provided here will be recorded in the ``Name`` tag Default: the full, absolute path of this construct
283
+ :param key_algorithm: Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. Default: KeyAlgorithm.RSA_2048
261
284
  :param subject_alternative_names: Alternative domain names on your certificate. Use this to register alternative domain names that represent the same site. Default: - No additional FQDNs will be included as alternative domain names.
262
285
  :param transparency_logging_enabled: Enable or disable transparency logging for this certificate. Once a certificate has been logged, it cannot be removed from the log. Opting out at that point will have no effect. If you opt out of logging when you request a certificate and then choose later to opt back in, your certificate will not be logged until it is renewed. If you want the certificate to be logged immediately, we recommend that you issue a new one. Default: true
263
286
  :param validation: How to validate this certificate. Default: CertificateValidation.fromEmail()
@@ -287,6 +310,7 @@ class CertificateProps:
287
310
  type_hints = typing.get_type_hints(_typecheckingstub__0454180af2ed6575d11cf361cd5374f722ba32d4007970472aca57751d85258f)
288
311
  check_type(argname="argument domain_name", value=domain_name, expected_type=type_hints["domain_name"])
289
312
  check_type(argname="argument certificate_name", value=certificate_name, expected_type=type_hints["certificate_name"])
313
+ check_type(argname="argument key_algorithm", value=key_algorithm, expected_type=type_hints["key_algorithm"])
290
314
  check_type(argname="argument subject_alternative_names", value=subject_alternative_names, expected_type=type_hints["subject_alternative_names"])
291
315
  check_type(argname="argument transparency_logging_enabled", value=transparency_logging_enabled, expected_type=type_hints["transparency_logging_enabled"])
292
316
  check_type(argname="argument validation", value=validation, expected_type=type_hints["validation"])
@@ -295,6 +319,8 @@ class CertificateProps:
295
319
  }
296
320
  if certificate_name is not None:
297
321
  self._values["certificate_name"] = certificate_name
322
+ if key_algorithm is not None:
323
+ self._values["key_algorithm"] = key_algorithm
298
324
  if subject_alternative_names is not None:
299
325
  self._values["subject_alternative_names"] = subject_alternative_names
300
326
  if transparency_logging_enabled is not None:
@@ -323,6 +349,17 @@ class CertificateProps:
323
349
  result = self._values.get("certificate_name")
324
350
  return typing.cast(typing.Optional[builtins.str], result)
325
351
 
352
+ @builtins.property
353
+ def key_algorithm(self) -> typing.Optional["KeyAlgorithm"]:
354
+ '''Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data.
355
+
356
+ :default: KeyAlgorithm.RSA_2048
357
+
358
+ :see: https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms.title
359
+ '''
360
+ result = self._values.get("key_algorithm")
361
+ return typing.cast(typing.Optional["KeyAlgorithm"], result)
362
+
326
363
  @builtins.property
327
364
  def subject_alternative_names(self) -> typing.Optional[typing.List[builtins.str]]:
328
365
  '''Alternative domain names on your certificate.
@@ -1419,6 +1456,7 @@ class CfnCertificateProps:
1419
1456
  name_mapping={
1420
1457
  "domain_name": "domainName",
1421
1458
  "certificate_name": "certificateName",
1459
+ "key_algorithm": "keyAlgorithm",
1422
1460
  "subject_alternative_names": "subjectAlternativeNames",
1423
1461
  "transparency_logging_enabled": "transparencyLoggingEnabled",
1424
1462
  "validation": "validation",
@@ -1435,6 +1473,7 @@ class DnsValidatedCertificateProps(CertificateProps):
1435
1473
  *,
1436
1474
  domain_name: builtins.str,
1437
1475
  certificate_name: typing.Optional[builtins.str] = None,
1476
+ key_algorithm: typing.Optional["KeyAlgorithm"] = None,
1438
1477
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
1439
1478
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
1440
1479
  validation: typing.Optional[CertificateValidation] = None,
@@ -1448,6 +1487,7 @@ class DnsValidatedCertificateProps(CertificateProps):
1448
1487
 
1449
1488
  :param domain_name: Fully-qualified domain name to request a certificate for. May contain wildcards, such as ``*.domain.com``.
1450
1489
  :param certificate_name: The Certificate name. Since the Certificate resource doesn't support providing a physical name, the value provided here will be recorded in the ``Name`` tag Default: the full, absolute path of this construct
1490
+ :param key_algorithm: Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. Default: KeyAlgorithm.RSA_2048
1451
1491
  :param subject_alternative_names: Alternative domain names on your certificate. Use this to register alternative domain names that represent the same site. Default: - No additional FQDNs will be included as alternative domain names.
1452
1492
  :param transparency_logging_enabled: Enable or disable transparency logging for this certificate. Once a certificate has been logged, it cannot be removed from the log. Opting out at that point will have no effect. If you opt out of logging when you request a certificate and then choose later to opt back in, your certificate will not be logged until it is renewed. If you want the certificate to be logged immediately, we recommend that you issue a new one. Default: true
1453
1493
  :param validation: How to validate this certificate. Default: CertificateValidation.fromEmail()
@@ -1469,6 +1509,7 @@ class DnsValidatedCertificateProps(CertificateProps):
1469
1509
 
1470
1510
  # certificate_validation: certificatemanager.CertificateValidation
1471
1511
  # hosted_zone: route53.HostedZone
1512
+ # key_algorithm: certificatemanager.KeyAlgorithm
1472
1513
  # role: iam.Role
1473
1514
 
1474
1515
  dns_validated_certificate_props = certificatemanager.DnsValidatedCertificateProps(
@@ -1479,6 +1520,7 @@ class DnsValidatedCertificateProps(CertificateProps):
1479
1520
  certificate_name="certificateName",
1480
1521
  cleanup_route53_records=False,
1481
1522
  custom_resource_role=role,
1523
+ key_algorithm=key_algorithm,
1482
1524
  region="region",
1483
1525
  route53_endpoint="route53Endpoint",
1484
1526
  subject_alternative_names=["subjectAlternativeNames"],
@@ -1490,6 +1532,7 @@ class DnsValidatedCertificateProps(CertificateProps):
1490
1532
  type_hints = typing.get_type_hints(_typecheckingstub__f8749c95da859ba878861eff7c4231de11fa86681f0df8dbe02a3b4e4f5128b6)
1491
1533
  check_type(argname="argument domain_name", value=domain_name, expected_type=type_hints["domain_name"])
1492
1534
  check_type(argname="argument certificate_name", value=certificate_name, expected_type=type_hints["certificate_name"])
1535
+ check_type(argname="argument key_algorithm", value=key_algorithm, expected_type=type_hints["key_algorithm"])
1493
1536
  check_type(argname="argument subject_alternative_names", value=subject_alternative_names, expected_type=type_hints["subject_alternative_names"])
1494
1537
  check_type(argname="argument transparency_logging_enabled", value=transparency_logging_enabled, expected_type=type_hints["transparency_logging_enabled"])
1495
1538
  check_type(argname="argument validation", value=validation, expected_type=type_hints["validation"])
@@ -1504,6 +1547,8 @@ class DnsValidatedCertificateProps(CertificateProps):
1504
1547
  }
1505
1548
  if certificate_name is not None:
1506
1549
  self._values["certificate_name"] = certificate_name
1550
+ if key_algorithm is not None:
1551
+ self._values["key_algorithm"] = key_algorithm
1507
1552
  if subject_alternative_names is not None:
1508
1553
  self._values["subject_alternative_names"] = subject_alternative_names
1509
1554
  if transparency_logging_enabled is not None:
@@ -1540,6 +1585,17 @@ class DnsValidatedCertificateProps(CertificateProps):
1540
1585
  result = self._values.get("certificate_name")
1541
1586
  return typing.cast(typing.Optional[builtins.str], result)
1542
1587
 
1588
+ @builtins.property
1589
+ def key_algorithm(self) -> typing.Optional["KeyAlgorithm"]:
1590
+ '''Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data.
1591
+
1592
+ :default: KeyAlgorithm.RSA_2048
1593
+
1594
+ :see: https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms.title
1595
+ '''
1596
+ result = self._values.get("key_algorithm")
1597
+ return typing.cast(typing.Optional["KeyAlgorithm"], result)
1598
+
1543
1599
  @builtins.property
1544
1600
  def subject_alternative_names(self) -> typing.Optional[typing.List[builtins.str]]:
1545
1601
  '''Alternative domain names on your certificate.
@@ -1753,6 +1809,65 @@ class _ICertificateProxy(
1753
1809
  typing.cast(typing.Any, ICertificate).__jsii_proxy_class__ = lambda : _ICertificateProxy
1754
1810
 
1755
1811
 
1812
+ class KeyAlgorithm(
1813
+ metaclass=jsii.JSIIMeta,
1814
+ jsii_type="aws-cdk-lib.aws_certificatemanager.KeyAlgorithm",
1815
+ ):
1816
+ '''Certificate Manager key algorithm.
1817
+
1818
+ If you need to use an algorithm that doesn't exist as a static member, you
1819
+ can instantiate a ``KeyAlgorithm`` object, e.g: ``new KeyAlgorithm('RSA_2048')``.
1820
+
1821
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-keyalgorithm
1822
+ :exampleMetadata: infused
1823
+
1824
+ Example::
1825
+
1826
+ import aws_cdk.aws_acmpca as acmpca
1827
+
1828
+
1829
+ acm.PrivateCertificate(self, "PrivateCertificate",
1830
+ domain_name="test.example.com",
1831
+ subject_alternative_names=["cool.example.com", "test.example.net"], # optional
1832
+ certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77"),
1833
+ key_algorithm=acm.KeyAlgorithm.RSA_2048
1834
+ )
1835
+ '''
1836
+
1837
+ def __init__(self, name: builtins.str) -> None:
1838
+ '''
1839
+ :param name: The name of the algorithm.
1840
+ '''
1841
+ if __debug__:
1842
+ type_hints = typing.get_type_hints(_typecheckingstub__cad5e05f7974be056d9b0af63d73115399c3a158fbaae8fc08f093bd54934b5b)
1843
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1844
+ jsii.create(self.__class__, self, [name])
1845
+
1846
+ @jsii.python.classproperty
1847
+ @jsii.member(jsii_name="EC_PRIME256V1")
1848
+ def EC_PRIME256_V1(cls) -> "KeyAlgorithm":
1849
+ '''EC_prime256v1 algorithm.'''
1850
+ return typing.cast("KeyAlgorithm", jsii.sget(cls, "EC_PRIME256V1"))
1851
+
1852
+ @jsii.python.classproperty
1853
+ @jsii.member(jsii_name="EC_SECP384R1")
1854
+ def EC_SECP384_R1(cls) -> "KeyAlgorithm":
1855
+ '''EC_secp384r1 algorithm.'''
1856
+ return typing.cast("KeyAlgorithm", jsii.sget(cls, "EC_SECP384R1"))
1857
+
1858
+ @jsii.python.classproperty
1859
+ @jsii.member(jsii_name="RSA_2048")
1860
+ def RSA_2048(cls) -> "KeyAlgorithm":
1861
+ '''RSA_2048 algorithm.'''
1862
+ return typing.cast("KeyAlgorithm", jsii.sget(cls, "RSA_2048"))
1863
+
1864
+ @builtins.property
1865
+ @jsii.member(jsii_name="name")
1866
+ def name(self) -> builtins.str:
1867
+ '''The name of the algorithm.'''
1868
+ return typing.cast(builtins.str, jsii.get(self, "name"))
1869
+
1870
+
1756
1871
  @jsii.implements(ICertificate)
1757
1872
  class PrivateCertificate(
1758
1873
  _Resource_45bc6135,
@@ -1772,7 +1887,8 @@ class PrivateCertificate(
1772
1887
  acm.PrivateCertificate(self, "PrivateCertificate",
1773
1888
  domain_name="test.example.com",
1774
1889
  subject_alternative_names=["cool.example.com", "test.example.net"], # optional
1775
- certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77")
1890
+ certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77"),
1891
+ key_algorithm=acm.KeyAlgorithm.RSA_2048
1776
1892
  )
1777
1893
  '''
1778
1894
 
@@ -1783,6 +1899,7 @@ class PrivateCertificate(
1783
1899
  *,
1784
1900
  certificate_authority: _ICertificateAuthority_26727cab,
1785
1901
  domain_name: builtins.str,
1902
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
1786
1903
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
1787
1904
  ) -> None:
1788
1905
  '''
@@ -1790,6 +1907,7 @@ class PrivateCertificate(
1790
1907
  :param id: -
1791
1908
  :param certificate_authority: Private certificate authority (CA) that will be used to issue the certificate.
1792
1909
  :param domain_name: Fully-qualified domain name to request a private certificate for. May contain wildcards, such as ``*.domain.com``.
1910
+ :param key_algorithm: Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. When you request a private PKI certificate signed by a CA from AWS Private CA, the specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key. Default: KeyAlgorithm.RSA_2048
1793
1911
  :param subject_alternative_names: Alternative domain names on your private certificate. Use this to register alternative domain names that represent the same site. Default: - No additional FQDNs will be included as alternative domain names.
1794
1912
  '''
1795
1913
  if __debug__:
@@ -1799,6 +1917,7 @@ class PrivateCertificate(
1799
1917
  props = PrivateCertificateProps(
1800
1918
  certificate_authority=certificate_authority,
1801
1919
  domain_name=domain_name,
1920
+ key_algorithm=key_algorithm,
1802
1921
  subject_alternative_names=subject_alternative_names,
1803
1922
  )
1804
1923
 
@@ -1885,6 +2004,7 @@ class PrivateCertificate(
1885
2004
  name_mapping={
1886
2005
  "certificate_authority": "certificateAuthority",
1887
2006
  "domain_name": "domainName",
2007
+ "key_algorithm": "keyAlgorithm",
1888
2008
  "subject_alternative_names": "subjectAlternativeNames",
1889
2009
  },
1890
2010
  )
@@ -1894,12 +2014,14 @@ class PrivateCertificateProps:
1894
2014
  *,
1895
2015
  certificate_authority: _ICertificateAuthority_26727cab,
1896
2016
  domain_name: builtins.str,
2017
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
1897
2018
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
1898
2019
  ) -> None:
1899
2020
  '''Properties for your private certificate.
1900
2021
 
1901
2022
  :param certificate_authority: Private certificate authority (CA) that will be used to issue the certificate.
1902
2023
  :param domain_name: Fully-qualified domain name to request a private certificate for. May contain wildcards, such as ``*.domain.com``.
2024
+ :param key_algorithm: Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. When you request a private PKI certificate signed by a CA from AWS Private CA, the specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key. Default: KeyAlgorithm.RSA_2048
1903
2025
  :param subject_alternative_names: Alternative domain names on your private certificate. Use this to register alternative domain names that represent the same site. Default: - No additional FQDNs will be included as alternative domain names.
1904
2026
 
1905
2027
  :exampleMetadata: infused
@@ -1912,18 +2034,22 @@ class PrivateCertificateProps:
1912
2034
  acm.PrivateCertificate(self, "PrivateCertificate",
1913
2035
  domain_name="test.example.com",
1914
2036
  subject_alternative_names=["cool.example.com", "test.example.net"], # optional
1915
- certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77")
2037
+ certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77"),
2038
+ key_algorithm=acm.KeyAlgorithm.RSA_2048
1916
2039
  )
1917
2040
  '''
1918
2041
  if __debug__:
1919
2042
  type_hints = typing.get_type_hints(_typecheckingstub__74588c43933e5f34a3203601cc823ca974676f71701280dcd43e9f037bba43e3)
1920
2043
  check_type(argname="argument certificate_authority", value=certificate_authority, expected_type=type_hints["certificate_authority"])
1921
2044
  check_type(argname="argument domain_name", value=domain_name, expected_type=type_hints["domain_name"])
2045
+ check_type(argname="argument key_algorithm", value=key_algorithm, expected_type=type_hints["key_algorithm"])
1922
2046
  check_type(argname="argument subject_alternative_names", value=subject_alternative_names, expected_type=type_hints["subject_alternative_names"])
1923
2047
  self._values: typing.Dict[builtins.str, typing.Any] = {
1924
2048
  "certificate_authority": certificate_authority,
1925
2049
  "domain_name": domain_name,
1926
2050
  }
2051
+ if key_algorithm is not None:
2052
+ self._values["key_algorithm"] = key_algorithm
1927
2053
  if subject_alternative_names is not None:
1928
2054
  self._values["subject_alternative_names"] = subject_alternative_names
1929
2055
 
@@ -1944,6 +2070,20 @@ class PrivateCertificateProps:
1944
2070
  assert result is not None, "Required property 'domain_name' is missing"
1945
2071
  return typing.cast(builtins.str, result)
1946
2072
 
2073
+ @builtins.property
2074
+ def key_algorithm(self) -> typing.Optional[KeyAlgorithm]:
2075
+ '''Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data.
2076
+
2077
+ When you request a private PKI certificate signed by a CA from AWS Private CA, the specified signing algorithm family
2078
+ (RSA or ECDSA) must match the algorithm family of the CA's secret key.
2079
+
2080
+ :default: KeyAlgorithm.RSA_2048
2081
+
2082
+ :see: https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms.title
2083
+ '''
2084
+ result = self._values.get("key_algorithm")
2085
+ return typing.cast(typing.Optional[KeyAlgorithm], result)
2086
+
1947
2087
  @builtins.property
1948
2088
  def subject_alternative_names(self) -> typing.Optional[typing.List[builtins.str]]:
1949
2089
  '''Alternative domain names on your private certificate.
@@ -2021,6 +2161,7 @@ class Certificate(
2021
2161
  *,
2022
2162
  domain_name: builtins.str,
2023
2163
  certificate_name: typing.Optional[builtins.str] = None,
2164
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2024
2165
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2025
2166
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
2026
2167
  validation: typing.Optional[CertificateValidation] = None,
@@ -2030,6 +2171,7 @@ class Certificate(
2030
2171
  :param id: -
2031
2172
  :param domain_name: Fully-qualified domain name to request a certificate for. May contain wildcards, such as ``*.domain.com``.
2032
2173
  :param certificate_name: The Certificate name. Since the Certificate resource doesn't support providing a physical name, the value provided here will be recorded in the ``Name`` tag Default: the full, absolute path of this construct
2174
+ :param key_algorithm: Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. Default: KeyAlgorithm.RSA_2048
2033
2175
  :param subject_alternative_names: Alternative domain names on your certificate. Use this to register alternative domain names that represent the same site. Default: - No additional FQDNs will be included as alternative domain names.
2034
2176
  :param transparency_logging_enabled: Enable or disable transparency logging for this certificate. Once a certificate has been logged, it cannot be removed from the log. Opting out at that point will have no effect. If you opt out of logging when you request a certificate and then choose later to opt back in, your certificate will not be logged until it is renewed. If you want the certificate to be logged immediately, we recommend that you issue a new one. Default: true
2035
2177
  :param validation: How to validate this certificate. Default: CertificateValidation.fromEmail()
@@ -2041,6 +2183,7 @@ class Certificate(
2041
2183
  props = CertificateProps(
2042
2184
  domain_name=domain_name,
2043
2185
  certificate_name=certificate_name,
2186
+ key_algorithm=key_algorithm,
2044
2187
  subject_alternative_names=subject_alternative_names,
2045
2188
  transparency_logging_enabled=transparency_logging_enabled,
2046
2189
  validation=validation,
@@ -2150,6 +2293,7 @@ class DnsValidatedCertificate(
2150
2293
 
2151
2294
  # certificate_validation: certificatemanager.CertificateValidation
2152
2295
  # hosted_zone: route53.HostedZone
2296
+ # key_algorithm: certificatemanager.KeyAlgorithm
2153
2297
  # role: iam.Role
2154
2298
 
2155
2299
  dns_validated_certificate = certificatemanager.DnsValidatedCertificate(self, "MyDnsValidatedCertificate",
@@ -2160,6 +2304,7 @@ class DnsValidatedCertificate(
2160
2304
  certificate_name="certificateName",
2161
2305
  cleanup_route53_records=False,
2162
2306
  custom_resource_role=role,
2307
+ key_algorithm=key_algorithm,
2163
2308
  region="region",
2164
2309
  route53_endpoint="route53Endpoint",
2165
2310
  subject_alternative_names=["subjectAlternativeNames"],
@@ -2180,6 +2325,7 @@ class DnsValidatedCertificate(
2180
2325
  route53_endpoint: typing.Optional[builtins.str] = None,
2181
2326
  domain_name: builtins.str,
2182
2327
  certificate_name: typing.Optional[builtins.str] = None,
2328
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2183
2329
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2184
2330
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
2185
2331
  validation: typing.Optional[CertificateValidation] = None,
@@ -2194,6 +2340,7 @@ class DnsValidatedCertificate(
2194
2340
  :param route53_endpoint: An endpoint of Route53 service, which is not necessary as AWS SDK could figure out the right endpoints for most regions, but for some regions such as those in aws-cn partition, the default endpoint is not working now, hence the right endpoint need to be specified through this prop. Route53 is not been officially launched in China, it is only available for AWS internal accounts now. To make DnsValidatedCertificate work for internal accounts now, a special endpoint needs to be provided. Default: - The AWS SDK will determine the Route53 endpoint to use based on region
2195
2341
  :param domain_name: Fully-qualified domain name to request a certificate for. May contain wildcards, such as ``*.domain.com``.
2196
2342
  :param certificate_name: The Certificate name. Since the Certificate resource doesn't support providing a physical name, the value provided here will be recorded in the ``Name`` tag Default: the full, absolute path of this construct
2343
+ :param key_algorithm: Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. Default: KeyAlgorithm.RSA_2048
2197
2344
  :param subject_alternative_names: Alternative domain names on your certificate. Use this to register alternative domain names that represent the same site. Default: - No additional FQDNs will be included as alternative domain names.
2198
2345
  :param transparency_logging_enabled: Enable or disable transparency logging for this certificate. Once a certificate has been logged, it cannot be removed from the log. Opting out at that point will have no effect. If you opt out of logging when you request a certificate and then choose later to opt back in, your certificate will not be logged until it is renewed. If you want the certificate to be logged immediately, we recommend that you issue a new one. Default: true
2199
2346
  :param validation: How to validate this certificate. Default: CertificateValidation.fromEmail()
@@ -2212,6 +2359,7 @@ class DnsValidatedCertificate(
2212
2359
  route53_endpoint=route53_endpoint,
2213
2360
  domain_name=domain_name,
2214
2361
  certificate_name=certificate_name,
2362
+ key_algorithm=key_algorithm,
2215
2363
  subject_alternative_names=subject_alternative_names,
2216
2364
  transparency_logging_enabled=transparency_logging_enabled,
2217
2365
  validation=validation,
@@ -2324,6 +2472,7 @@ __all__ = [
2324
2472
  "DnsValidatedCertificate",
2325
2473
  "DnsValidatedCertificateProps",
2326
2474
  "ICertificate",
2475
+ "KeyAlgorithm",
2327
2476
  "PrivateCertificate",
2328
2477
  "PrivateCertificateProps",
2329
2478
  "ValidationMethod",
@@ -2335,6 +2484,7 @@ def _typecheckingstub__0454180af2ed6575d11cf361cd5374f722ba32d4007970472aca57751
2335
2484
  *,
2336
2485
  domain_name: builtins.str,
2337
2486
  certificate_name: typing.Optional[builtins.str] = None,
2487
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2338
2488
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2339
2489
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
2340
2490
  validation: typing.Optional[CertificateValidation] = None,
@@ -2514,6 +2664,7 @@ def _typecheckingstub__f8749c95da859ba878861eff7c4231de11fa86681f0df8dbe02a3b4e4
2514
2664
  *,
2515
2665
  domain_name: builtins.str,
2516
2666
  certificate_name: typing.Optional[builtins.str] = None,
2667
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2517
2668
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2518
2669
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
2519
2670
  validation: typing.Optional[CertificateValidation] = None,
@@ -2526,12 +2677,19 @@ def _typecheckingstub__f8749c95da859ba878861eff7c4231de11fa86681f0df8dbe02a3b4e4
2526
2677
  """Type checking stubs"""
2527
2678
  pass
2528
2679
 
2680
+ def _typecheckingstub__cad5e05f7974be056d9b0af63d73115399c3a158fbaae8fc08f093bd54934b5b(
2681
+ name: builtins.str,
2682
+ ) -> None:
2683
+ """Type checking stubs"""
2684
+ pass
2685
+
2529
2686
  def _typecheckingstub__f15cee4bdac8e70000027c8ca1386d49408a399d3919aa965c46bb68facc21a4(
2530
2687
  scope: _constructs_77d1e7e8.Construct,
2531
2688
  id: builtins.str,
2532
2689
  *,
2533
2690
  certificate_authority: _ICertificateAuthority_26727cab,
2534
2691
  domain_name: builtins.str,
2692
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2535
2693
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2536
2694
  ) -> None:
2537
2695
  """Type checking stubs"""
@@ -2549,6 +2707,7 @@ def _typecheckingstub__74588c43933e5f34a3203601cc823ca974676f71701280dcd43e9f037
2549
2707
  *,
2550
2708
  certificate_authority: _ICertificateAuthority_26727cab,
2551
2709
  domain_name: builtins.str,
2710
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2552
2711
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2553
2712
  ) -> None:
2554
2713
  """Type checking stubs"""
@@ -2560,6 +2719,7 @@ def _typecheckingstub__64139efa4ed87482ec95b7e38ad6cf94c6873d02b05ba33c374316868
2560
2719
  *,
2561
2720
  domain_name: builtins.str,
2562
2721
  certificate_name: typing.Optional[builtins.str] = None,
2722
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2563
2723
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2564
2724
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
2565
2725
  validation: typing.Optional[CertificateValidation] = None,
@@ -2586,6 +2746,7 @@ def _typecheckingstub__9ce11c00a812f11e5a7783956e3e90d7c684153bef62852779a324183
2586
2746
  route53_endpoint: typing.Optional[builtins.str] = None,
2587
2747
  domain_name: builtins.str,
2588
2748
  certificate_name: typing.Optional[builtins.str] = None,
2749
+ key_algorithm: typing.Optional[KeyAlgorithm] = None,
2589
2750
  subject_alternative_names: typing.Optional[typing.Sequence[builtins.str]] = None,
2590
2751
  transparency_logging_enabled: typing.Optional[builtins.bool] = None,
2591
2752
  validation: typing.Optional[CertificateValidation] = None,
@@ -117,7 +117,7 @@ class CfnEnvironmentEC2(
117
117
  '''
118
118
  :param scope: Scope in which this resource is defined.
119
119
  :param id: Construct identifier for this resource (unique in its scope).
120
- :param image_id: The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path. From December 04, 2023, you will be required to include the ``imageId`` parameter for the ``CreateEnvironmentEC2`` action. This change will be reflected across all direct methods of communicating with the API, such as AWS SDK, AWS CLI and AWS CloudFormation. This change will only affect direct API consumers, and not AWS Cloud9 console users. From January 22, 2024, Amazon Linux (AL1) will be removed from the list of available image IDs for Cloud9. This is necessary as AL1 will reach the end of maintenance support in December 2023, and as a result will no longer receive security updates. We recommend using Amazon Linux 2023 as the new AMI to create your environment as it is fully supported. This change will only affect direct API consumers, and not AWS Cloud9 console users. Since Ubuntu 18.04 has ended standard support as of May 31, 2023, we recommend you choose Ubuntu 22.04. *AMI aliases* - Amazon Linux (end of maintenance support December 2023): ``amazonlinux-1-x86_64`` - Amazon Linux 2: ``amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``ubuntu-22.04-x86_64`` *SSM paths* - Amazon Linux (end of maintenance support December 2023): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64`` - Amazon Linux 2: ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64``
120
+ :param image_id: The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path. From December 04, 2023, you will be required to include the ``ImageId`` parameter for the ``CreateEnvironmentEC2`` action. This change will be reflected across all direct methods of communicating with the API, such as AWS SDK, AWS CLI and AWS CloudFormation. This change will only affect direct API consumers, and not AWS Cloud9 console users. From January 22, 2024, Amazon Linux (AL1) will be removed from the list of available image IDs for Cloud9. This is necessary as AL1 will reach the end of maintenance support in December 2023, and as a result will no longer receive security updates. We recommend using Amazon Linux 2023 as the new AMI to create your environment as it is fully supported. This change will only affect direct API consumers, and not AWS Cloud9 console users. Since Ubuntu 18.04 has ended standard support as of May 31, 2023, we recommend you choose Ubuntu 22.04. *AMI aliases* - Amazon Linux (end of maintenance support December 2023): ``amazonlinux-1-x86_64`` - Amazon Linux 2: ``amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``ubuntu-22.04-x86_64`` *SSM paths* - Amazon Linux (end of maintenance support December 2023): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64`` - Amazon Linux 2: ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64``
121
121
  :param instance_type: The type of instance to connect to the environment (for example, ``t2.micro`` ).
122
122
  :param automatic_stop_time_minutes: The number of minutes until the running instance is shut down after the environment was last used.
123
123
  :param connection_type: The connection type used for connecting to an Amazon EC2 environment. Valid values are ``CONNECT_SSH`` (default) and ``CONNECT_SSM`` (connected through AWS Systems Manager ).
@@ -461,7 +461,7 @@ class CfnEnvironmentEC2Props:
461
461
  ) -> None:
462
462
  '''Properties for defining a ``CfnEnvironmentEC2``.
463
463
 
464
- :param image_id: The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path. From December 04, 2023, you will be required to include the ``imageId`` parameter for the ``CreateEnvironmentEC2`` action. This change will be reflected across all direct methods of communicating with the API, such as AWS SDK, AWS CLI and AWS CloudFormation. This change will only affect direct API consumers, and not AWS Cloud9 console users. From January 22, 2024, Amazon Linux (AL1) will be removed from the list of available image IDs for Cloud9. This is necessary as AL1 will reach the end of maintenance support in December 2023, and as a result will no longer receive security updates. We recommend using Amazon Linux 2023 as the new AMI to create your environment as it is fully supported. This change will only affect direct API consumers, and not AWS Cloud9 console users. Since Ubuntu 18.04 has ended standard support as of May 31, 2023, we recommend you choose Ubuntu 22.04. *AMI aliases* - Amazon Linux (end of maintenance support December 2023): ``amazonlinux-1-x86_64`` - Amazon Linux 2: ``amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``ubuntu-22.04-x86_64`` *SSM paths* - Amazon Linux (end of maintenance support December 2023): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64`` - Amazon Linux 2: ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64``
464
+ :param image_id: The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path. From December 04, 2023, you will be required to include the ``ImageId`` parameter for the ``CreateEnvironmentEC2`` action. This change will be reflected across all direct methods of communicating with the API, such as AWS SDK, AWS CLI and AWS CloudFormation. This change will only affect direct API consumers, and not AWS Cloud9 console users. From January 22, 2024, Amazon Linux (AL1) will be removed from the list of available image IDs for Cloud9. This is necessary as AL1 will reach the end of maintenance support in December 2023, and as a result will no longer receive security updates. We recommend using Amazon Linux 2023 as the new AMI to create your environment as it is fully supported. This change will only affect direct API consumers, and not AWS Cloud9 console users. Since Ubuntu 18.04 has ended standard support as of May 31, 2023, we recommend you choose Ubuntu 22.04. *AMI aliases* - Amazon Linux (end of maintenance support December 2023): ``amazonlinux-1-x86_64`` - Amazon Linux 2: ``amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``ubuntu-22.04-x86_64`` *SSM paths* - Amazon Linux (end of maintenance support December 2023): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64`` - Amazon Linux 2: ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64`` - Amazon Linux 2023 (recommended): ``resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2023-x86_64`` - Ubuntu 18.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64`` - Ubuntu 22.04: ``resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64``
465
465
  :param instance_type: The type of instance to connect to the environment (for example, ``t2.micro`` ).
466
466
  :param automatic_stop_time_minutes: The number of minutes until the running instance is shut down after the environment was last used.
467
467
  :param connection_type: The connection type used for connecting to an Amazon EC2 environment. Valid values are ``CONNECT_SSH`` (default) and ``CONNECT_SSM`` (connected through AWS Systems Manager ).
@@ -541,7 +541,7 @@ class CfnEnvironmentEC2Props:
541
541
 
542
542
  To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path.
543
543
 
544
- From December 04, 2023, you will be required to include the ``imageId`` parameter for the ``CreateEnvironmentEC2`` action. This change will be reflected across all direct methods of communicating with the API, such as AWS SDK, AWS CLI and AWS CloudFormation. This change will only affect direct API consumers, and not AWS Cloud9 console users.
544
+ From December 04, 2023, you will be required to include the ``ImageId`` parameter for the ``CreateEnvironmentEC2`` action. This change will be reflected across all direct methods of communicating with the API, such as AWS SDK, AWS CLI and AWS CloudFormation. This change will only affect direct API consumers, and not AWS Cloud9 console users.
545
545
 
546
546
  From January 22, 2024, Amazon Linux (AL1) will be removed from the list of available image IDs for Cloud9. This is necessary as AL1 will reach the end of maintenance support in December 2023, and as a result will no longer receive security updates. We recommend using Amazon Linux 2023 as the new AMI to create your environment as it is fully supported. This change will only affect direct API consumers, and not AWS Cloud9 console users.
547
547