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"