/** * 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 WorkSpaces { namespace Model { /** *

Describes the enablement status, user access URL, and relay state parameter * name that are used for configuring federation with an SAML 2.0 identity * provider.

See Also:

AWS * API Reference

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

Indicates the status of SAML 2.0 authentication. These statuses include the * following.

  • If the setting is DISABLED, end users * will be directed to login with their directory credentials.

  • If * the setting is ENABLED, end users will be directed to login via the * user access URL. Users attempting to connect to WorkSpaces from a client * application that does not support SAML 2.0 authentication will not be able to * connect.

  • If the setting is * ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK, end users will be directed * to login via the user access URL on supported client applications, but will not * prevent clients that do not support SAML 2.0 authentication from connecting as * if SAML 2.0 authentication was disabled.

*/ inline const SamlStatusEnum& GetStatus() const{ return m_status; } /** *

Indicates the status of SAML 2.0 authentication. These statuses include the * following.

  • If the setting is DISABLED, end users * will be directed to login with their directory credentials.

  • If * the setting is ENABLED, end users will be directed to login via the * user access URL. Users attempting to connect to WorkSpaces from a client * application that does not support SAML 2.0 authentication will not be able to * connect.

  • If the setting is * ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK, end users will be directed * to login via the user access URL on supported client applications, but will not * prevent clients that do not support SAML 2.0 authentication from connecting as * if SAML 2.0 authentication was disabled.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

Indicates the status of SAML 2.0 authentication. These statuses include the * following.

  • If the setting is DISABLED, end users * will be directed to login with their directory credentials.

  • If * the setting is ENABLED, end users will be directed to login via the * user access URL. Users attempting to connect to WorkSpaces from a client * application that does not support SAML 2.0 authentication will not be able to * connect.

  • If the setting is * ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK, end users will be directed * to login via the user access URL on supported client applications, but will not * prevent clients that do not support SAML 2.0 authentication from connecting as * if SAML 2.0 authentication was disabled.

*/ inline void SetStatus(const SamlStatusEnum& value) { m_statusHasBeenSet = true; m_status = value; } /** *

Indicates the status of SAML 2.0 authentication. These statuses include the * following.

  • If the setting is DISABLED, end users * will be directed to login with their directory credentials.

  • If * the setting is ENABLED, end users will be directed to login via the * user access URL. Users attempting to connect to WorkSpaces from a client * application that does not support SAML 2.0 authentication will not be able to * connect.

  • If the setting is * ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK, end users will be directed * to login via the user access URL on supported client applications, but will not * prevent clients that do not support SAML 2.0 authentication from connecting as * if SAML 2.0 authentication was disabled.

*/ inline void SetStatus(SamlStatusEnum&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

Indicates the status of SAML 2.0 authentication. These statuses include the * following.

  • If the setting is DISABLED, end users * will be directed to login with their directory credentials.

  • If * the setting is ENABLED, end users will be directed to login via the * user access URL. Users attempting to connect to WorkSpaces from a client * application that does not support SAML 2.0 authentication will not be able to * connect.

  • If the setting is * ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK, end users will be directed * to login via the user access URL on supported client applications, but will not * prevent clients that do not support SAML 2.0 authentication from connecting as * if SAML 2.0 authentication was disabled.

*/ inline SamlProperties& WithStatus(const SamlStatusEnum& value) { SetStatus(value); return *this;} /** *

Indicates the status of SAML 2.0 authentication. These statuses include the * following.

  • If the setting is DISABLED, end users * will be directed to login with their directory credentials.

  • If * the setting is ENABLED, end users will be directed to login via the * user access URL. Users attempting to connect to WorkSpaces from a client * application that does not support SAML 2.0 authentication will not be able to * connect.

  • If the setting is * ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK, end users will be directed * to login via the user access URL on supported client applications, but will not * prevent clients that do not support SAML 2.0 authentication from connecting as * if SAML 2.0 authentication was disabled.

*/ inline SamlProperties& WithStatus(SamlStatusEnum&& value) { SetStatus(std::move(value)); return *this;} /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline const Aws::String& GetUserAccessUrl() const{ return m_userAccessUrl; } /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline bool UserAccessUrlHasBeenSet() const { return m_userAccessUrlHasBeenSet; } /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline void SetUserAccessUrl(const Aws::String& value) { m_userAccessUrlHasBeenSet = true; m_userAccessUrl = value; } /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline void SetUserAccessUrl(Aws::String&& value) { m_userAccessUrlHasBeenSet = true; m_userAccessUrl = std::move(value); } /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline void SetUserAccessUrl(const char* value) { m_userAccessUrlHasBeenSet = true; m_userAccessUrl.assign(value); } /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline SamlProperties& WithUserAccessUrl(const Aws::String& value) { SetUserAccessUrl(value); return *this;} /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline SamlProperties& WithUserAccessUrl(Aws::String&& value) { SetUserAccessUrl(std::move(value)); return *this;} /** *

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would * navigate to in their web browser in order to federate from the IdP and directly * access the application, without any SAML 2.0 service provider (SP) bindings.

*/ inline SamlProperties& WithUserAccessUrl(const char* value) { SetUserAccessUrl(value); return *this;} /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline const Aws::String& GetRelayStateParameterName() const{ return m_relayStateParameterName; } /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline bool RelayStateParameterNameHasBeenSet() const { return m_relayStateParameterNameHasBeenSet; } /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline void SetRelayStateParameterName(const Aws::String& value) { m_relayStateParameterNameHasBeenSet = true; m_relayStateParameterName = value; } /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline void SetRelayStateParameterName(Aws::String&& value) { m_relayStateParameterNameHasBeenSet = true; m_relayStateParameterName = std::move(value); } /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline void SetRelayStateParameterName(const char* value) { m_relayStateParameterNameHasBeenSet = true; m_relayStateParameterName.assign(value); } /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline SamlProperties& WithRelayStateParameterName(const Aws::String& value) { SetRelayStateParameterName(value); return *this;} /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline SamlProperties& WithRelayStateParameterName(Aws::String&& value) { SetRelayStateParameterName(std::move(value)); return *this;} /** *

The relay state parameter name supported by the SAML 2.0 identity provider * (IdP). When the end user is redirected to the user access URL from the * WorkSpaces client application, this relay state parameter name is appended as a * query parameter to the URL along with the relay state endpoint to return the * user to the client application session.

To use SAML 2.0 authentication * with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay * state URL. Consult your IdP documentation for more information.

*/ inline SamlProperties& WithRelayStateParameterName(const char* value) { SetRelayStateParameterName(value); return *this;} private: SamlStatusEnum m_status; bool m_statusHasBeenSet = false; Aws::String m_userAccessUrl; bool m_userAccessUrlHasBeenSet = false; Aws::String m_relayStateParameterName; bool m_relayStateParameterNameHasBeenSet = false; }; } // namespace Model } // namespace WorkSpaces } // namespace Aws