/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace IAM { namespace Model { /** */ class CreateOpenIDConnectProviderRequest : public IAMRequest { public: AWS_IAM_API CreateOpenIDConnectProviderRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateOpenIDConnectProvider"; } AWS_IAM_API Aws::String SerializePayload() const override; protected: AWS_IAM_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline const Aws::String& GetUrl() const{ return m_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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline bool UrlHasBeenSet() const { return m_urlHasBeenSet; } /** *

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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline void SetUrl(const Aws::String& value) { m_urlHasBeenSet = true; m_url = value; } /** *

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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline void SetUrl(Aws::String&& value) { m_urlHasBeenSet = true; m_url = std::move(value); } /** *

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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline void SetUrl(const char* value) { m_urlHasBeenSet = true; m_url.assign(value); } /** *

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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline CreateOpenIDConnectProviderRequest& WithUrl(const Aws::String& value) { SetUrl(value); return *this;} /** *

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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline CreateOpenIDConnectProviderRequest& WithUrl(Aws::String&& value) { SetUrl(std::move(value)); return *this;} /** *

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. The URL should not contain a port number.

*

You cannot register the same provider multiple times in a single Amazon Web * Services account. If you try to submit a URL that has already been used for an * OpenID Connect provider in the Amazon Web Services account, you will get an * error.

*/ inline CreateOpenIDConnectProviderRequest& WithUrl(const char* value) { SetUrl(value); return *this;} /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline const Aws::Vector& GetClientIDList() const{ return m_clientIDList; } /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline bool ClientIDListHasBeenSet() const { return m_clientIDListHasBeenSet; } /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline void SetClientIDList(const Aws::Vector& value) { m_clientIDListHasBeenSet = true; m_clientIDList = value; } /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline void SetClientIDList(Aws::Vector&& value) { m_clientIDListHasBeenSet = true; m_clientIDList = std::move(value); } /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline CreateOpenIDConnectProviderRequest& WithClientIDList(const Aws::Vector& value) { SetClientIDList(value); return *this;} /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline CreateOpenIDConnectProviderRequest& WithClientIDList(Aws::Vector&& value) { SetClientIDList(std::move(value)); return *this;} /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline CreateOpenIDConnectProviderRequest& AddClientIDList(const Aws::String& value) { m_clientIDListHasBeenSet = true; m_clientIDList.push_back(value); return *this; } /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline CreateOpenIDConnectProviderRequest& AddClientIDList(Aws::String&& value) { m_clientIDListHasBeenSet = true; m_clientIDList.push_back(std::move(value)); return *this; } /** *

Provides 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.

There is no defined format * for a client ID. The CreateOpenIDConnectProviderRequest operation * accepts client IDs up to 255 characters long.

*/ inline CreateOpenIDConnectProviderRequest& AddClientIDList(const char* value) { m_clientIDListHasBeenSet = true; m_clientIDList.push_back(value); return *this; } /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline const Aws::Vector& GetThumbprintList() const{ return m_thumbprintList; } /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline bool ThumbprintListHasBeenSet() const { return m_thumbprintListHasBeenSet; } /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline void SetThumbprintList(const Aws::Vector& value) { m_thumbprintListHasBeenSet = true; m_thumbprintList = value; } /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline void SetThumbprintList(Aws::Vector&& value) { m_thumbprintListHasBeenSet = true; m_thumbprintList = std::move(value); } /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline CreateOpenIDConnectProviderRequest& WithThumbprintList(const Aws::Vector& value) { SetThumbprintList(value); return *this;} /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline CreateOpenIDConnectProviderRequest& WithThumbprintList(Aws::Vector&& value) { SetThumbprintList(std::move(value)); return *this;} /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline CreateOpenIDConnectProviderRequest& AddThumbprintList(const Aws::String& value) { m_thumbprintListHasBeenSet = true; m_thumbprintList.push_back(value); return *this; } /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline CreateOpenIDConnectProviderRequest& AddThumbprintList(Aws::String&& value) { m_thumbprintListHasBeenSet = true; m_thumbprintList.push_back(std::move(value)); return *this; } /** *

A list of server certificate thumbprints for the OpenID Connect (OIDC) * identity provider's server certificates. Typically this list includes only one * entry. However, IAM lets you have up to five 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.

*

You must provide at least one thumbprint when creating an IAM OIDC provider. * 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.

For more information about * obtaining the OIDC provider thumbprint, see Obtaining * the thumbprint for an OpenID Connect provider in the IAM user * Guide.

*/ inline CreateOpenIDConnectProviderRequest& AddThumbprintList(const char* value) { m_thumbprintListHasBeenSet = true; m_thumbprintList.push_back(value); return *this; } /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline CreateOpenIDConnectProviderRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline CreateOpenIDConnectProviderRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline CreateOpenIDConnectProviderRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) * provider. Each tag consists of a key name and an associated value. For more * information about tagging, see Tagging IAM * resources in the IAM User Guide.

If any one of the tags * is invalid or if you exceed the allowed maximum number of tags, then the entire * request fails and the resource is not created.

*/ inline CreateOpenIDConnectProviderRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_url; bool m_urlHasBeenSet = false; Aws::Vector m_clientIDList; bool m_clientIDListHasBeenSet = false; Aws::Vector m_thumbprintList; bool m_thumbprintListHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace IAM } // namespace Aws