/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ManagedGrafana { namespace Model { /** *

A structure containing information about the user authentication methods used * by the workspace.

See Also:

AWS * API Reference

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

A structure containing information about how this workspace works with IAM * Identity Center.

*/ inline const AwsSsoAuthentication& GetAwsSso() const{ return m_awsSso; } /** *

A structure containing information about how this workspace works with IAM * Identity Center.

*/ inline bool AwsSsoHasBeenSet() const { return m_awsSsoHasBeenSet; } /** *

A structure containing information about how this workspace works with IAM * Identity Center.

*/ inline void SetAwsSso(const AwsSsoAuthentication& value) { m_awsSsoHasBeenSet = true; m_awsSso = value; } /** *

A structure containing information about how this workspace works with IAM * Identity Center.

*/ inline void SetAwsSso(AwsSsoAuthentication&& value) { m_awsSsoHasBeenSet = true; m_awsSso = std::move(value); } /** *

A structure containing information about how this workspace works with IAM * Identity Center.

*/ inline AuthenticationDescription& WithAwsSso(const AwsSsoAuthentication& value) { SetAwsSso(value); return *this;} /** *

A structure containing information about how this workspace works with IAM * Identity Center.

*/ inline AuthenticationDescription& WithAwsSso(AwsSsoAuthentication&& value) { SetAwsSso(std::move(value)); return *this;} /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline const Aws::Vector& GetProviders() const{ return m_providers; } /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline bool ProvidersHasBeenSet() const { return m_providersHasBeenSet; } /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline void SetProviders(const Aws::Vector& value) { m_providersHasBeenSet = true; m_providers = value; } /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline void SetProviders(Aws::Vector&& value) { m_providersHasBeenSet = true; m_providers = std::move(value); } /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline AuthenticationDescription& WithProviders(const Aws::Vector& value) { SetProviders(value); return *this;} /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline AuthenticationDescription& WithProviders(Aws::Vector&& value) { SetProviders(std::move(value)); return *this;} /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline AuthenticationDescription& AddProviders(const AuthenticationProviderTypes& value) { m_providersHasBeenSet = true; m_providers.push_back(value); return *this; } /** *

Specifies whether this workspace uses IAM Identity Center, SAML, or both * methods to authenticate users to use the Grafana console in the Amazon Managed * Grafana workspace.

*/ inline AuthenticationDescription& AddProviders(AuthenticationProviderTypes&& value) { m_providersHasBeenSet = true; m_providers.push_back(std::move(value)); return *this; } /** *

A structure containing information about how this workspace works with SAML, * including what attributes within the assertion are to be mapped to user * information in the workspace.

*/ inline const SamlAuthentication& GetSaml() const{ return m_saml; } /** *

A structure containing information about how this workspace works with SAML, * including what attributes within the assertion are to be mapped to user * information in the workspace.

*/ inline bool SamlHasBeenSet() const { return m_samlHasBeenSet; } /** *

A structure containing information about how this workspace works with SAML, * including what attributes within the assertion are to be mapped to user * information in the workspace.

*/ inline void SetSaml(const SamlAuthentication& value) { m_samlHasBeenSet = true; m_saml = value; } /** *

A structure containing information about how this workspace works with SAML, * including what attributes within the assertion are to be mapped to user * information in the workspace.

*/ inline void SetSaml(SamlAuthentication&& value) { m_samlHasBeenSet = true; m_saml = std::move(value); } /** *

A structure containing information about how this workspace works with SAML, * including what attributes within the assertion are to be mapped to user * information in the workspace.

*/ inline AuthenticationDescription& WithSaml(const SamlAuthentication& value) { SetSaml(value); return *this;} /** *

A structure containing information about how this workspace works with SAML, * including what attributes within the assertion are to be mapped to user * information in the workspace.

*/ inline AuthenticationDescription& WithSaml(SamlAuthentication&& value) { SetSaml(std::move(value)); return *this;} private: AwsSsoAuthentication m_awsSso; bool m_awsSsoHasBeenSet = false; Aws::Vector m_providers; bool m_providersHasBeenSet = false; SamlAuthentication m_saml; bool m_samlHasBeenSet = false; }; } // namespace Model } // namespace ManagedGrafana } // namespace Aws