aws-cdk-lib 2.199.0__py3-none-any.whl → 2.200.1__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.
- aws_cdk/__init__.py +22 -24
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.199.0.jsii.tgz → aws-cdk-lib@2.200.1.jsii.tgz} +0 -0
- aws_cdk/aws_acmpca/__init__.py +1 -1
- aws_cdk/aws_apigateway/__init__.py +1 -1
- aws_cdk/aws_applicationautoscaling/__init__.py +4 -4
- aws_cdk/aws_aps/__init__.py +38 -30
- aws_cdk/aws_autoscaling/__init__.py +4 -4
- aws_cdk/aws_bedrock/__init__.py +73 -48
- aws_cdk/aws_cloudformation/__init__.py +17 -23
- aws_cdk/aws_cloudfront_origins/__init__.py +1 -1
- aws_cdk/aws_cloudtrail/__init__.py +4 -4
- aws_cdk/aws_cloudwatch/__init__.py +50 -1
- aws_cdk/aws_codebuild/__init__.py +116 -0
- aws_cdk/aws_datazone/__init__.py +699 -9
- aws_cdk/aws_deadline/__init__.py +38 -10
- aws_cdk/aws_ec2/__init__.py +78 -20
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +7 -7
- aws_cdk/aws_emr/__init__.py +36 -2
- aws_cdk/aws_fsx/__init__.py +122 -0
- aws_cdk/aws_glue/__init__.py +55 -26
- aws_cdk/aws_iam/__init__.py +376 -2
- aws_cdk/aws_iot/__init__.py +57 -5
- aws_cdk/aws_kinesisfirehose/__init__.py +5 -1
- aws_cdk/aws_lambda/__init__.py +65 -45
- aws_cdk/aws_lex/__init__.py +27 -13
- aws_cdk/aws_lightsail/__init__.py +452 -0
- aws_cdk/aws_medialive/__init__.py +699 -497
- aws_cdk/aws_msk/__init__.py +4 -4
- aws_cdk/aws_networkfirewall/__init__.py +9 -5
- aws_cdk/aws_nimblestudio/__init__.py +208 -400
- aws_cdk/aws_panorama/__init__.py +30 -3
- aws_cdk/aws_pcs/__init__.py +12 -5
- aws_cdk/aws_rds/__init__.py +22 -10
- aws_cdk/aws_s3/__init__.py +367 -6
- aws_cdk/aws_s3express/__init__.py +789 -0
- aws_cdk/aws_ses/__init__.py +300 -32
- aws_cdk/aws_sns_subscriptions/__init__.py +256 -1
- aws_cdk/aws_stepfunctions/__init__.py +55 -17
- aws_cdk/aws_synthetics/__init__.py +26 -16
- aws_cdk/aws_voiceid/__init__.py +13 -3
- aws_cdk/cloud_assembly_schema/__init__.py +137 -42
- aws_cdk/cx_api/__init__.py +7 -7
- {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.1.dist-info}/METADATA +2 -2
- {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.1.dist-info}/RECORD +49 -49
- {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.1.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.1.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.1.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.199.0.dist-info → aws_cdk_lib-2.200.1.dist-info}/top_level.txt +0 -0
aws_cdk/aws_iam/__init__.py
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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,
|
aws_cdk/aws_iot/__init__.py
CHANGED
|
@@ -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,
|
|
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={
|
|
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__(
|
|
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
|
|