/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ApiGatewayV2 { namespace Model { /** *

Represents an API.

See Also:

AWS * API Reference

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

The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this 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, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this URI to form a complete path to a * deployed API stage.

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

The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this 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, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this 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, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this 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, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this URI to form a complete path to a * deployed API stage.

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

The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this URI to form a complete path to a * deployed API stage.

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

The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. * The stage name is typically appended to this URI to form a complete path to a * deployed API stage.

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

Specifies whether an API is managed by API Gateway. You can't update or * delete a managed API by using API Gateway. A managed API can be deleted only * through the tooling or service that created it.

*/ inline bool GetApiGatewayManaged() const{ return m_apiGatewayManaged; } /** *

Specifies whether an API is managed by API Gateway. You can't update or * delete a managed API by using API Gateway. A managed API can be deleted only * through the tooling or service that created it.

*/ inline bool ApiGatewayManagedHasBeenSet() const { return m_apiGatewayManagedHasBeenSet; } /** *

Specifies whether an API is managed by API Gateway. You can't update or * delete a managed API by using API Gateway. A managed API can be deleted only * through the tooling or service that created it.

*/ inline void SetApiGatewayManaged(bool value) { m_apiGatewayManagedHasBeenSet = true; m_apiGatewayManaged = value; } /** *

Specifies whether an API is managed by API Gateway. You can't update or * delete a managed API by using API Gateway. A managed API can be deleted only * through the tooling or service that created it.

*/ inline Api& WithApiGatewayManaged(bool value) { SetApiGatewayManaged(value); return *this;} /** *

The API ID.

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

The API ID.

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

The API ID.

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

The API ID.

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

The API ID.

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

The API ID.

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

The API ID.

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

The API ID.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

An API key selection expression. Supported only for WebSocket APIs. See API * Key Selection Expressions.

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

A CORS configuration. Supported only for HTTP APIs.

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

A CORS configuration. Supported only for HTTP APIs.

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

A CORS configuration. Supported only for HTTP APIs.

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

A CORS configuration. Supported only for HTTP APIs.

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

A CORS configuration. Supported only for HTTP APIs.

*/ inline Api& WithCorsConfiguration(const Cors& value) { SetCorsConfiguration(value); return *this;} /** *

A CORS configuration. Supported only for HTTP APIs.

*/ inline Api& WithCorsConfiguration(Cors&& value) { SetCorsConfiguration(std::move(value)); return *this;} /** *

The timestamp when the API was created.

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

The timestamp when the API was created.

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

The timestamp when the API was created.

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

The timestamp when the API was created.

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

The timestamp when the API was created.

*/ inline Api& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;} /** *

The timestamp when the API was created.

*/ inline Api& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;} /** *

The description of the API.

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

The description of the API.

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

The description of the API.

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

The description of the API.

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

The description of the API.

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

The description of the API.

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

The description of the API.

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

The description of the API.

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

Avoid validating models when creating a deployment. Supported only for * WebSocket APIs.

*/ inline bool GetDisableSchemaValidation() const{ return m_disableSchemaValidation; } /** *

Avoid validating models when creating a deployment. Supported only for * WebSocket APIs.

*/ inline bool DisableSchemaValidationHasBeenSet() const { return m_disableSchemaValidationHasBeenSet; } /** *

Avoid validating models when creating a deployment. Supported only for * WebSocket APIs.

*/ inline void SetDisableSchemaValidation(bool value) { m_disableSchemaValidationHasBeenSet = true; m_disableSchemaValidation = value; } /** *

Avoid validating models when creating a deployment. Supported only for * WebSocket APIs.

*/ inline Api& WithDisableSchemaValidation(bool value) { SetDisableSchemaValidation(value); return *this;} /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline const Aws::Vector& GetImportInfo() const{ return m_importInfo; } /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline bool ImportInfoHasBeenSet() const { return m_importInfoHasBeenSet; } /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline void SetImportInfo(const Aws::Vector& value) { m_importInfoHasBeenSet = true; m_importInfo = value; } /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline void SetImportInfo(Aws::Vector&& value) { m_importInfoHasBeenSet = true; m_importInfo = std::move(value); } /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline Api& WithImportInfo(const Aws::Vector& value) { SetImportInfo(value); return *this;} /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline Api& WithImportInfo(Aws::Vector&& value) { SetImportInfo(std::move(value)); return *this;} /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline Api& AddImportInfo(const Aws::String& value) { m_importInfoHasBeenSet = true; m_importInfo.push_back(value); return *this; } /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline Api& AddImportInfo(Aws::String&& value) { m_importInfoHasBeenSet = true; m_importInfo.push_back(std::move(value)); return *this; } /** *

The validation information during API import. This may include particular * properties of your OpenAPI definition which are ignored during import. Supported * only for HTTP APIs.

*/ inline Api& AddImportInfo(const char* value) { m_importInfoHasBeenSet = true; m_importInfo.push_back(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 Api& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the API.

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

The name of the API.

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

The API protocol.

*/ inline const ProtocolType& GetProtocolType() const{ return m_protocolType; } /** *

The API protocol.

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

The API protocol.

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

The API protocol.

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

The API protocol.

*/ inline Api& WithProtocolType(const ProtocolType& value) { SetProtocolType(value); return *this;} /** *

The API protocol.

*/ inline Api& WithProtocolType(ProtocolType&& value) { SetProtocolType(std::move(value)); return *this;} /** *

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

The route selection expression for the API. For HTTP APIs, the * routeSelectionExpression must be ${request.method} ${request.path}. If not * provided, this will be the default for HTTP APIs. This property is required for * WebSocket APIs.

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

A collection of tags associated with the API.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

A collection of tags associated with the API.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A collection of tags associated with the API.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A collection of tags associated with the API.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A collection of tags associated with the API.

*/ inline Api& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

A collection of tags associated with the API.

*/ inline Api& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

A collection of tags associated with the API.

*/ inline Api& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

A collection of tags associated with the API.

*/ inline Api& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A collection of tags associated with the API.

*/ inline Api& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A collection of tags associated with the API.

*/ inline Api& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

A collection of tags associated with the API.

*/ inline Api& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A collection of tags associated with the API.

*/ inline Api& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A collection of tags associated with the API.

*/ inline Api& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

A version identifier for the API.

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

A version identifier for the API.

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

A version identifier for the API.

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

A version identifier for the API.

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

A version identifier for the API.

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

A version identifier for the API.

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

A version identifier for the API.

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

A version identifier for the API.

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

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline const Aws::Vector& GetWarnings() const{ return m_warnings; } /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline bool WarningsHasBeenSet() const { return m_warningsHasBeenSet; } /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline void SetWarnings(const Aws::Vector& value) { m_warningsHasBeenSet = true; m_warnings = value; } /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline void SetWarnings(Aws::Vector&& value) { m_warningsHasBeenSet = true; m_warnings = std::move(value); } /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline Api& WithWarnings(const Aws::Vector& value) { SetWarnings(value); return *this;} /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline Api& WithWarnings(Aws::Vector&& value) { SetWarnings(std::move(value)); return *this;} /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline Api& AddWarnings(const Aws::String& value) { m_warningsHasBeenSet = true; m_warnings.push_back(value); return *this; } /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline Api& AddWarnings(Aws::String&& value) { m_warningsHasBeenSet = true; m_warnings.push_back(std::move(value)); return *this; } /** *

The warning messages reported when failonwarnings is turned on during API * import.

*/ inline Api& AddWarnings(const char* value) { m_warningsHasBeenSet = true; m_warnings.push_back(value); return *this; } private: Aws::String m_apiEndpoint; bool m_apiEndpointHasBeenSet; bool m_apiGatewayManaged; bool m_apiGatewayManagedHasBeenSet; Aws::String m_apiId; bool m_apiIdHasBeenSet; Aws::String m_apiKeySelectionExpression; bool m_apiKeySelectionExpressionHasBeenSet; Cors m_corsConfiguration; bool m_corsConfigurationHasBeenSet; Aws::Utils::DateTime m_createdDate; bool m_createdDateHasBeenSet; Aws::String m_description; bool m_descriptionHasBeenSet; bool m_disableSchemaValidation; bool m_disableSchemaValidationHasBeenSet; Aws::Vector m_importInfo; bool m_importInfoHasBeenSet; Aws::String m_name; bool m_nameHasBeenSet; ProtocolType m_protocolType; bool m_protocolTypeHasBeenSet; Aws::String m_routeSelectionExpression; bool m_routeSelectionExpressionHasBeenSet; Aws::Map m_tags; bool m_tagsHasBeenSet; Aws::String m_version; bool m_versionHasBeenSet; Aws::Vector m_warnings; bool m_warningsHasBeenSet; }; } // namespace Model } // namespace ApiGatewayV2 } // namespace Aws