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

The identity provider configuration that you gave when the data store was * created.

See Also:

AWS * API Reference

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

The authorization strategy that you selected when you created the data * store.

*/ inline const AuthorizationStrategy& GetAuthorizationStrategy() const{ return m_authorizationStrategy; } /** *

The authorization strategy that you selected when you created the data * store.

*/ inline bool AuthorizationStrategyHasBeenSet() const { return m_authorizationStrategyHasBeenSet; } /** *

The authorization strategy that you selected when you created the data * store.

*/ inline void SetAuthorizationStrategy(const AuthorizationStrategy& value) { m_authorizationStrategyHasBeenSet = true; m_authorizationStrategy = value; } /** *

The authorization strategy that you selected when you created the data * store.

*/ inline void SetAuthorizationStrategy(AuthorizationStrategy&& value) { m_authorizationStrategyHasBeenSet = true; m_authorizationStrategy = std::move(value); } /** *

The authorization strategy that you selected when you created the data * store.

*/ inline IdentityProviderConfiguration& WithAuthorizationStrategy(const AuthorizationStrategy& value) { SetAuthorizationStrategy(value); return *this;} /** *

The authorization strategy that you selected when you created the data * store.

*/ inline IdentityProviderConfiguration& WithAuthorizationStrategy(AuthorizationStrategy&& value) { SetAuthorizationStrategy(std::move(value)); return *this;} /** *

If you enabled fine-grained authorization when you created the data * store.

*/ inline bool GetFineGrainedAuthorizationEnabled() const{ return m_fineGrainedAuthorizationEnabled; } /** *

If you enabled fine-grained authorization when you created the data * store.

*/ inline bool FineGrainedAuthorizationEnabledHasBeenSet() const { return m_fineGrainedAuthorizationEnabledHasBeenSet; } /** *

If you enabled fine-grained authorization when you created the data * store.

*/ inline void SetFineGrainedAuthorizationEnabled(bool value) { m_fineGrainedAuthorizationEnabledHasBeenSet = true; m_fineGrainedAuthorizationEnabled = value; } /** *

If you enabled fine-grained authorization when you created the data * store.

*/ inline IdentityProviderConfiguration& WithFineGrainedAuthorizationEnabled(bool value) { SetFineGrainedAuthorizationEnabled(value); return *this;} /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline const Aws::String& GetMetadata() const{ return m_metadata; } /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; } /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline void SetMetadata(const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata = value; } /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline void SetMetadata(Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); } /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline void SetMetadata(const char* value) { m_metadataHasBeenSet = true; m_metadata.assign(value); } /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline IdentityProviderConfiguration& WithMetadata(const Aws::String& value) { SetMetadata(value); return *this;} /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline IdentityProviderConfiguration& WithMetadata(Aws::String&& value) { SetMetadata(std::move(value)); return *this;} /** *

The JSON metadata elements that you want to use in your identity provider * configuration. Required elements are listed based on the launch specification of * the SMART application. For more information on all possible elements, see Metadata * in SMART's App Launch specification.

* authorization_endpoint: The URL to the OAuth2 authorization * endpoint.

grant_types_supported: An array of grant types * that are supported at the token endpoint. You must provide at least one grant * type option. Valid options are authorization_code and * client_credentials.

token_endpoint: The URL to * the OAuth2 token endpoint.

capabilities: An array of * strings of the SMART capabilities that the authorization server supports.

*

code_challenge_methods_supported: An array of strings of * supported PKCE code challenge methods. You must include the S256 * method in the array of PKCE code challenge methods.

*/ inline IdentityProviderConfiguration& WithMetadata(const char* value) { SetMetadata(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline const Aws::String& GetIdpLambdaArn() const{ return m_idpLambdaArn; } /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline bool IdpLambdaArnHasBeenSet() const { return m_idpLambdaArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline void SetIdpLambdaArn(const Aws::String& value) { m_idpLambdaArnHasBeenSet = true; m_idpLambdaArn = value; } /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline void SetIdpLambdaArn(Aws::String&& value) { m_idpLambdaArnHasBeenSet = true; m_idpLambdaArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline void SetIdpLambdaArn(const char* value) { m_idpLambdaArnHasBeenSet = true; m_idpLambdaArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline IdentityProviderConfiguration& WithIdpLambdaArn(const Aws::String& value) { SetIdpLambdaArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline IdentityProviderConfiguration& WithIdpLambdaArn(Aws::String&& value) { SetIdpLambdaArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Lambda function that you want to use to * decode the access token created by the authorization server.

*/ inline IdentityProviderConfiguration& WithIdpLambdaArn(const char* value) { SetIdpLambdaArn(value); return *this;} private: AuthorizationStrategy m_authorizationStrategy; bool m_authorizationStrategyHasBeenSet = false; bool m_fineGrainedAuthorizationEnabled; bool m_fineGrainedAuthorizationEnabledHasBeenSet = false; Aws::String m_metadata; bool m_metadataHasBeenSet = false; Aws::String m_idpLambdaArn; bool m_idpLambdaArnHasBeenSet = false; }; } // namespace Model } // namespace HealthLake } // namespace Aws