blob: b86ffbc6b0a71c62a5c619b4bfc3db2ee82c701a [file] [log] [blame]
{
"swagger": "2.0",
"info": {
"version": "2018.08.01",
"title": "networkelementnamegenprodtest Service"
},
"basePath": "/web",
"paths": {
"/service/v1/addPolicy": {
"post": {
"summary": "Respond Hello <name>!",
"description": "Returns a JSON object with a string to say hello. Uses 'world' if a name is not specified",
"operationId": "addPolicyToDB",
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "object",
"additionalProperties": {
"type": "object"
}
}
},
"404": {
"description": "Service not available"
},
"500": {
"description": "Unexpected Runtime error"
}
}
}
},
"/service/v1/genNetworkElementName": {
"post": {
"summary": "Generates name",
"description": "Generates network element name based on a naming policy1 ",
"operationId": "generateNetworkElementName",
"produces": [
"application/json"
],
"parameters": [
{
"in": "body",
"name": "body",
"required": true,
"schema": {
"$ref": "#/definitions/NameGenRequest"
}
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/NameGenResponse"
}
},
"404": {
"description": "Service not available"
},
"500": {
"description": "Unexpected Runtime error"
}
}
},
"delete": {
"summary": "Release an existing name by external key",
"description": "Release network element name ",
"operationId": "releaseNetworkElementName",
"produces": [
"application/json"
],"parameters": [
{
"in": "body",
"name": "body",
"required": true,
"schema": {
"$ref": "#/definitions/NameGenDeleteRequest"
}
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/NameGenDeleteResponse"
}
},
"404": {
"description": "Service not available"
},
"500": {
"description": "Unexpected Runtime error"
}
}
}
},
"/service/v1/getpolicyresponse/{policyName}": {
"get": {
"summary": "Respond Hello <name>!",
"description": "Returns a JSON object with a string to say hello. Uses 'world' if a name is not specified",
"operationId": "getPolicyResponse",
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "object",
"additionalProperties": {
"type": "object"
}
}
},
"404": {
"description": "Service not available"
},
"500": {
"description": "Unexpected Runtime error"
}
}
}
}
},
"definitions": {
"HelloWorld": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
},
"NameGenRequest": {
"title": "NameGenRequest",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"elements"
],
"properties": {
"elements": {
"type": "array",
"items": {
"$ref": "#/definitions/element"
}
}
},
"additionalProperties": false,
"definitions": {
"element": {
"type": "object",
"required": [
"resource-name",
"external-key",
"policy-instance-name",
"naming-type"
],
"properties": {
"resource-name": {
"type": "string",
"description": "Name of the resource"
},
"resource-value": {
"type": "string",
"description": "Optional. If given, request will be considered as update request"
},
"external-key": {
"type": "string",
"description": "Key identifier for generated name. This will be used in release/update request"
},
"policy-instance-name": {
"type": "string",
"description": "Name of the policy to be used for name generation"
},
"naming-type": {
"type": "string",
"description": "Naming type of the resource"
}
},
"additionalProperties": {
"type": "string"
}
}
}
},
"NameGenResponse": {
"type": "object",
"description":"Response with generated names for each naming type. Either elements(one or more) or an error block will be present",
"properties": {
"elements" : {
"type":"array",
"items": { "$ref": "#/definitions/respelement" }
},
"error" : {
"type":"object",
"required": ["errorId", "message"],
"properties":{
"errorId":{"type":"string" , "description":"error code"},
"message": {"type":"string", "description":"error message"}
}
}
}
},
"element": {
"type": "object",
"required": [
"resource-name",
"external-key",
"policy-instance-name",
"naming-type"
],
"properties": {
"resource-name": {
"type": "string",
"description": "Name of the resource"
},
"resource-value": {
"type": "string",
"description": "Optional. If given, request will be considered as update request"
},
"external-key": {
"type": "string",
"description": "Key identifier for generated name. This will be used in release/update request"
},
"policy-instance-name": {
"type": "string",
"description": "Name of the policy to be used for name generation"
},
"naming-type": {
"type": "string",
"description": "Naming type of the resource"
},
"${naming-ingredients(zero or more)}": {
"type": "string",
"description": "values to subsitute in the naming recipe"
}
},
"additionalProperties": {
"type": "string"
}
},
"respelement": {
"type":"object",
"required": [ "resource-name","resource-value","external-key"],
"properties": {
"resource-value": {
"type": "string",
"description": "Optional. If given, request will be considered as update request"
},
"resource-name": {
"type": "string",
"description": "Name of the resource"
},
"external-key": {
"type": "string",
"description": "Key identifier for generated name. This will be used in release/update request"
}
}
},
"NameGenDeleteRequest": {
"title": "NameGenRequest",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"elements"
],
"properties": {
"elements": {
"type": "array",
"items": {
"$ref": "#/definitions/deleteelement"
}
}
}
},
"deleteelement": {
"type": "object",
"required": [ "external-key" ],
"properties": {
"external-key": {
"type": "string",
"description": "External key of the name that is being released"
}
}
},"NameGenDeleteResponse": {
"title": "NameGenRequest",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"elements"
],
"properties": {
"elements": {
"type": "array",
"items": {
"$ref": "#/definitions/deleteresponseelement"
}
}
}
},
"deleteresponseelement": {
"type": "object",
"required": [ "resource-value","resource_name","external-key" ],
"properties": {
"resource-value": {
"type": "string",
"description": "Name that is being release"
},
"resource-name": {
"type": "string",
"description": "Resource Name"
},
"external-key": {
"type": "string",
"description": "External key of the name that is being released"
}
}
}
}
}