methods
Creates, updates, deletes or gets a method
resource or lists methods
in a region
Overview
Name | methods |
Type | Resource |
Description | The AWS::ApiGateway::Method resource creates API Gateway methods that define the parameters and body that clients must send in their requests. |
Id | aws.apigateway.methods |
Fields
Name | Datatype | Description |
---|---|---|
integration | object | Represents an HTTP , HTTP_PROXY , AWS , AWS_PROXY , or Mock integration. |
operation_name | string | A human-friendly operation identifier for the method. For example, you can assign the operationName of ListPets for the GET /pets method in the PetStore example. |
request_models | object | A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key). |
rest_api_id | string | The string identifier of the associated RestApi. |
authorization_scopes | array | A list of authorization scopes configured on the method. The scopes are used with a COGNITO_USER_POOLS authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes. |
request_validator_id | string | The identifier of a RequestValidator for request validation. |
request_parameters | object | A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of method.request.{location}.{name} , where location is querystring , path , or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true ) or optional (false ). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates. |
method_responses | array | Gets a method response associated with a given HTTP status code. |
authorizer_id | string | The identifier of an authorizer to use on this method. The method's authorization type must be CUSTOM or COGNITO_USER_POOLS . |
resource_id | string | The Resource identifier for the MethodResponse resource. |
api_key_required | boolean | A boolean flag specifying whether a valid ApiKey is required to invoke this method. |
authorization_type | string | The method's authorization type. This parameter is required. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html) in the *API Gateway API Reference*. If you specify the AuthorizerId property, specify CUSTOM or COGNITO_USER_POOLS for this property. |
http_method | string | The method's HTTP verb. |
region | string | AWS region. |
Methods
Name | Accessible by | Required Params |
---|---|---|
create_resource | INSERT | RestApiId, ResourceId, HttpMethod, region |
delete_resource | DELETE | data__Identifier, region |
update_resource | UPDATE | data__Identifier, data__PatchDocument, region |
get_resource | SELECT | data__Identifier, region |
SELECT
examples
Gets all properties from an individual method
.
SELECT
region,
integration,
operation_name,
request_models,
rest_api_id,
authorization_scopes,
request_validator_id,
request_parameters,
method_responses,
authorizer_id,
resource_id,
api_key_required,
authorization_type,
http_method
FROM aws.apigateway.methods
WHERE region = 'us-east-1' AND data__Identifier = '<RestApiId>|<ResourceId>|<HttpMethod>';
INSERT
example
Use the following StackQL query and manifest file to create a new method
resource, using stack-deploy
.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO aws.apigateway.methods (
RestApiId,
ResourceId,
HttpMethod,
region
)
SELECT
'{{ RestApiId }}',
'{{ ResourceId }}',
'{{ HttpMethod }}',
'{{ region }}';
/*+ create */
INSERT INTO aws.apigateway.methods (
Integration,
OperationName,
RequestModels,
RestApiId,
AuthorizationScopes,
RequestValidatorId,
RequestParameters,
MethodResponses,
AuthorizerId,
ResourceId,
ApiKeyRequired,
AuthorizationType,
HttpMethod,
region
)
SELECT
'{{ Integration }}',
'{{ OperationName }}',
'{{ RequestModels }}',
'{{ RestApiId }}',
'{{ AuthorizationScopes }}',
'{{ RequestValidatorId }}',
'{{ RequestParameters }}',
'{{ MethodResponses }}',
'{{ AuthorizerId }}',
'{{ ResourceId }}',
'{{ ApiKeyRequired }}',
'{{ AuthorizationType }}',
'{{ HttpMethod }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: method
props:
- name: Integration
value:
CacheNamespace: '{{ CacheNamespace }}'
ConnectionType: '{{ ConnectionType }}'
IntegrationResponses:
- ResponseTemplates: {}
SelectionPattern: '{{ SelectionPattern }}'
ContentHandling: '{{ ContentHandling }}'
ResponseParameters: {}
StatusCode: '{{ StatusCode }}'
IntegrationHttpMethod: '{{ IntegrationHttpMethod }}'
Uri: '{{ Uri }}'
PassthroughBehavior: '{{ PassthroughBehavior }}'
RequestParameters: {}
ConnectionId: '{{ ConnectionId }}'
Type: '{{ Type }}'
CacheKeyParameters:
- '{{ CacheKeyParameters[0] }}'
ContentHandling: '{{ ContentHandling }}'
RequestTemplates: {}
TimeoutInMillis: '{{ TimeoutInMillis }}'
Credentials: '{{ Credentials }}'
- name: OperationName
value: '{{ OperationName }}'
- name: RequestModels
value: {}
- name: RestApiId
value: '{{ RestApiId }}'
- name: AuthorizationScopes
value:
- '{{ AuthorizationScopes[0] }}'
- name: RequestValidatorId
value: '{{ RequestValidatorId }}'
- name: RequestParameters
value: {}
- name: MethodResponses
value:
- ResponseParameters: {}
StatusCode: '{{ StatusCode }}'
ResponseModels: {}
- name: AuthorizerId
value: '{{ AuthorizerId }}'
- name: ResourceId
value: '{{ ResourceId }}'
- name: ApiKeyRequired
value: '{{ ApiKeyRequired }}'
- name: AuthorizationType
value: '{{ AuthorizationType }}'
- name: HttpMethod
value: '{{ HttpMethod }}'
DELETE
example
/*+ delete */
DELETE FROM aws.apigateway.methods
WHERE data__Identifier = '<RestApiId|ResourceId|HttpMethod>'
AND region = 'us-east-1';
Permissions
To operate on the methods
resource, the following permissions are required:
Read
apigateway:GET
Create
apigateway:PUT,
apigateway:GET,
iam:PassRole
Update
apigateway:GET,
apigateway:DELETE,
apigateway:PUT,
iam:PassRole
Delete
apigateway:DELETE