/* * Copyright 2016 Huawei Technologies Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ { "swagger": "2.0", "info": { "version": "1.0", "contact": { "name": "Xiangli Jia", "email": "jiaxiangli@huawei.com" }, "title": "ServiceGateway Northbound Interface", "description": "Northbound Interface of ServiceGateway to be used by LifecycleMgr GUI. only service instantiation and termination.\nAll operations are synchronous.", "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } }, "schemes": [ "http" ], "basePath": "/openoapi/servicegateway/v1", "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/services": { "post": { "summary": "Send the create request to the corresponding module.", "description": "it will send create request to the corresponding module.", "operationId": "guiCreationPost", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "guiRequest", "description": "the request used to create a service instance with the specified uri.", "required": true, "schema": { "$ref": "#/definitions/CreationRequest" } } ], "responses": { "200": { "description": "create service instance success.", "schema": { "$ref": "#/definitions/CreationResponse" } }, "400": { "description": "create service instance failure as parameters invalid.", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "unauthorized.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "create service instance failure as can't reach server.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "create service instance failure as internal error.", "schema": { "$ref": "#/definitions/Error" } } } } }, "/services/{serviceId}/terminate": { "post": { "summary": "Send the delete request to the corresponding module", "description": "it will send a terminate request to the corresponding module.", "operationId": "guiTerminationPost", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "serviceId", "in": "path", "description": "ID of the service instance to be terminated", "required": true, "type": "string" }, { "in": "body", "name": "guiTerminationRequest", "description": "the request used to terminate a service instance", "required": true, "schema": { "$ref": "#/definitions/TerminationRequest" } } ], "responses": { "200": { "description": "service instance is under-terminating. Job id is returned.", "schema": { "$ref": "#/definitions/LongOperationResponse" } }, "400": { "description": "terminate service instance failure as parameters invalid.", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "unauthorized.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "terminate service instance failure as can't reach server.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "terminate service instance failure as internal error.", "schema": { "$ref": "#/definitions/Error" } } } } } }, "definitions": { "CreationRequest": { "description": "Service Instance Creation Request", "type": "object", "required": [ "gatewayUri" ], "properties": { "nsdId": { "type": "string", "description": "ID of the template in catalog used to create the SDN-O/NFV-O service instance" }, "gatewayUri": { "type": "string", "description": "uri of the corresponding service restful API to be created for GSO/SDN-O/NFV-O" }, "description": { "type": "string", "description": "description of the GSO/SDN-O/NFV-O service instance to be created" }, "parentid": { "type": "string", "description": "ID of the GSO service instance to be created" }, "name": { "type": "string", "description": "name of the GSO service instance to be created" }, "serviceDefId": { "type": "string", "description": "ID of the GSO service instance to be created" }, "templateId": { "type": "string", "description": "ID of the GSO service instance to be created" }, "templateName": { "type": "string", "description": "ID of the GSO service instance to be created" }, "nsName": { "type": "string", "description": "ID of the GSO service instance to be created" }, "nsInstanceId": { "type": "string", "description": "ID of the GSO service instance to be created" }, "additionalParamForNs": { "description": "parameters used to instantiate this SDN-O/NFV-O service instance", "type": "array", "items": { "$ref": "#/definitions/TemplateParameter" } }, "parameters": { "description": "parameters used to instantiate this GSO service instance", "type": "array", "items": { "$ref": "#/definitions/TemplateParameter" } } } }, "CreationResponse": { "description": "Service Instance Creation Response", "type": "object", "required": [ "serviceId" ], "properties": { "serviceId": { "type": "string", "description": "ID of the service instance that is created." } } }, "TemplateParameter": { "description": "parameter used to instantiate its service instance. it's fundamentally a name-value pair.", "type": "object", "required": [ "name", "value" ], "properties": { "name": { "type": "string", "description": "name of the parameter" }, "value": { "type": "string", "description": "value of the parameter" } } }, "LongOperationResponse": { "description": "Response for operation that takes a long time, i.e., a job id.", "type": "object", "required": [ "jobId" ], "properties": { "jobId": { "type": "string", "description": "ID of the job that is executing some long operation" } } }, "TerminationRequest": { "description": "Service Instance Termination Request.", "type": "object", "required": [ "operation", "gatewayUri" ], "properties": { "operation": { "type": "string", "description": "type of the GSO/SDN-O/NFV-O service instance to be terminated" }, "gatewayUri": { "type": "string", "description": "uri of the GSO/SDN-O/NFV-O service instance to be terminated" }, "nsInstanceId": { "type": "string", "description": "id of the SDN-O/NFV-O service instance to be terminated" }, "terminationType": { "type": "string", "description": "type of SDN-O/NFV-O termination. graceful or not, etc." }, "gracefulTerminationTimeout": { "type": "string", "description": "timeout value for a graceful timeout,just only SDN-O." } } }, "Error": { "type": "object", "required": [ "errorCode" ], "properties": { "errorCode": { "type": "integer", "format": "int32" }, "status": { "type": "string" }, "statusDescription": { "type": "string" } } } } }