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

A list of additional authentication providers for the GraphqlApi API. *

See Also:

AWS * API Reference

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

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline const Aws::String& GetAuthenticationType() const{ return m_authenticationType; } /** *

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline bool AuthenticationTypeHasBeenSet() const { return m_authenticationTypeHasBeenSet; } /** *

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline void SetAuthenticationType(const Aws::String& value) { m_authenticationTypeHasBeenSet = true; m_authenticationType = value; } /** *

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline void SetAuthenticationType(Aws::String&& value) { m_authenticationTypeHasBeenSet = true; m_authenticationType = std::move(value); } /** *

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline void SetAuthenticationType(const char* value) { m_authenticationTypeHasBeenSet = true; m_authenticationType.assign(value); } /** *

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithAuthenticationType(const Aws::String& value) { SetAuthenticationType(value); return *this;} /** *

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithAuthenticationType(Aws::String&& value) { SetAuthenticationType(std::move(value)); return *this;} /** *

The type of security configuration for your GraphQL API: API key, Identity * and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, * or Lambda.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithAuthenticationType(const char* value) { SetAuthenticationType(value); return *this;} /** *

The configuration for Lambda function authorization.

*/ inline const AwsAppSyncGraphQlApiLambdaAuthorizerConfigDetails& GetLambdaAuthorizerConfig() const{ return m_lambdaAuthorizerConfig; } /** *

The configuration for Lambda function authorization.

*/ inline bool LambdaAuthorizerConfigHasBeenSet() const { return m_lambdaAuthorizerConfigHasBeenSet; } /** *

The configuration for Lambda function authorization.

*/ inline void SetLambdaAuthorizerConfig(const AwsAppSyncGraphQlApiLambdaAuthorizerConfigDetails& value) { m_lambdaAuthorizerConfigHasBeenSet = true; m_lambdaAuthorizerConfig = value; } /** *

The configuration for Lambda function authorization.

*/ inline void SetLambdaAuthorizerConfig(AwsAppSyncGraphQlApiLambdaAuthorizerConfigDetails&& value) { m_lambdaAuthorizerConfigHasBeenSet = true; m_lambdaAuthorizerConfig = std::move(value); } /** *

The configuration for Lambda function authorization.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithLambdaAuthorizerConfig(const AwsAppSyncGraphQlApiLambdaAuthorizerConfigDetails& value) { SetLambdaAuthorizerConfig(value); return *this;} /** *

The configuration for Lambda function authorization.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithLambdaAuthorizerConfig(AwsAppSyncGraphQlApiLambdaAuthorizerConfigDetails&& value) { SetLambdaAuthorizerConfig(std::move(value)); return *this;} /** *

The OpenID Connect configuration.

*/ inline const AwsAppSyncGraphQlApiOpenIdConnectConfigDetails& GetOpenIdConnectConfig() const{ return m_openIdConnectConfig; } /** *

The OpenID Connect configuration.

*/ inline bool OpenIdConnectConfigHasBeenSet() const { return m_openIdConnectConfigHasBeenSet; } /** *

The OpenID Connect configuration.

*/ inline void SetOpenIdConnectConfig(const AwsAppSyncGraphQlApiOpenIdConnectConfigDetails& value) { m_openIdConnectConfigHasBeenSet = true; m_openIdConnectConfig = value; } /** *

The OpenID Connect configuration.

*/ inline void SetOpenIdConnectConfig(AwsAppSyncGraphQlApiOpenIdConnectConfigDetails&& value) { m_openIdConnectConfigHasBeenSet = true; m_openIdConnectConfig = std::move(value); } /** *

The OpenID Connect configuration.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithOpenIdConnectConfig(const AwsAppSyncGraphQlApiOpenIdConnectConfigDetails& value) { SetOpenIdConnectConfig(value); return *this;} /** *

The OpenID Connect configuration.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithOpenIdConnectConfig(AwsAppSyncGraphQlApiOpenIdConnectConfigDetails&& value) { SetOpenIdConnectConfig(std::move(value)); return *this;} /** *

The Amazon Cognito user pools configuration.

*/ inline const AwsAppSyncGraphQlApiUserPoolConfigDetails& GetUserPoolConfig() const{ return m_userPoolConfig; } /** *

The Amazon Cognito user pools configuration.

*/ inline bool UserPoolConfigHasBeenSet() const { return m_userPoolConfigHasBeenSet; } /** *

The Amazon Cognito user pools configuration.

*/ inline void SetUserPoolConfig(const AwsAppSyncGraphQlApiUserPoolConfigDetails& value) { m_userPoolConfigHasBeenSet = true; m_userPoolConfig = value; } /** *

The Amazon Cognito user pools configuration.

*/ inline void SetUserPoolConfig(AwsAppSyncGraphQlApiUserPoolConfigDetails&& value) { m_userPoolConfigHasBeenSet = true; m_userPoolConfig = std::move(value); } /** *

The Amazon Cognito user pools configuration.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithUserPoolConfig(const AwsAppSyncGraphQlApiUserPoolConfigDetails& value) { SetUserPoolConfig(value); return *this;} /** *

The Amazon Cognito user pools configuration.

*/ inline AwsAppSyncGraphQlApiAdditionalAuthenticationProvidersDetails& WithUserPoolConfig(AwsAppSyncGraphQlApiUserPoolConfigDetails&& value) { SetUserPoolConfig(std::move(value)); return *this;} private: Aws::String m_authenticationType; bool m_authenticationTypeHasBeenSet = false; AwsAppSyncGraphQlApiLambdaAuthorizerConfigDetails m_lambdaAuthorizerConfig; bool m_lambdaAuthorizerConfigHasBeenSet = false; AwsAppSyncGraphQlApiOpenIdConnectConfigDetails m_openIdConnectConfig; bool m_openIdConnectConfigHasBeenSet = false; AwsAppSyncGraphQlApiUserPoolConfigDetails m_userPoolConfig; bool m_userPoolConfigHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws