putMethodResponse method

Future<MethodResponse> putMethodResponse({
  1. required String httpMethod,
  2. required String resourceId,
  3. required String restApiId,
  4. required String statusCode,
  5. Map<String, String>? responseModels,
  6. Map<String, bool>? responseParameters,
})

Adds a MethodResponse to an existing Method resource.

May throw UnauthorizedException. May throw NotFoundException. May throw ConflictException. May throw LimitExceededException. May throw BadRequestException. May throw TooManyRequestsException.

Parameter httpMethod : Required The HTTP verb of the Method resource.

Parameter resourceId : Required The Resource identifier for the Method resource.

Parameter restApiId : Required The string identifier of the associated RestApi.

Parameter statusCode : Required The method response's status code.

Parameter responseModels : Specifies the Model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value.

Parameter responseParameters : A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.)

Implementation

Future<MethodResponse> putMethodResponse({
  required String httpMethod,
  required String resourceId,
  required String restApiId,
  required String statusCode,
  Map<String, String>? responseModels,
  Map<String, bool>? responseParameters,
}) async {
  ArgumentError.checkNotNull(httpMethod, 'httpMethod');
  ArgumentError.checkNotNull(resourceId, 'resourceId');
  ArgumentError.checkNotNull(restApiId, 'restApiId');
  ArgumentError.checkNotNull(statusCode, 'statusCode');
  final $payload = <String, dynamic>{
    if (responseModels != null) 'responseModels': responseModels,
    if (responseParameters != null) 'responseParameters': responseParameters,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri:
        '/restapis/${Uri.encodeComponent(restApiId)}/resources/${Uri.encodeComponent(resourceId)}/methods/${Uri.encodeComponent(httpMethod)}/responses/${Uri.encodeComponent(statusCode)}',
    exceptionFnMap: _exceptionFns,
  );
  return MethodResponse.fromJson(response);
}