blob: c25187fd9f6d71c2034d6649c321bc32bd61ab11 [file] [log] [blame]
/*
* 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"
}
}
}
}
}