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

Contains information about a version 2 API in Amazon API * Gateway.

See Also:

AWS * API Reference

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

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline const Aws::String& GetApiEndpoint() const{ return m_apiEndpoint; } /** *

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline bool ApiEndpointHasBeenSet() const { return m_apiEndpointHasBeenSet; } /** *

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline void SetApiEndpoint(const Aws::String& value) { m_apiEndpointHasBeenSet = true; m_apiEndpoint = value; } /** *

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline void SetApiEndpoint(Aws::String&& value) { m_apiEndpointHasBeenSet = true; m_apiEndpoint = std::move(value); } /** *

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline void SetApiEndpoint(const char* value) { m_apiEndpointHasBeenSet = true; m_apiEndpoint.assign(value); } /** *

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline AwsApiGatewayV2ApiDetails& WithApiEndpoint(const Aws::String& value) { SetApiEndpoint(value); return *this;} /** *

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline AwsApiGatewayV2ApiDetails& WithApiEndpoint(Aws::String&& value) { SetApiEndpoint(std::move(value)); return *this;} /** *

The URI of the API.

Uses the format * <api-id>.execute-api.<region>.amazonaws.com *

The stage name is typically appended to the URI to form a complete path * to a deployed API stage.

*/ inline AwsApiGatewayV2ApiDetails& WithApiEndpoint(const char* value) { SetApiEndpoint(value); return *this;} /** *

The identifier of the API.

*/ inline const Aws::String& GetApiId() const{ return m_apiId; } /** *

The identifier of the API.

*/ inline bool ApiIdHasBeenSet() const { return m_apiIdHasBeenSet; } /** *

The identifier of the API.

*/ inline void SetApiId(const Aws::String& value) { m_apiIdHasBeenSet = true; m_apiId = value; } /** *

The identifier of the API.

*/ inline void SetApiId(Aws::String&& value) { m_apiIdHasBeenSet = true; m_apiId = std::move(value); } /** *

The identifier of the API.

*/ inline void SetApiId(const char* value) { m_apiIdHasBeenSet = true; m_apiId.assign(value); } /** *

The identifier of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithApiId(const Aws::String& value) { SetApiId(value); return *this;} /** *

The identifier of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithApiId(Aws::String&& value) { SetApiId(std::move(value)); return *this;} /** *

The identifier of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithApiId(const char* value) { SetApiId(value); return *this;} /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline const Aws::String& GetApiKeySelectionExpression() const{ return m_apiKeySelectionExpression; } /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline bool ApiKeySelectionExpressionHasBeenSet() const { return m_apiKeySelectionExpressionHasBeenSet; } /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline void SetApiKeySelectionExpression(const Aws::String& value) { m_apiKeySelectionExpressionHasBeenSet = true; m_apiKeySelectionExpression = value; } /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline void SetApiKeySelectionExpression(Aws::String&& value) { m_apiKeySelectionExpressionHasBeenSet = true; m_apiKeySelectionExpression = std::move(value); } /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline void SetApiKeySelectionExpression(const char* value) { m_apiKeySelectionExpressionHasBeenSet = true; m_apiKeySelectionExpression.assign(value); } /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline AwsApiGatewayV2ApiDetails& WithApiKeySelectionExpression(const Aws::String& value) { SetApiKeySelectionExpression(value); return *this;} /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline AwsApiGatewayV2ApiDetails& WithApiKeySelectionExpression(Aws::String&& value) { SetApiKeySelectionExpression(std::move(value)); return *this;} /** *

An API key selection expression. Supported only for WebSocket APIs.

*/ inline AwsApiGatewayV2ApiDetails& WithApiKeySelectionExpression(const char* value) { SetApiKeySelectionExpression(value); return *this;} /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetCreatedDate() const{ return m_createdDate; } /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; } /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedDate(const Aws::String& value) { m_createdDateHasBeenSet = true; m_createdDate = value; } /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedDate(Aws::String&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); } /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedDate(const char* value) { m_createdDateHasBeenSet = true; m_createdDate.assign(value); } /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsApiGatewayV2ApiDetails& WithCreatedDate(const Aws::String& value) { SetCreatedDate(value); return *this;} /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsApiGatewayV2ApiDetails& WithCreatedDate(Aws::String&& value) { SetCreatedDate(std::move(value)); return *this;} /** *

Indicates when the API was created.

Uses the date-time * format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsApiGatewayV2ApiDetails& WithCreatedDate(const char* value) { SetCreatedDate(value); return *this;} /** *

A description of the API.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description of the API.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description of the API.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description of the API.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description of the API.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The version identifier for the API.

*/ inline const Aws::String& GetVersion() const{ return m_version; } /** *

The version identifier for the API.

*/ inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; } /** *

The version identifier for the API.

*/ inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; } /** *

The version identifier for the API.

*/ inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); } /** *

The version identifier for the API.

*/ inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); } /** *

The version identifier for the API.

*/ inline AwsApiGatewayV2ApiDetails& WithVersion(const Aws::String& value) { SetVersion(value); return *this;} /** *

The version identifier for the API.

*/ inline AwsApiGatewayV2ApiDetails& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;} /** *

The version identifier for the API.

*/ inline AwsApiGatewayV2ApiDetails& WithVersion(const char* value) { SetVersion(value); return *this;} /** *

The name of the API.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the API.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the API.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the API.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the API.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the API.

*/ inline AwsApiGatewayV2ApiDetails& WithName(const char* value) { SetName(value); return *this;} /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline const Aws::String& GetProtocolType() const{ return m_protocolType; } /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline bool ProtocolTypeHasBeenSet() const { return m_protocolTypeHasBeenSet; } /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline void SetProtocolType(const Aws::String& value) { m_protocolTypeHasBeenSet = true; m_protocolType = value; } /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline void SetProtocolType(Aws::String&& value) { m_protocolTypeHasBeenSet = true; m_protocolType = std::move(value); } /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline void SetProtocolType(const char* value) { m_protocolTypeHasBeenSet = true; m_protocolType.assign(value); } /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline AwsApiGatewayV2ApiDetails& WithProtocolType(const Aws::String& value) { SetProtocolType(value); return *this;} /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline AwsApiGatewayV2ApiDetails& WithProtocolType(Aws::String&& value) { SetProtocolType(std::move(value)); return *this;} /** *

The API protocol for the API.

Valid values: WEBSOCKET | * HTTP

*/ inline AwsApiGatewayV2ApiDetails& WithProtocolType(const char* value) { SetProtocolType(value); return *this;} /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline const Aws::String& GetRouteSelectionExpression() const{ return m_routeSelectionExpression; } /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline bool RouteSelectionExpressionHasBeenSet() const { return m_routeSelectionExpressionHasBeenSet; } /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline void SetRouteSelectionExpression(const Aws::String& value) { m_routeSelectionExpressionHasBeenSet = true; m_routeSelectionExpression = value; } /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline void SetRouteSelectionExpression(Aws::String&& value) { m_routeSelectionExpressionHasBeenSet = true; m_routeSelectionExpression = std::move(value); } /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline void SetRouteSelectionExpression(const char* value) { m_routeSelectionExpressionHasBeenSet = true; m_routeSelectionExpression.assign(value); } /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline AwsApiGatewayV2ApiDetails& WithRouteSelectionExpression(const Aws::String& value) { SetRouteSelectionExpression(value); return *this;} /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline AwsApiGatewayV2ApiDetails& WithRouteSelectionExpression(Aws::String&& value) { SetRouteSelectionExpression(std::move(value)); return *this;} /** *

The route selection expression for the API.

For HTTP APIs, must be * ${request.method} ${request.path}. This is the default value for * HTTP APIs.

For WebSocket APIs, there is no default value.

*/ inline AwsApiGatewayV2ApiDetails& WithRouteSelectionExpression(const char* value) { SetRouteSelectionExpression(value); return *this;} /** *

A cross-origin resource sharing (CORS) configuration. Supported only for HTTP * APIs.

*/ inline const AwsCorsConfiguration& GetCorsConfiguration() const{ return m_corsConfiguration; } /** *

A cross-origin resource sharing (CORS) configuration. Supported only for HTTP * APIs.

*/ inline bool CorsConfigurationHasBeenSet() const { return m_corsConfigurationHasBeenSet; } /** *

A cross-origin resource sharing (CORS) configuration. Supported only for HTTP * APIs.

*/ inline void SetCorsConfiguration(const AwsCorsConfiguration& value) { m_corsConfigurationHasBeenSet = true; m_corsConfiguration = value; } /** *

A cross-origin resource sharing (CORS) configuration. Supported only for HTTP * APIs.

*/ inline void SetCorsConfiguration(AwsCorsConfiguration&& value) { m_corsConfigurationHasBeenSet = true; m_corsConfiguration = std::move(value); } /** *

A cross-origin resource sharing (CORS) configuration. Supported only for HTTP * APIs.

*/ inline AwsApiGatewayV2ApiDetails& WithCorsConfiguration(const AwsCorsConfiguration& value) { SetCorsConfiguration(value); return *this;} /** *

A cross-origin resource sharing (CORS) configuration. Supported only for HTTP * APIs.

*/ inline AwsApiGatewayV2ApiDetails& WithCorsConfiguration(AwsCorsConfiguration&& value) { SetCorsConfiguration(std::move(value)); return *this;} private: Aws::String m_apiEndpoint; bool m_apiEndpointHasBeenSet = false; Aws::String m_apiId; bool m_apiIdHasBeenSet = false; Aws::String m_apiKeySelectionExpression; bool m_apiKeySelectionExpressionHasBeenSet = false; Aws::String m_createdDate; bool m_createdDateHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_version; bool m_versionHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_protocolType; bool m_protocolTypeHasBeenSet = false; Aws::String m_routeSelectionExpression; bool m_routeSelectionExpressionHasBeenSet = false; AwsCorsConfiguration m_corsConfiguration; bool m_corsConfigurationHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws