aws_api_gateway_v2_integration_responses Resource
Use the aws_api_gateway_v2_integration_responses
InSpec audit resource to test properties of multiple AWS API Gateway V2 integration responses.
For additional information, including parameters and properties, see the AWS documentation on AWS APIGatewayV2 IntegrationResponse.
Installation
This resource is available in the Chef InSpec AWS resource pack.
See the Chef InSpec documentation on cloud platforms for information on configuring your AWS environment for InSpec and creating an InSpec profile that uses the InSpec AWS resource pack.
Syntax
Ensure that the integration response exists.
describe aws_api_gateway_v2_integration_responses(api_id: 'APP_ID', integration_id: 'INTEGRATION_ID') do
it { should exist }
end
Parameters
api_id
(required)- The API identifier.
route_id
(required)- The route identifier.
Properties
content_handling_strategies
- Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are
CONVERT_TO_BINARY
andCONVERT_TO_TEXT
, with the following behaviors:
- CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.
- CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
- If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.
Field:
content_handling_strategy
integration_response_ids
- The integration response ID.
Field:
integration_response_id
integration_response_keys
- The integration response key.
Field:
integration_response_key
response_parameters
- A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name. The mapped value is an integration response header value, a static value enclosed within a pair of single quotes or a JSON expression from the integration response body. The mapping key must match the pattern of
method.response.header.{name}
, where name is a valid and unique header name. The mapped non-static value must match the pattern ofintegration.response.header.{name}
orintegration.response.body.{JSON-expression}
, where the name is a valid and unique response header name and JSON-expression is a valid JSON expression without the$
prefix. Field:
response_parameters
response_templates
- The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key or value map, with a content type as the key and a template as the value.
Field:
response_templates
template_selection_expressions
- The template selection expressions for the integration response. Supported only for WebSocket APIs.
Field:
template_selection_expression
Examples
Test to ensure an integration response ID is available
describe aws_api_gateway_v2_integration_responses(api_id: 'APP_ID', integration_id: 'INTEGRATION_ID') do
its('integration_response_ids') { should include 'INTEGRATION_RESPONSE_ID' }
end
Test to verify the integration response key
describe aws_api_gateway_v2_integration_responses(api_id: 'APP_ID', integration_id: 'INTEGRATION_ID') do
its('integration_response_keys') { should include 'INTEGRATION_RESPONSE_KEY' }
end
Test to verify the content handling strategy
describe aws_api_gateway_v2_integration_responses(api_id: 'APP_ID', integration_id: 'INTEGRATION_ID') do
its('content_handling_strategy') { should include 'CONVERT_TO_BINARY' }
end
Matchers
This InSpec audit resource has the following special matchers. For a full list of available matchers, please visit our Universal Matchers page.
The control passes if the get
method returns at least a result.
exist
Use should
to test that the entity exists.
describe aws_api_gateway_v2_integration_responses(api_id: 'APP_ID', integration_id: 'INTEGRATION_ID') do
it { should exist }
end
not exist
Use should_not
to test that the entity does not exist.
describe aws_api_gateway_v2_integration_responses(api_id: 'APP_ID', integration_id: 'INTEGRATION_ID') do
it { should_not exist }
end
AWS Permissions
Your Principal will need the APIGatewayv2:Client:GetIntegrationResponsesResponse
action with Effect
set to Allow
.
Was this page helpful?