code: @Override
      public PutRestApiResult putRestApi(PutRestApiRequest request) {
          request = beforeClientExecution(request);
          return executePutRestApi(request);
      }
docs: <p>
  A feature of the API Gateway control service for updating an existing API with an input of external API
  definitions. The update can take the form of merging the supplied definition into the existing API or overwriting
  the existing API.
  </p>
  
  @param putRestApiRequest
  A PUT request to update an existing API, with external API definitions specified as the request body.
  @return Result of the PutRestApi operation returned by the service.
  @throws UnauthorizedException
  The request is denied because the caller has insufficient permissions.
  @throws LimitExceededException
  The request exceeded the rate limit. Retry after the specified time period.
  @throws NotFoundException
  The requested resource is not found. Make sure that the request URI is correct.
  @throws BadRequestException
  The submitted request is not valid, for example, the input is incomplete or incorrect. See the
  accompanying error message for details.
  @throws TooManyRequestsException
  The request has reached its throttling limit. Retry after the specified time period.
  @throws ConflictException
  The request configuration has conflicts. For details, see the accompanying error message.
  @sample AmazonApiGateway.PutRestApi