Skip to main content

apis

Creates, updates, deletes or gets an api resource or lists apis in a region

Overview

Nameapis
TypeResource
DescriptionThe AWS::ApiGatewayV2::Api resource creates an API. WebSocket APIs and HTTP APIs are supported. For more information about WebSocket APIs, see [About WebSocket APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-overview.html) in the *API Gateway Developer Guide*. For more information about HTTP APIs, see [HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) in the *API Gateway Developer Guide.*
Idaws.apigatewayv2.apis

Fields

NameDatatypeDescription
route_selection_expressionstringThe 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.
body_s3_locationobjectThe S3 location of an OpenAPI definition. Supported only for HTTP APIs. To import an HTTP API, you must specify a Body or BodyS3Location. If you specify a Body or BodyS3Location, don't specify CloudFormation resources such as AWS::ApiGatewayV2::Authorizer or AWS::ApiGatewayV2::Route. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources.
descriptionstringThe description of the API.
api_endpointstring
base_pathstringSpecifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see [Set the OpenAPI basePath Property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html). Supported only for HTTP APIs.
fail_on_warningsbooleanSpecifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered.
disable_execute_api_endpointbooleanSpecifies 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.
disable_schema_validationbooleanAvoid validating models when creating a deployment. Supported only for WebSocket APIs.
namestringThe name of the API. Required unless you specify an OpenAPI definition for Body or S3BodyLocation.
targetstringThis 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.
credentials_arnstringThis 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.
cors_configurationobjectA CORS configuration. Supported only for HTTP APIs. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information.
versionstringA version identifier for the API.
protocol_typestringThe API protocol. Valid values are WEBSOCKET or HTTP. Required unless you specify an OpenAPI definition for Body or S3BodyLocation.
route_keystringThis 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.
api_idstring
bodyobjectThe OpenAPI definition. Supported only for HTTP APIs. To import an HTTP API, you must specify a Body or BodyS3Location. If you specify a Body or BodyS3Location, don't specify CloudFormation resources such as AWS::ApiGatewayV2::Authorizer or AWS::ApiGatewayV2::Route. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources.
tagsobjectThe collection of tags. Each tag element is associated with a given resource.
api_key_selection_expressionstringAn API key selection expression. Supported only for WebSocket APIs. See [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions).
regionstringAWS region.

Methods

NameAccessible byRequired Params
create_resourceINSERTregion
delete_resourceDELETEdata__Identifier, region
update_resourceUPDATEdata__Identifier, data__PatchDocument, region
list_resourcesSELECTregion
get_resourceSELECTdata__Identifier, region

SELECT examples

Gets all apis in a region.

SELECT
region,
route_selection_expression,
body_s3_location,
description,
api_endpoint,
base_path,
fail_on_warnings,
disable_execute_api_endpoint,
disable_schema_validation,
name,
target,
credentials_arn,
cors_configuration,
version,
protocol_type,
route_key,
api_id,
body,
tags,
api_key_selection_expression
FROM aws.apigatewayv2.apis
WHERE region = 'us-east-1';

Gets all properties from an individual api.

SELECT
region,
route_selection_expression,
body_s3_location,
description,
api_endpoint,
base_path,
fail_on_warnings,
disable_execute_api_endpoint,
disable_schema_validation,
name,
target,
credentials_arn,
cors_configuration,
version,
protocol_type,
route_key,
api_id,
body,
tags,
api_key_selection_expression
FROM aws.apigatewayv2.apis
WHERE region = 'us-east-1' AND data__Identifier = '<ApiId>';

INSERT example

Use the following StackQL query and manifest file to create a new api resource, using stack-deploy.

/*+ create */
INSERT INTO aws.apigatewayv2.apis (
RouteSelectionExpression,
BodyS3Location,
Description,
BasePath,
FailOnWarnings,
DisableExecuteApiEndpoint,
DisableSchemaValidation,
Name,
Target,
CredentialsArn,
CorsConfiguration,
Version,
ProtocolType,
RouteKey,
Body,
Tags,
ApiKeySelectionExpression,
region
)
SELECT
'{{ RouteSelectionExpression }}',
'{{ BodyS3Location }}',
'{{ Description }}',
'{{ BasePath }}',
'{{ FailOnWarnings }}',
'{{ DisableExecuteApiEndpoint }}',
'{{ DisableSchemaValidation }}',
'{{ Name }}',
'{{ Target }}',
'{{ CredentialsArn }}',
'{{ CorsConfiguration }}',
'{{ Version }}',
'{{ ProtocolType }}',
'{{ RouteKey }}',
'{{ Body }}',
'{{ Tags }}',
'{{ ApiKeySelectionExpression }}',
'{{ region }}';

DELETE example

/*+ delete */
DELETE FROM aws.apigatewayv2.apis
WHERE data__Identifier = '<ApiId>'
AND region = 'us-east-1';

Permissions

To operate on the apis resource, the following permissions are required:

Create

apigateway:POST,
apigateway:PUT,
s3:getObject

Update

apigateway:PATCH,
apigateway:GET,
apigateway:PUT,
apigateway:POST,
s3:getObject

Read

apigateway:GET,
s3:getObject

Delete

apigateway:GET,
apigateway:DELETE,
s3:getObject

List

apigateway:GET,
s3:getObject