swagger: '2.0' info: description: API reference for Distributed Key Value store. version: 1.0.0 title: API reference for Distributed Key Value store contact: email: shashank.kumar.shankar@intel.com url: 'https://wiki.onap.org/pages/viewpage.action?pageId=16010913' license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' basePath: /v1 schemes: - http paths: /register: post: tags: - Domain summary: Endpoint to Register new domain description: '' consumes: - application/json produces: - application/json parameters: - in: body name: body description: Register new domain. required: true schema: $ref: '#/definitions/RegisterDomainPOSTRequest' responses: '200': description: successful operation schema: $ref: '#/definitions/RegisterDomainPOSTResponse' '/register/{token}': get: tags: - Domain summary: Check if domain is registered. description: Check if domain is registered identified by token. produces: - application/json parameters: - name: token in: path description: Token used to query required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/RegisterDomainGETResponse' delete: tags: - Domain summary: Delete registered domain. description: Deletes a registered domain identified by token. produces: - application/json parameters: - name: token in: path description: Token used to delete required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/RegisterDomainDELETEResponse' '/register/{token}/subdomain': post: tags: - Subdomain summary: Endpoint to Register new subdomain description: '' consumes: - application/json produces: - application/json parameters: - name: token in: path description: Token used to identify domain. required: true type: string - in: body name: body description: Register new subdomain. required: true schema: $ref: '#/definitions/RegisterSubdomainPOSTRequest' responses: '200': description: successful operation schema: $ref: '#/definitions/RegisterSubdomainPOSTResponse' '/register/{token}/subdomain/{subdomain}': delete: tags: - Subdomain summary: Delete registered subdomain. description: Deletes a registered subdomain identified by token and subdomain. produces: - application/json parameters: - name: token in: path description: Token used to delete required: true type: string - name: subdomain in: path description: Subdomain used to delete required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/RegisterSubDomainDELETEResponse' /config: post: tags: - Config summary: Endpoint to upload configuration. description: Endpoint to upload configuration. consumes: - multipart/form-data produces: - application/json parameters: - name: configFile in: formData description: Config file to be uploaded. required: true type: file - name: token in: formData description: Token to identify domain to upload config file to. required: true type: string - name: subdomain in: formData description: Subdomain to identify subdomain to upload config file to. required: false type: string responses: '200': description: successful operation schema: $ref: '#/definitions/ConfigUploadResponse' '/config/{token}/{filename}': get: tags: - Config summary: Get config file. description: Get config file identified by token and filename. produces: - file parameters: - name: token in: path description: Token used to get config file. required: true type: string - name: filename in: path description: Filename used to get config file. required: true type: string responses: '200': description: successful operation delete: tags: - Config summary: Delete config file. description: Deletes a config file identified by token and filename. produces: - application/json parameters: - name: token in: path description: Token used to delete required: true type: string - name: filename in: path description: Filename used to delete required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/ConfigDomainDELETEResponse' '/config/{token}/{subdomain}/{filename}': get: tags: - Config summary: Get config file from subdomain. description: 'Get config file identified by token, filename and subdomain.' produces: - file parameters: - name: token in: path description: Token used to get config file. required: true type: string - name: subdomain in: path description: Subdomain used to get config file. required: true type: string - name: filename in: path description: Filename used to get config file. required: true type: string responses: '200': description: successful operation delete: tags: - Config summary: Delete config file from subdomain. description: 'Deletes a config file identified by token, filename and subdomain.' produces: - application/json parameters: - name: token in: path description: Token used to delete config file. required: true type: string - name: subdomain in: path description: Subdomain used to delete config file. required: true type: string - name: filename in: path description: Filename used to delete config file. required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/ConfigSubDomainDELETEResponse' /config/load: post: tags: - Config summary: Load config into Consul. description: Load config into Consul upon hitting the endpoint. consumes: - application/json produces: - application/json parameters: - in: body name: body description: Load configuration from file system to be added into Consul required: true schema: $ref: '#/definitions/ConfigLoadPOSTRequest' responses: '200': description: successful operation schema: $ref: '#/definitions/ConfigLoadPOSTResponse' /config/load-default: get: tags: - Config summary: Load default config into Consul. description: Load default config into Consul upon hitting the endpoint. produces: - application/json responses: '200': description: successful operation schema: $ref: '#/definitions/ConfigDefaultGETResponse' /getconfigs: get: tags: - Consul operation summary: Get all keys present in Consul. description: Returns a list of keys present in Consul. produces: - application/json responses: '200': description: successful operation schema: $ref: '#/definitions/ConsulGETAllResponse' '/getconfig/{key}': get: tags: - Consul operation summary: Get value for specific key present in Consul. description: Returns a key and value present in Consul. produces: - application/json parameters: - name: key in: path description: Key used to query Consul. required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/ConsulGETResponse' '/deleteconfig/{key}': delete: tags: - Consul operation summary: Delete value for specific key present in Consul. description: Deletes a specific key. produces: - application/json parameters: - name: key in: path description: Key used to delete required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/ConsulDELETEResponse' definitions: RegisterDomainPOSTRequest: type: object properties: domain: type: string RegisterDomainPOSTResponse: type: object properties: response: type: string RegisterDomainGETResponse: type: object properties: response: type: string RegisterDomainDELETEResponse: type: object properties: response: type: string RegisterSubdomainPOSTRequest: type: object properties: subdomain: type: string RegisterSubdomainPOSTResponse: type: object properties: response: type: string RegisterSubDomainDELETEResponse: type: object properties: response: type: string ConfigUploadResponse: type: object properties: response: type: string ConfigDomainDELETEResponse: type: object properties: response: type: string ConfigSubDomainDELETEResponse: type: object properties: response: type: string ConfigLoadPOSTRequest: type: object properties: token: type: string filename: type: string subdomain: type: string ConfigLoadPOSTResponse: type: object properties: response: type: string ConfigDefaultGETResponse: type: object properties: response: type: string ConsulGETAllResponse: type: object properties: response: items: type: string ConsulGETResponse: type: object properties: response: type: string ConsulDELETEResponse: type: object properties: response: type: string