def apigateway_models_backend_put_rest_api(self, function_id, body): rest_api = self.get_rest_api(function_id) # Remove default root, then add paths from API spec rest_api.resources = {} for path in body['paths']: child_id = create_id() child = Resource( id=child_id, region_name=rest_api.region_name, api_id=rest_api.id, path_part=path, parent_id='', ) for m, payload in body['paths'][path].items(): m = m.upper() payload = payload['x-amazon-apigateway-integration'] child.add_method(m, None, None) integration = Integration( http_method=m, uri=payload.get('uri'), integration_type=payload['type'], pass_through_behavior=payload.get('passthroughBehavior'), request_templates=payload.get('requestTemplates') or {}) integration.create_integration_response( status_code=payload.get('responses', {}).get('default', {}).get('statusCode', 200), selection_pattern=None, response_templates=None, content_handling=None) child.resource_methods[m]['methodIntegration'] = integration rest_api.resources[child_id] = child return rest_api