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

Creates a new Api resource to represent an API.

See Also:

AWS * API Reference

*/ class CreateApiRequest : public ApiGatewayV2Request { public: AWS_APIGATEWAYV2_API CreateApiRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateApi"; } AWS_APIGATEWAYV2_API Aws::String SerializePayload() const override; /** *

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 CreateApiRequest& 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 CreateApiRequest& 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 CreateApiRequest& WithApiKeySelectionExpression(const char* value) { SetApiKeySelectionExpression(value); return *this;} /** *

A CORS configuration. Supported only for HTTP APIs. See Configuring * CORS for more information.

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

A CORS configuration. Supported only for HTTP APIs. See Configuring * CORS for more information.

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

A CORS configuration. Supported only for HTTP APIs. See Configuring * CORS for more information.

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

A CORS configuration. Supported only for HTTP APIs. See Configuring * CORS for more information.

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

A CORS configuration. Supported only for HTTP APIs. See Configuring * CORS for more information.

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

A CORS configuration. Supported only for HTTP APIs. See Configuring * CORS for more information.

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

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline const Aws::String& GetCredentialsArn() const{ return m_credentialsArn; } /** *

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline bool CredentialsArnHasBeenSet() const { return m_credentialsArnHasBeenSet; } /** *

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline void SetCredentialsArn(const Aws::String& value) { m_credentialsArnHasBeenSet = true; m_credentialsArn = value; } /** *

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline void SetCredentialsArn(Aws::String&& value) { m_credentialsArnHasBeenSet = true; m_credentialsArn = std::move(value); } /** *

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline void SetCredentialsArn(const char* value) { m_credentialsArnHasBeenSet = true; m_credentialsArn.assign(value); } /** *

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline CreateApiRequest& WithCredentialsArn(const Aws::String& value) { SetCredentialsArn(value); return *this;} /** *

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline CreateApiRequest& WithCredentialsArn(Aws::String&& value) { SetCredentialsArn(std::move(value)); return *this;} /** *

This property is part of quick create. It specifies the credentials required * for the integration, if any. For a Lambda integration, three options are * available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed * through from the request, specify arn:aws:iam::*:user/ *. To use resource-based * permissions on supported AWS services, specify null. Currently, this property is * not used for HTTP integrations. Supported only for HTTP APIs.

*/ inline CreateApiRequest& WithCredentialsArn(const char* value) { SetCredentialsArn(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 CreateApiRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the API.

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

The description of the API.

*/ inline CreateApiRequest& 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 CreateApiRequest& WithDisableSchemaValidation(bool value) { SetDisableSchemaValidation(value); return *this;} /** *

Specifies whether clients can invoke your API by using the default * execute-api endpoint. By default, clients can invoke your API with the default * https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default * endpoint.

*/ inline bool GetDisableExecuteApiEndpoint() const{ return m_disableExecuteApiEndpoint; } /** *

Specifies whether clients can invoke your API by using the default * execute-api endpoint. By default, clients can invoke your API with the default * https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default * endpoint.

*/ inline bool DisableExecuteApiEndpointHasBeenSet() const { return m_disableExecuteApiEndpointHasBeenSet; } /** *

Specifies whether clients can invoke your API by using the default * execute-api endpoint. By default, clients can invoke your API with the default * https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default * endpoint.

*/ inline void SetDisableExecuteApiEndpoint(bool value) { m_disableExecuteApiEndpointHasBeenSet = true; m_disableExecuteApiEndpoint = value; } /** *

Specifies whether clients can invoke your API by using the default * execute-api endpoint. By default, clients can invoke your API with the default * https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default * endpoint.

*/ inline CreateApiRequest& WithDisableExecuteApiEndpoint(bool value) { SetDisableExecuteApiEndpoint(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 CreateApiRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the API.

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

The name of the API.

*/ inline CreateApiRequest& 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 CreateApiRequest& WithProtocolType(const ProtocolType& value) { SetProtocolType(value); return *this;} /** *

The API protocol.

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

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline const Aws::String& GetRouteKey() const{ return m_routeKey; } /** *

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline bool RouteKeyHasBeenSet() const { return m_routeKeyHasBeenSet; } /** *

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline void SetRouteKey(const Aws::String& value) { m_routeKeyHasBeenSet = true; m_routeKey = value; } /** *

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline void SetRouteKey(Aws::String&& value) { m_routeKeyHasBeenSet = true; m_routeKey = std::move(value); } /** *

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline void SetRouteKey(const char* value) { m_routeKeyHasBeenSet = true; m_routeKey.assign(value); } /** *

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline CreateApiRequest& WithRouteKey(const Aws::String& value) { SetRouteKey(value); return *this;} /** *

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline CreateApiRequest& WithRouteKey(Aws::String&& value) { SetRouteKey(std::move(value)); return *this;} /** *

This property is part of quick create. If you don't specify a routeKey, a * default route of $default is created. The $default route acts as a catch-all for * any request made to your API, for a particular stage. The $default route key * can't be modified. You can add routes after creating the API, and you can update * the route keys of additional routes. Supported only for HTTP APIs.

*/ inline CreateApiRequest& WithRouteKey(const char* value) { SetRouteKey(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 CreateApiRequest& 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 CreateApiRequest& 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 CreateApiRequest& WithRouteSelectionExpression(const char* value) { SetRouteSelectionExpression(value); return *this;} /** *

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

The collection of tags. Each tag element is associated with a given * resource.

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

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline const Aws::String& GetTarget() const{ return m_target; } /** *

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline bool TargetHasBeenSet() const { return m_targetHasBeenSet; } /** *

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline void SetTarget(const Aws::String& value) { m_targetHasBeenSet = true; m_target = value; } /** *

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline void SetTarget(Aws::String&& value) { m_targetHasBeenSet = true; m_target = std::move(value); } /** *

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline void SetTarget(const char* value) { m_targetHasBeenSet = true; m_target.assign(value); } /** *

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline CreateApiRequest& WithTarget(const Aws::String& value) { SetTarget(value); return *this;} /** *

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline CreateApiRequest& WithTarget(Aws::String&& value) { SetTarget(std::move(value)); return *this;} /** *

This property is part of quick create. Quick create produces an API with an * integration, a default catch-all route, and a default stage which is configured * to automatically deploy changes. For HTTP integrations, specify a fully * qualified URL. For Lambda integrations, specify a function ARN. The type of the * integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for * HTTP APIs.

*/ inline CreateApiRequest& WithTarget(const char* value) { SetTarget(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 CreateApiRequest& WithVersion(const Aws::String& value) { SetVersion(value); return *this;} /** *

A version identifier for the API.

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

A version identifier for the API.

*/ inline CreateApiRequest& WithVersion(const char* value) { SetVersion(value); return *this;} private: Aws::String m_apiKeySelectionExpression; bool m_apiKeySelectionExpressionHasBeenSet = false; Cors m_corsConfiguration; bool m_corsConfigurationHasBeenSet = false; Aws::String m_credentialsArn; bool m_credentialsArnHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_disableSchemaValidation; bool m_disableSchemaValidationHasBeenSet = false; bool m_disableExecuteApiEndpoint; bool m_disableExecuteApiEndpointHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; ProtocolType m_protocolType; bool m_protocolTypeHasBeenSet = false; Aws::String m_routeKey; bool m_routeKeyHasBeenSet = false; Aws::String m_routeSelectionExpression; bool m_routeSelectionExpressionHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::String m_target; bool m_targetHasBeenSet = false; Aws::String m_version; bool m_versionHasBeenSet = false; }; } // namespace Model } // namespace ApiGatewayV2 } // namespace Aws