/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace EKS { namespace Model { /** *

An object representing an OpenID Connect (OIDC) configuration. Before * associating an OIDC identity provider to your cluster, review the considerations * in Authenticating * users for your cluster from an OpenID Connect identity provider in the * Amazon EKS User Guide.

See Also:

AWS * API Reference

*/ class OidcIdentityProviderConfigRequest { public: AWS_EKS_API OidcIdentityProviderConfigRequest(); AWS_EKS_API OidcIdentityProviderConfigRequest(Aws::Utils::Json::JsonView jsonValue); AWS_EKS_API OidcIdentityProviderConfigRequest& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_EKS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the OIDC provider configuration.

*/ inline const Aws::String& GetIdentityProviderConfigName() const{ return m_identityProviderConfigName; } /** *

The name of the OIDC provider configuration.

*/ inline bool IdentityProviderConfigNameHasBeenSet() const { return m_identityProviderConfigNameHasBeenSet; } /** *

The name of the OIDC provider configuration.

*/ inline void SetIdentityProviderConfigName(const Aws::String& value) { m_identityProviderConfigNameHasBeenSet = true; m_identityProviderConfigName = value; } /** *

The name of the OIDC provider configuration.

*/ inline void SetIdentityProviderConfigName(Aws::String&& value) { m_identityProviderConfigNameHasBeenSet = true; m_identityProviderConfigName = std::move(value); } /** *

The name of the OIDC provider configuration.

*/ inline void SetIdentityProviderConfigName(const char* value) { m_identityProviderConfigNameHasBeenSet = true; m_identityProviderConfigName.assign(value); } /** *

The name of the OIDC provider configuration.

*/ inline OidcIdentityProviderConfigRequest& WithIdentityProviderConfigName(const Aws::String& value) { SetIdentityProviderConfigName(value); return *this;} /** *

The name of the OIDC provider configuration.

*/ inline OidcIdentityProviderConfigRequest& WithIdentityProviderConfigName(Aws::String&& value) { SetIdentityProviderConfigName(std::move(value)); return *this;} /** *

The name of the OIDC provider configuration.

*/ inline OidcIdentityProviderConfigRequest& WithIdentityProviderConfigName(const char* value) { SetIdentityProviderConfigName(value); return *this;} /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline const Aws::String& GetIssuerUrl() const{ return m_issuerUrl; } /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline bool IssuerUrlHasBeenSet() const { return m_issuerUrlHasBeenSet; } /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline void SetIssuerUrl(const Aws::String& value) { m_issuerUrlHasBeenSet = true; m_issuerUrl = value; } /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline void SetIssuerUrl(Aws::String&& value) { m_issuerUrlHasBeenSet = true; m_issuerUrl = std::move(value); } /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline void SetIssuerUrl(const char* value) { m_issuerUrlHasBeenSet = true; m_issuerUrl.assign(value); } /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline OidcIdentityProviderConfigRequest& WithIssuerUrl(const Aws::String& value) { SetIssuerUrl(value); return *this;} /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline OidcIdentityProviderConfigRequest& WithIssuerUrl(Aws::String&& value) { SetIssuerUrl(std::move(value)); return *this;} /** *

The URL of the OpenID identity provider that allows the API server to * discover public signing keys for verifying tokens. The URL must begin with * https:// and should correspond to the iss claim in the * provider's OIDC 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. This URL should point to the level below * .well-known/openid-configuration and must be publicly accessible * over the internet.

*/ inline OidcIdentityProviderConfigRequest& WithIssuerUrl(const char* value) { SetIssuerUrl(value); return *this;} /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline const Aws::String& GetClientId() const{ return m_clientId; } /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline bool ClientIdHasBeenSet() const { return m_clientIdHasBeenSet; } /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline void SetClientId(const Aws::String& value) { m_clientIdHasBeenSet = true; m_clientId = value; } /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline void SetClientId(Aws::String&& value) { m_clientIdHasBeenSet = true; m_clientId = std::move(value); } /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline void SetClientId(const char* value) { m_clientIdHasBeenSet = true; m_clientId.assign(value); } /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline OidcIdentityProviderConfigRequest& WithClientId(const Aws::String& value) { SetClientId(value); return *this;} /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline OidcIdentityProviderConfigRequest& WithClientId(Aws::String&& value) { SetClientId(std::move(value)); return *this;} /** *

This is also known as audience. The ID for the client application that * makes authentication requests to the OpenID identity provider.

*/ inline OidcIdentityProviderConfigRequest& WithClientId(const char* value) { SetClientId(value); return *this;} /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline const Aws::String& GetUsernameClaim() const{ return m_usernameClaim; } /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline bool UsernameClaimHasBeenSet() const { return m_usernameClaimHasBeenSet; } /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline void SetUsernameClaim(const Aws::String& value) { m_usernameClaimHasBeenSet = true; m_usernameClaim = value; } /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline void SetUsernameClaim(Aws::String&& value) { m_usernameClaimHasBeenSet = true; m_usernameClaim = std::move(value); } /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline void SetUsernameClaim(const char* value) { m_usernameClaimHasBeenSet = true; m_usernameClaim.assign(value); } /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline OidcIdentityProviderConfigRequest& WithUsernameClaim(const Aws::String& value) { SetUsernameClaim(value); return *this;} /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline OidcIdentityProviderConfigRequest& WithUsernameClaim(Aws::String&& value) { SetUsernameClaim(std::move(value)); return *this;} /** *

The JSON Web Token (JWT) claim to use as the username. The default is * sub, which is expected to be a unique identifier of the end user. * You can choose other claims, such as email or name, * depending on the OpenID identity provider. Claims other than email * are prefixed with the issuer URL to prevent naming clashes with other * plug-ins.

*/ inline OidcIdentityProviderConfigRequest& WithUsernameClaim(const char* value) { SetUsernameClaim(value); return *this;} /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline const Aws::String& GetUsernamePrefix() const{ return m_usernamePrefix; } /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline bool UsernamePrefixHasBeenSet() const { return m_usernamePrefixHasBeenSet; } /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline void SetUsernamePrefix(const Aws::String& value) { m_usernamePrefixHasBeenSet = true; m_usernamePrefix = value; } /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline void SetUsernamePrefix(Aws::String&& value) { m_usernamePrefixHasBeenSet = true; m_usernamePrefix = std::move(value); } /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline void SetUsernamePrefix(const char* value) { m_usernamePrefixHasBeenSet = true; m_usernamePrefix.assign(value); } /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline OidcIdentityProviderConfigRequest& WithUsernamePrefix(const Aws::String& value) { SetUsernamePrefix(value); return *this;} /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline OidcIdentityProviderConfigRequest& WithUsernamePrefix(Aws::String&& value) { SetUsernamePrefix(std::move(value)); return *this;} /** *

The prefix that is prepended to username claims to prevent clashes with * existing names. If you do not provide this field, and username is a * value other than email, the prefix defaults to * issuerurl#. You can use the value - to disable all * prefixing.

*/ inline OidcIdentityProviderConfigRequest& WithUsernamePrefix(const char* value) { SetUsernamePrefix(value); return *this;} /** *

The JWT claim that the provider uses to return your groups.

*/ inline const Aws::String& GetGroupsClaim() const{ return m_groupsClaim; } /** *

The JWT claim that the provider uses to return your groups.

*/ inline bool GroupsClaimHasBeenSet() const { return m_groupsClaimHasBeenSet; } /** *

The JWT claim that the provider uses to return your groups.

*/ inline void SetGroupsClaim(const Aws::String& value) { m_groupsClaimHasBeenSet = true; m_groupsClaim = value; } /** *

The JWT claim that the provider uses to return your groups.

*/ inline void SetGroupsClaim(Aws::String&& value) { m_groupsClaimHasBeenSet = true; m_groupsClaim = std::move(value); } /** *

The JWT claim that the provider uses to return your groups.

*/ inline void SetGroupsClaim(const char* value) { m_groupsClaimHasBeenSet = true; m_groupsClaim.assign(value); } /** *

The JWT claim that the provider uses to return your groups.

*/ inline OidcIdentityProviderConfigRequest& WithGroupsClaim(const Aws::String& value) { SetGroupsClaim(value); return *this;} /** *

The JWT claim that the provider uses to return your groups.

*/ inline OidcIdentityProviderConfigRequest& WithGroupsClaim(Aws::String&& value) { SetGroupsClaim(std::move(value)); return *this;} /** *

The JWT claim that the provider uses to return your groups.

*/ inline OidcIdentityProviderConfigRequest& WithGroupsClaim(const char* value) { SetGroupsClaim(value); return *this;} /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline const Aws::String& GetGroupsPrefix() const{ return m_groupsPrefix; } /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline bool GroupsPrefixHasBeenSet() const { return m_groupsPrefixHasBeenSet; } /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline void SetGroupsPrefix(const Aws::String& value) { m_groupsPrefixHasBeenSet = true; m_groupsPrefix = value; } /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline void SetGroupsPrefix(Aws::String&& value) { m_groupsPrefixHasBeenSet = true; m_groupsPrefix = std::move(value); } /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline void SetGroupsPrefix(const char* value) { m_groupsPrefixHasBeenSet = true; m_groupsPrefix.assign(value); } /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline OidcIdentityProviderConfigRequest& WithGroupsPrefix(const Aws::String& value) { SetGroupsPrefix(value); return *this;} /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline OidcIdentityProviderConfigRequest& WithGroupsPrefix(Aws::String&& value) { SetGroupsPrefix(std::move(value)); return *this;} /** *

The prefix that is prepended to group claims to prevent clashes with existing * names (such as system: groups). For example, the value * oidc: will create group names like oidc:engineering and * oidc:infra.

*/ inline OidcIdentityProviderConfigRequest& WithGroupsPrefix(const char* value) { SetGroupsPrefix(value); return *this;} /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline const Aws::Map& GetRequiredClaims() const{ return m_requiredClaims; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline bool RequiredClaimsHasBeenSet() const { return m_requiredClaimsHasBeenSet; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline void SetRequiredClaims(const Aws::Map& value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims = value; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline void SetRequiredClaims(Aws::Map&& value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims = std::move(value); } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& WithRequiredClaims(const Aws::Map& value) { SetRequiredClaims(value); return *this;} /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& WithRequiredClaims(Aws::Map&& value) { SetRequiredClaims(std::move(value)); return *this;} /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& AddRequiredClaims(const Aws::String& key, const Aws::String& value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims.emplace(key, value); return *this; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& AddRequiredClaims(Aws::String&& key, const Aws::String& value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims.emplace(std::move(key), value); return *this; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& AddRequiredClaims(const Aws::String& key, Aws::String&& value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims.emplace(key, std::move(value)); return *this; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& AddRequiredClaims(Aws::String&& key, Aws::String&& value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims.emplace(std::move(key), std::move(value)); return *this; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& AddRequiredClaims(const char* key, Aws::String&& value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims.emplace(key, std::move(value)); return *this; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& AddRequiredClaims(Aws::String&& key, const char* value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims.emplace(std::move(key), value); return *this; } /** *

The key value pairs that describe required claims in the identity token. If * set, each claim is verified to be present in the token with a matching value. * For the maximum number of claims that you can require, see Amazon * EKS service quotas in the Amazon EKS User Guide.

*/ inline OidcIdentityProviderConfigRequest& AddRequiredClaims(const char* key, const char* value) { m_requiredClaimsHasBeenSet = true; m_requiredClaims.emplace(key, value); return *this; } private: Aws::String m_identityProviderConfigName; bool m_identityProviderConfigNameHasBeenSet = false; Aws::String m_issuerUrl; bool m_issuerUrlHasBeenSet = false; Aws::String m_clientId; bool m_clientIdHasBeenSet = false; Aws::String m_usernameClaim; bool m_usernameClaimHasBeenSet = false; Aws::String m_usernamePrefix; bool m_usernamePrefixHasBeenSet = false; Aws::String m_groupsClaim; bool m_groupsClaimHasBeenSet = false; Aws::String m_groupsPrefix; bool m_groupsPrefixHasBeenSet = false; Aws::Map m_requiredClaims; bool m_requiredClaimsHasBeenSet = false; }; } // namespace Model } // namespace EKS } // namespace Aws