aws-cdk-lib 2.199.0__py3-none-any.whl → 2.200.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 (49) hide show
  1. aws_cdk/__init__.py +22 -24
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.199.0.jsii.tgz → aws-cdk-lib@2.200.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +1 -1
  5. aws_cdk/aws_apigateway/__init__.py +1 -1
  6. aws_cdk/aws_applicationautoscaling/__init__.py +4 -4
  7. aws_cdk/aws_aps/__init__.py +38 -30
  8. aws_cdk/aws_autoscaling/__init__.py +4 -4
  9. aws_cdk/aws_bedrock/__init__.py +73 -48
  10. aws_cdk/aws_cloudformation/__init__.py +17 -23
  11. aws_cdk/aws_cloudfront_origins/__init__.py +1 -1
  12. aws_cdk/aws_cloudtrail/__init__.py +4 -4
  13. aws_cdk/aws_cloudwatch/__init__.py +50 -1
  14. aws_cdk/aws_codebuild/__init__.py +116 -0
  15. aws_cdk/aws_datazone/__init__.py +699 -9
  16. aws_cdk/aws_deadline/__init__.py +38 -10
  17. aws_cdk/aws_ec2/__init__.py +78 -20
  18. aws_cdk/aws_elasticloadbalancingv2/__init__.py +7 -7
  19. aws_cdk/aws_emr/__init__.py +36 -2
  20. aws_cdk/aws_fsx/__init__.py +122 -0
  21. aws_cdk/aws_glue/__init__.py +55 -26
  22. aws_cdk/aws_iam/__init__.py +376 -2
  23. aws_cdk/aws_iot/__init__.py +57 -5
  24. aws_cdk/aws_kinesisfirehose/__init__.py +5 -1
  25. aws_cdk/aws_lambda/__init__.py +65 -45
  26. aws_cdk/aws_lex/__init__.py +27 -13
  27. aws_cdk/aws_lightsail/__init__.py +452 -0
  28. aws_cdk/aws_medialive/__init__.py +699 -497
  29. aws_cdk/aws_msk/__init__.py +4 -4
  30. aws_cdk/aws_networkfirewall/__init__.py +9 -5
  31. aws_cdk/aws_nimblestudio/__init__.py +208 -400
  32. aws_cdk/aws_panorama/__init__.py +30 -3
  33. aws_cdk/aws_pcs/__init__.py +12 -5
  34. aws_cdk/aws_rds/__init__.py +22 -10
  35. aws_cdk/aws_s3/__init__.py +367 -6
  36. aws_cdk/aws_s3express/__init__.py +789 -0
  37. aws_cdk/aws_ses/__init__.py +300 -32
  38. aws_cdk/aws_sns_subscriptions/__init__.py +256 -1
  39. aws_cdk/aws_stepfunctions/__init__.py +55 -17
  40. aws_cdk/aws_synthetics/__init__.py +26 -16
  41. aws_cdk/aws_voiceid/__init__.py +13 -3
  42. aws_cdk/cloud_assembly_schema/__init__.py +137 -42
  43. aws_cdk/cx_api/__init__.py +7 -7
  44. {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/METADATA +2 -2
  45. {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/RECORD +49 -49
  46. {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/LICENSE +0 -0
  47. {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/NOTICE +0 -0
  48. {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/WHEEL +0 -0
  49. {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/top_level.txt +0 -0
@@ -720,6 +720,36 @@ The following examples defines an OpenID Connect provider. Two client IDs
720
720
  (audiences) are will be able to send authentication requests to
721
721
  [https://openid/connect](https://openid/connect).
722
722
 
723
+ It is recommended to use the new `OidcProviderNative` which native CloudFormation resource `AWS::IAM::OIDCProvider` over the old `OpenIdConnectProvider` which uses a custom resource.
724
+
725
+ ```python
726
+ native_provider = iam.OidcProviderNative(self, "MyProvider",
727
+ url="https://openid/connect",
728
+ client_ids=["myclient1", "myclient2"],
729
+ thumbprints=["aa00aa1122aa00aa1122aa00aa1122aa00aa1122"]
730
+ )
731
+ ```
732
+
733
+ For the new `OidcProviderNative`, you must provide at least one thumbprint when creating an IAM OIDC
734
+ provider. For example, assume that the OIDC provider is server.example.com
735
+ and the provider stores its keys at
736
+ https://keys.server.example.com/openid-connect. In that case, the
737
+ thumbprint string would be the hex-encoded SHA-1 hash value of the
738
+ certificate used by https://keys.server.example.com.
739
+
740
+ The server certificate thumbprint is the hex-encoded SHA-1 hash value of
741
+ the X.509 certificate used by the domain where the OpenID Connect provider
742
+ makes its keys available. It is always a 40-character string.
743
+
744
+ Typically this list includes only one entry. However, IAM lets you have up
745
+ to five thumbprints for an OIDC provider. This lets you maintain multiple
746
+ thumbprints if the identity provider is rotating certificates.
747
+
748
+ Obtain the thumbprint of the root certificate authority from the provider's
749
+ server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html
750
+
751
+ The older `OpenIdConnectProvider` is still supported but it is recommended to use the new `OidcProviderNative` instead.
752
+
723
753
  ```python
724
754
  provider = iam.OpenIdConnectProvider(self, "MyProvider",
725
755
  url="https://openid/connect",
@@ -727,12 +757,12 @@ provider = iam.OpenIdConnectProvider(self, "MyProvider",
727
757
  )
728
758
  ```
729
759
 
730
- You can specify an optional list of `thumbprints`. If not specified, the
760
+ For the older `OpenIdConnectProvider`, you can specify an optional list of `thumbprints`. If not specified, the
731
761
  thumbprint of the root certificate authority (CA) will automatically be obtained
732
762
  from the host as described
733
763
  [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html).
734
764
 
735
- Byy default, the custom resource enforces strict security practices by rejecting
765
+ By default, the custom resource enforces strict security practices by rejecting
736
766
  any unauthorized connections when downloading CA thumbprints from the issuer URL.
737
767
  If you need to connect to an unauthorized OIDC identity provider and understand the
738
768
  implications, you can disable this behavior by setting the feature flag
@@ -8396,6 +8426,58 @@ class _IManagedPolicyProxy:
8396
8426
  typing.cast(typing.Any, IManagedPolicy).__jsii_proxy_class__ = lambda : _IManagedPolicyProxy
8397
8427
 
8398
8428
 
8429
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IOidcProvider")
8430
+ class IOidcProvider(_IResource_c80c4260, typing_extensions.Protocol):
8431
+ '''Represents an IAM OpenID Connect provider.'''
8432
+
8433
+ @builtins.property
8434
+ @jsii.member(jsii_name="oidcProviderArn")
8435
+ def oidc_provider_arn(self) -> builtins.str:
8436
+ '''The Amazon Resource Name (ARN) of the IAM OpenID Connect provider.
8437
+
8438
+ :attribute: true
8439
+ '''
8440
+ ...
8441
+
8442
+ @builtins.property
8443
+ @jsii.member(jsii_name="oidcProviderIssuer")
8444
+ def oidc_provider_issuer(self) -> builtins.str:
8445
+ '''The issuer for OIDC Provider.
8446
+
8447
+ :attribute: true
8448
+ '''
8449
+ ...
8450
+
8451
+
8452
+ class _IOidcProviderProxy(
8453
+ jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
8454
+ ):
8455
+ '''Represents an IAM OpenID Connect provider.'''
8456
+
8457
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_iam.IOidcProvider"
8458
+
8459
+ @builtins.property
8460
+ @jsii.member(jsii_name="oidcProviderArn")
8461
+ def oidc_provider_arn(self) -> builtins.str:
8462
+ '''The Amazon Resource Name (ARN) of the IAM OpenID Connect provider.
8463
+
8464
+ :attribute: true
8465
+ '''
8466
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderArn"))
8467
+
8468
+ @builtins.property
8469
+ @jsii.member(jsii_name="oidcProviderIssuer")
8470
+ def oidc_provider_issuer(self) -> builtins.str:
8471
+ '''The issuer for OIDC Provider.
8472
+
8473
+ :attribute: true
8474
+ '''
8475
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderIssuer"))
8476
+
8477
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
8478
+ typing.cast(typing.Any, IOidcProvider).__jsii_proxy_class__ = lambda : _IOidcProviderProxy
8479
+
8480
+
8399
8481
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IOpenIdConnectProvider")
8400
8482
  class IOpenIdConnectProvider(_IResource_c80c4260, typing_extensions.Protocol):
8401
8483
  '''Represents an IAM OpenID Connect provider.'''
@@ -9456,6 +9538,265 @@ class ManagedPolicyProps:
9456
9538
  )
9457
9539
 
9458
9540
 
9541
+ @jsii.implements(IOidcProvider)
9542
+ class OidcProviderNative(
9543
+ _Resource_45bc6135,
9544
+ metaclass=jsii.JSIIMeta,
9545
+ jsii_type="aws-cdk-lib.aws_iam.OidcProviderNative",
9546
+ ):
9547
+ '''IAM OIDC identity providers are entities in IAM that describe an external identity provider (IdP) service that supports the OpenID Connect (OIDC) standard, such as Google or Salesforce.
9548
+
9549
+ You use an IAM OIDC identity provider
9550
+ when you want to establish trust between an OIDC-compatible IdP and your AWS
9551
+ account. This is useful when creating a mobile app or web application that
9552
+ requires access to AWS resources, but you don't want to create custom sign-in
9553
+ code or manage your own user identities.
9554
+
9555
+ :see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
9556
+ :resource: AWS::IAM::OIDCProvider
9557
+ :exampleMetadata: infused
9558
+
9559
+ Example::
9560
+
9561
+ native_provider = iam.OidcProviderNative(self, "MyProvider",
9562
+ url="https://openid/connect",
9563
+ client_ids=["myclient1", "myclient2"],
9564
+ thumbprints=["aa00aa1122aa00aa1122aa00aa1122aa00aa1122"]
9565
+ )
9566
+ '''
9567
+
9568
+ def __init__(
9569
+ self,
9570
+ scope: _constructs_77d1e7e8.Construct,
9571
+ id: builtins.str,
9572
+ *,
9573
+ url: builtins.str,
9574
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
9575
+ oidc_provider_name: typing.Optional[builtins.str] = None,
9576
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
9577
+ ) -> None:
9578
+ '''Defines a Native OpenID Connect provider.
9579
+
9580
+ :param scope: The definition scope.
9581
+ :param id: Construct ID.
9582
+ :param url: The URL of the identity provider. The URL must begin with https:// and should correspond to the iss claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like https://server.example.org or https://example.com. You cannot register the same provider multiple times in a single AWS account. If you try to submit a URL that has already been used for an OpenID Connect provider in the AWS account, you will get an error. Warning: This URL cannot contain any port numbers
9583
+ :param client_ids: A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the client_id parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. Client IDs are up to 255 characters long. Default: - no clients are allowed
9584
+ :param oidc_provider_name: The name of the Native OIDC Provider. Default: - A name is automatically generated.
9585
+ :param thumbprints: A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only 1 entry or empty. However, IAM lets you have up to 5 thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. For example, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. This property is optional. If it is not included, IAM will retrieve and use the top intermediate certificate authority (CA) thumbprint of the OpenID Connect identity provider server certificate. Obtain the thumbprint of the root certificate authority from the provider's server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html Default: - no thumbprints are allowed. IAM will retrieve and use thumbprint of idenity provider server cerctificate
9586
+ '''
9587
+ if __debug__:
9588
+ type_hints = typing.get_type_hints(_typecheckingstub__680e816817bfe60e999b472326e5b4b238c62d88192645c5b0bfcd07a0a2a70a)
9589
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
9590
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9591
+ props = OidcProviderNativeProps(
9592
+ url=url,
9593
+ client_ids=client_ids,
9594
+ oidc_provider_name=oidc_provider_name,
9595
+ thumbprints=thumbprints,
9596
+ )
9597
+
9598
+ jsii.create(self.__class__, self, [scope, id, props])
9599
+
9600
+ @jsii.member(jsii_name="fromOidcProviderArn")
9601
+ @builtins.classmethod
9602
+ def from_oidc_provider_arn(
9603
+ cls,
9604
+ scope: _constructs_77d1e7e8.Construct,
9605
+ id: builtins.str,
9606
+ oidc_provider_arn: builtins.str,
9607
+ ) -> IOidcProvider:
9608
+ '''Imports an Open ID connect provider from an ARN.
9609
+
9610
+ :param scope: The definition scope.
9611
+ :param id: ID of the construct.
9612
+ :param oidc_provider_arn: the ARN to import.
9613
+ '''
9614
+ if __debug__:
9615
+ type_hints = typing.get_type_hints(_typecheckingstub__2bbbb35dca97e313a334486d4f1f9ad4d587da8ed7cab00044df51dcffea77cc)
9616
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
9617
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9618
+ check_type(argname="argument oidc_provider_arn", value=oidc_provider_arn, expected_type=type_hints["oidc_provider_arn"])
9619
+ return typing.cast(IOidcProvider, jsii.sinvoke(cls, "fromOidcProviderArn", [scope, id, oidc_provider_arn]))
9620
+
9621
+ @jsii.python.classproperty
9622
+ @jsii.member(jsii_name="PROPERTY_INJECTION_ID")
9623
+ def PROPERTY_INJECTION_ID(cls) -> builtins.str:
9624
+ '''Uniquely identifies this class.'''
9625
+ return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
9626
+
9627
+ @builtins.property
9628
+ @jsii.member(jsii_name="oidcProviderArn")
9629
+ def oidc_provider_arn(self) -> builtins.str:
9630
+ '''The Amazon Resource Name (ARN) of the Native IAM OpenID Connect provider.
9631
+
9632
+ :attribute: true
9633
+ '''
9634
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderArn"))
9635
+
9636
+ @builtins.property
9637
+ @jsii.member(jsii_name="oidcProviderIssuer")
9638
+ def oidc_provider_issuer(self) -> builtins.str:
9639
+ '''The issuer for the Native OIDC Provider.
9640
+
9641
+ :attribute: true
9642
+ '''
9643
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderIssuer"))
9644
+
9645
+ @builtins.property
9646
+ @jsii.member(jsii_name="oidcProviderThumbprints")
9647
+ def oidc_provider_thumbprints(self) -> builtins.str:
9648
+ '''The thumbprints configured for this provider.
9649
+
9650
+ :attribute: true
9651
+ '''
9652
+ return typing.cast(builtins.str, jsii.get(self, "oidcProviderThumbprints"))
9653
+
9654
+
9655
+ @jsii.data_type(
9656
+ jsii_type="aws-cdk-lib.aws_iam.OidcProviderNativeProps",
9657
+ jsii_struct_bases=[],
9658
+ name_mapping={
9659
+ "url": "url",
9660
+ "client_ids": "clientIds",
9661
+ "oidc_provider_name": "oidcProviderName",
9662
+ "thumbprints": "thumbprints",
9663
+ },
9664
+ )
9665
+ class OidcProviderNativeProps:
9666
+ def __init__(
9667
+ self,
9668
+ *,
9669
+ url: builtins.str,
9670
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
9671
+ oidc_provider_name: typing.Optional[builtins.str] = None,
9672
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
9673
+ ) -> None:
9674
+ '''Initialization properties for ``OIDCProviderNative``.
9675
+
9676
+ :param url: The URL of the identity provider. The URL must begin with https:// and should correspond to the iss claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like https://server.example.org or https://example.com. You cannot register the same provider multiple times in a single AWS account. If you try to submit a URL that has already been used for an OpenID Connect provider in the AWS account, you will get an error. Warning: This URL cannot contain any port numbers
9677
+ :param client_ids: A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the client_id parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. Client IDs are up to 255 characters long. Default: - no clients are allowed
9678
+ :param oidc_provider_name: The name of the Native OIDC Provider. Default: - A name is automatically generated.
9679
+ :param thumbprints: A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only 1 entry or empty. However, IAM lets you have up to 5 thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. For example, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. This property is optional. If it is not included, IAM will retrieve and use the top intermediate certificate authority (CA) thumbprint of the OpenID Connect identity provider server certificate. Obtain the thumbprint of the root certificate authority from the provider's server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html Default: - no thumbprints are allowed. IAM will retrieve and use thumbprint of idenity provider server cerctificate
9680
+
9681
+ :exampleMetadata: infused
9682
+
9683
+ Example::
9684
+
9685
+ native_provider = iam.OidcProviderNative(self, "MyProvider",
9686
+ url="https://openid/connect",
9687
+ client_ids=["myclient1", "myclient2"],
9688
+ thumbprints=["aa00aa1122aa00aa1122aa00aa1122aa00aa1122"]
9689
+ )
9690
+ '''
9691
+ if __debug__:
9692
+ type_hints = typing.get_type_hints(_typecheckingstub__6981defdaab974b803e9671371e547d5d70ee03239eed02c8d458e1a2e5aa307)
9693
+ check_type(argname="argument url", value=url, expected_type=type_hints["url"])
9694
+ check_type(argname="argument client_ids", value=client_ids, expected_type=type_hints["client_ids"])
9695
+ check_type(argname="argument oidc_provider_name", value=oidc_provider_name, expected_type=type_hints["oidc_provider_name"])
9696
+ check_type(argname="argument thumbprints", value=thumbprints, expected_type=type_hints["thumbprints"])
9697
+ self._values: typing.Dict[builtins.str, typing.Any] = {
9698
+ "url": url,
9699
+ }
9700
+ if client_ids is not None:
9701
+ self._values["client_ids"] = client_ids
9702
+ if oidc_provider_name is not None:
9703
+ self._values["oidc_provider_name"] = oidc_provider_name
9704
+ if thumbprints is not None:
9705
+ self._values["thumbprints"] = thumbprints
9706
+
9707
+ @builtins.property
9708
+ def url(self) -> builtins.str:
9709
+ '''The URL of the identity provider.
9710
+
9711
+ The URL must begin with https:// and
9712
+ should correspond to the iss claim in the provider's OpenID Connect ID
9713
+ tokens. Per the OIDC standard, path components are allowed but query
9714
+ parameters are not. Typically the URL consists of only a hostname, like
9715
+ https://server.example.org or https://example.com.
9716
+
9717
+ You cannot register the same provider multiple times in a single AWS
9718
+ account. If you try to submit a URL that has already been used for an
9719
+ OpenID Connect provider in the AWS account, you will get an error.
9720
+
9721
+ Warning: This URL cannot contain any port numbers
9722
+ '''
9723
+ result = self._values.get("url")
9724
+ assert result is not None, "Required property 'url' is missing"
9725
+ return typing.cast(builtins.str, result)
9726
+
9727
+ @builtins.property
9728
+ def client_ids(self) -> typing.Optional[typing.List[builtins.str]]:
9729
+ '''A list of client IDs (also known as audiences).
9730
+
9731
+ When a mobile or web app
9732
+ registers with an OpenID Connect provider, they establish a value that
9733
+ identifies the application. (This is the value that's sent as the client_id
9734
+ parameter on OAuth requests.)
9735
+
9736
+ You can register multiple client IDs with the same provider. For example,
9737
+ you might have multiple applications that use the same OIDC provider. You
9738
+ cannot register more than 100 client IDs with a single IAM OIDC provider.
9739
+
9740
+ Client IDs are up to 255 characters long.
9741
+
9742
+ :default: - no clients are allowed
9743
+ '''
9744
+ result = self._values.get("client_ids")
9745
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
9746
+
9747
+ @builtins.property
9748
+ def oidc_provider_name(self) -> typing.Optional[builtins.str]:
9749
+ '''The name of the Native OIDC Provider.
9750
+
9751
+ :default: - A name is automatically generated.
9752
+ '''
9753
+ result = self._values.get("oidc_provider_name")
9754
+ return typing.cast(typing.Optional[builtins.str], result)
9755
+
9756
+ @builtins.property
9757
+ def thumbprints(self) -> typing.Optional[typing.List[builtins.str]]:
9758
+ '''A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates.
9759
+
9760
+ Typically this list includes only 1 entry or empty. However, IAM lets
9761
+ you have up to 5 thumbprints for an OIDC provider. This lets you maintain
9762
+ multiple thumbprints if the identity provider is rotating certificates.
9763
+
9764
+ The server certificate thumbprint is the hex-encoded SHA-1 hash value of
9765
+ the X.509 certificate used by the domain where the OpenID Connect provider
9766
+ makes its keys available. It is always a 40-character string.
9767
+
9768
+ For example, assume that the OIDC provider is server.example.com and the
9769
+ provider stores its keys at https://keys.server.example.com/openid-connect.
9770
+ In that case, the thumbprint string would be the hex-encoded SHA-1 hash
9771
+ value of the certificate used by https://keys.server.example.com.
9772
+
9773
+ This property is optional. If it is not included, IAM will retrieve and use
9774
+ the top intermediate certificate authority (CA) thumbprint of the OpenID
9775
+ Connect identity provider server certificate.
9776
+
9777
+ Obtain the thumbprint of the root certificate authority from the provider's
9778
+ server as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html
9779
+
9780
+ :default:
9781
+
9782
+ - no thumbprints are allowed. IAM will retrieve and use thumbprint
9783
+ of idenity provider server cerctificate
9784
+ '''
9785
+ result = self._values.get("thumbprints")
9786
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
9787
+
9788
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9789
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9790
+
9791
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9792
+ return not (rhs == self)
9793
+
9794
+ def __repr__(self) -> str:
9795
+ return "OidcProviderNativeProps(%s)" % ", ".join(
9796
+ k + "=" + repr(v) for k, v in self._values.items()
9797
+ )
9798
+
9799
+
9459
9800
  @jsii.implements(IOpenIdConnectProvider)
9460
9801
  class OpenIdConnectProvider(
9461
9802
  _Resource_45bc6135,
@@ -15591,6 +15932,7 @@ __all__ = [
15591
15932
  "IIdentity",
15592
15933
  "IInstanceProfile",
15593
15934
  "IManagedPolicy",
15935
+ "IOidcProvider",
15594
15936
  "IOpenIdConnectProvider",
15595
15937
  "IPolicy",
15596
15938
  "IPrincipal",
@@ -15605,6 +15947,8 @@ __all__ = [
15605
15947
  "LazyRoleProps",
15606
15948
  "ManagedPolicy",
15607
15949
  "ManagedPolicyProps",
15950
+ "OidcProviderNative",
15951
+ "OidcProviderNativeProps",
15608
15952
  "OpenIdConnectPrincipal",
15609
15953
  "OpenIdConnectProvider",
15610
15954
  "OpenIdConnectProviderProps",
@@ -16975,6 +17319,36 @@ def _typecheckingstub__9ac402af2b963b15f12c561030bd732418fdef258857572111b9a8118
16975
17319
  """Type checking stubs"""
16976
17320
  pass
16977
17321
 
17322
+ def _typecheckingstub__680e816817bfe60e999b472326e5b4b238c62d88192645c5b0bfcd07a0a2a70a(
17323
+ scope: _constructs_77d1e7e8.Construct,
17324
+ id: builtins.str,
17325
+ *,
17326
+ url: builtins.str,
17327
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
17328
+ oidc_provider_name: typing.Optional[builtins.str] = None,
17329
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
17330
+ ) -> None:
17331
+ """Type checking stubs"""
17332
+ pass
17333
+
17334
+ def _typecheckingstub__2bbbb35dca97e313a334486d4f1f9ad4d587da8ed7cab00044df51dcffea77cc(
17335
+ scope: _constructs_77d1e7e8.Construct,
17336
+ id: builtins.str,
17337
+ oidc_provider_arn: builtins.str,
17338
+ ) -> None:
17339
+ """Type checking stubs"""
17340
+ pass
17341
+
17342
+ def _typecheckingstub__6981defdaab974b803e9671371e547d5d70ee03239eed02c8d458e1a2e5aa307(
17343
+ *,
17344
+ url: builtins.str,
17345
+ client_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
17346
+ oidc_provider_name: typing.Optional[builtins.str] = None,
17347
+ thumbprints: typing.Optional[typing.Sequence[builtins.str]] = None,
17348
+ ) -> None:
17349
+ """Type checking stubs"""
17350
+ pass
17351
+
16978
17352
  def _typecheckingstub__270fe9db45fea69c973ea36d667d5236d0463996999ebebabf67dbaafe739d10(
16979
17353
  scope: _constructs_77d1e7e8.Construct,
16980
17354
  id: builtins.str,
@@ -13775,7 +13775,10 @@ class CfnThingPrincipalAttachment(
13775
13775
 
13776
13776
  cfn_thing_principal_attachment = iot.CfnThingPrincipalAttachment(self, "MyCfnThingPrincipalAttachment",
13777
13777
  principal="principal",
13778
- thing_name="thingName"
13778
+ thing_name="thingName",
13779
+
13780
+ # the properties below are optional
13781
+ thing_principal_type="thingPrincipalType"
13779
13782
  )
13780
13783
  '''
13781
13784
 
@@ -13786,19 +13789,23 @@ class CfnThingPrincipalAttachment(
13786
13789
  *,
13787
13790
  principal: builtins.str,
13788
13791
  thing_name: builtins.str,
13792
+ thing_principal_type: typing.Optional[builtins.str] = None,
13789
13793
  ) -> None:
13790
13794
  '''
13791
13795
  :param scope: Scope in which this resource is defined.
13792
13796
  :param id: Construct identifier for this resource (unique in its scope).
13793
13797
  :param principal: The principal, which can be a certificate ARN (as returned from the ``CreateCertificate`` operation) or an Amazon Cognito ID.
13794
13798
  :param thing_name: The name of the AWS IoT thing.
13799
+ :param thing_principal_type:
13795
13800
  '''
13796
13801
  if __debug__:
13797
13802
  type_hints = typing.get_type_hints(_typecheckingstub__0e0ce886b8c49b98afe43e3750b4827324240eaec344ca9ed6af433373fcce30)
13798
13803
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
13799
13804
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
13800
13805
  props = CfnThingPrincipalAttachmentProps(
13801
- principal=principal, thing_name=thing_name
13806
+ principal=principal,
13807
+ thing_name=thing_name,
13808
+ thing_principal_type=thing_principal_type,
13802
13809
  )
13803
13810
 
13804
13811
  jsii.create(self.__class__, self, [scope, id, props])
@@ -13872,18 +13879,41 @@ class CfnThingPrincipalAttachment(
13872
13879
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
13873
13880
  jsii.set(self, "thingName", value) # pyright: ignore[reportArgumentType]
13874
13881
 
13882
+ @builtins.property
13883
+ @jsii.member(jsii_name="thingPrincipalType")
13884
+ def thing_principal_type(self) -> typing.Optional[builtins.str]:
13885
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "thingPrincipalType"))
13886
+
13887
+ @thing_principal_type.setter
13888
+ def thing_principal_type(self, value: typing.Optional[builtins.str]) -> None:
13889
+ if __debug__:
13890
+ type_hints = typing.get_type_hints(_typecheckingstub__60f0b73c23e6d7837ba574cbb8e459baf1d53fca094b69ea965b6eeb45ad479e)
13891
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
13892
+ jsii.set(self, "thingPrincipalType", value) # pyright: ignore[reportArgumentType]
13893
+
13875
13894
 
13876
13895
  @jsii.data_type(
13877
13896
  jsii_type="aws-cdk-lib.aws_iot.CfnThingPrincipalAttachmentProps",
13878
13897
  jsii_struct_bases=[],
13879
- name_mapping={"principal": "principal", "thing_name": "thingName"},
13898
+ name_mapping={
13899
+ "principal": "principal",
13900
+ "thing_name": "thingName",
13901
+ "thing_principal_type": "thingPrincipalType",
13902
+ },
13880
13903
  )
13881
13904
  class CfnThingPrincipalAttachmentProps:
13882
- def __init__(self, *, principal: builtins.str, thing_name: builtins.str) -> None:
13905
+ def __init__(
13906
+ self,
13907
+ *,
13908
+ principal: builtins.str,
13909
+ thing_name: builtins.str,
13910
+ thing_principal_type: typing.Optional[builtins.str] = None,
13911
+ ) -> None:
13883
13912
  '''Properties for defining a ``CfnThingPrincipalAttachment``.
13884
13913
 
13885
13914
  :param principal: The principal, which can be a certificate ARN (as returned from the ``CreateCertificate`` operation) or an Amazon Cognito ID.
13886
13915
  :param thing_name: The name of the AWS IoT thing.
13916
+ :param thing_principal_type:
13887
13917
 
13888
13918
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html
13889
13919
  :exampleMetadata: fixture=_generated
@@ -13896,17 +13926,23 @@ class CfnThingPrincipalAttachmentProps:
13896
13926
 
13897
13927
  cfn_thing_principal_attachment_props = iot.CfnThingPrincipalAttachmentProps(
13898
13928
  principal="principal",
13899
- thing_name="thingName"
13929
+ thing_name="thingName",
13930
+
13931
+ # the properties below are optional
13932
+ thing_principal_type="thingPrincipalType"
13900
13933
  )
13901
13934
  '''
13902
13935
  if __debug__:
13903
13936
  type_hints = typing.get_type_hints(_typecheckingstub__84c8fe9c6ac7dd6ea654efc3fff6dfccf459a1bb6ca2a2b3be5d3116fa7d6022)
13904
13937
  check_type(argname="argument principal", value=principal, expected_type=type_hints["principal"])
13905
13938
  check_type(argname="argument thing_name", value=thing_name, expected_type=type_hints["thing_name"])
13939
+ check_type(argname="argument thing_principal_type", value=thing_principal_type, expected_type=type_hints["thing_principal_type"])
13906
13940
  self._values: typing.Dict[builtins.str, typing.Any] = {
13907
13941
  "principal": principal,
13908
13942
  "thing_name": thing_name,
13909
13943
  }
13944
+ if thing_principal_type is not None:
13945
+ self._values["thing_principal_type"] = thing_principal_type
13910
13946
 
13911
13947
  @builtins.property
13912
13948
  def principal(self) -> builtins.str:
@@ -13928,6 +13964,14 @@ class CfnThingPrincipalAttachmentProps:
13928
13964
  assert result is not None, "Required property 'thing_name' is missing"
13929
13965
  return typing.cast(builtins.str, result)
13930
13966
 
13967
+ @builtins.property
13968
+ def thing_principal_type(self) -> typing.Optional[builtins.str]:
13969
+ '''
13970
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html#cfn-iot-thingprincipalattachment-thingprincipaltype
13971
+ '''
13972
+ result = self._values.get("thing_principal_type")
13973
+ return typing.cast(typing.Optional[builtins.str], result)
13974
+
13931
13975
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
13932
13976
  return isinstance(rhs, self.__class__) and rhs._values == self._values
13933
13977
 
@@ -23551,6 +23595,7 @@ def _typecheckingstub__0e0ce886b8c49b98afe43e3750b4827324240eaec344ca9ed6af43337
23551
23595
  *,
23552
23596
  principal: builtins.str,
23553
23597
  thing_name: builtins.str,
23598
+ thing_principal_type: typing.Optional[builtins.str] = None,
23554
23599
  ) -> None:
23555
23600
  """Type checking stubs"""
23556
23601
  pass
@@ -23579,10 +23624,17 @@ def _typecheckingstub__01b5ff1ad27492252f4daa6f98df93fe2358c63120a39227eea2f7555
23579
23624
  """Type checking stubs"""
23580
23625
  pass
23581
23626
 
23627
+ def _typecheckingstub__60f0b73c23e6d7837ba574cbb8e459baf1d53fca094b69ea965b6eeb45ad479e(
23628
+ value: typing.Optional[builtins.str],
23629
+ ) -> None:
23630
+ """Type checking stubs"""
23631
+ pass
23632
+
23582
23633
  def _typecheckingstub__84c8fe9c6ac7dd6ea654efc3fff6dfccf459a1bb6ca2a2b3be5d3116fa7d6022(
23583
23634
  *,
23584
23635
  principal: builtins.str,
23585
23636
  thing_name: builtins.str,
23637
+ thing_principal_type: typing.Optional[builtins.str] = None,
23586
23638
  ) -> None:
23587
23639
  """Type checking stubs"""
23588
23640
  pass
@@ -452,7 +452,11 @@ import aws_cdk.aws_s3 as s3
452
452
  import aws_cdk as cdk
453
453
  from aws_cdk.integ_tests_alpha import AwsApiCall, ExpectedResult, IntegTest
454
454
 
455
- app = cdk.App()
455
+ app = cdk.App(
456
+ post_cli_context={
457
+ "@aws-cdk/aws-lambda:useCdkManagedLogGroup": False
458
+ }
459
+ )
456
460
 
457
461
  stack = cdk.Stack(app, "aws-cdk-firehose-delivery-stream-s3-all-properties")
458
462