From 3b60a76f14d035b4e3ca818e07815785ce5a7746 Mon Sep 17 00:00:00 2001 From: Tommy Carpenter Date: Wed, 20 Feb 2019 07:34:09 -0500 Subject: Switch to openapi3, clean up testing Issue-ID: DCAEGEN2-1215 Change-Id: I29cb31faa497233635de19d211f633f34692d511 Signed-off-by: Tommy Carpenter --- app/app/config_binding_service/openapi.yaml | 112 ++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 app/app/config_binding_service/openapi.yaml (limited to 'app/app/config_binding_service/openapi.yaml') diff --git a/app/app/config_binding_service/openapi.yaml b/app/app/config_binding_service/openapi.yaml new file mode 100644 index 0000000..bc4dd49 --- /dev/null +++ b/app/app/config_binding_service/openapi.yaml @@ -0,0 +1,112 @@ +openapi: 3.0.0 +info: + version: 2.3.0 + title: Config Binding Service +paths: + '/service_component/{service_component_name}': + parameters: + - name: service_component_name + in: path + description: >- + Service Component Name. service_component_name must be a key in + consul. + required: true + schema: + type: string + get: + description: >- + Binds the configuration for service_component_name and returns the bound + configuration as a JSON + operationId: config_binding_service.controller.bind_config_for_scn + responses: + '200': + description: OK; the bound config is returned as an object + content: + '*/*': + schema: + type: object + '404': + description: there is no configuration in Consul for this component + '/service_component_all/{service_component_name}': + parameters: + - name: service_component_name + in: path + description: >- + Service Component Name. service_component_name must be a key in + consul. + required: true + schema: + type: string + get: + description: >- + Binds the configuration for service_component_name and returns the bound + configuration, policies, and any other keys that are in Consul + operationId: config_binding_service.controller.bind_all + responses: + '200': + description: >- + OK; returns {config : ..., policies : ....., k : ...} for all other + k in Consul + content: + '*/*': + schema: + type: object + '404': + description: there is no configuration in Consul for this component + '/{key}/{service_component_name}': + parameters: + - name: key + in: path + description: >- + this endpoint tries to pull service_component_name:key; key is the key + after the colon + required: true + schema: + type: string + - name: service_component_name + in: path + description: Service Component Name. + required: true + schema: + type: string + get: + description: >- + this is an endpoint that fetches a generic service_component_name:key + out of Consul. The idea is that we don't want to tie components to + Consul directly in case we swap out the backend some day, so the CBS + abstracts Consul from clients. The structuring and weird collision of + this new API with the above is unfortunate but due to legacy concerns. + operationId: config_binding_service.controller.get_key + responses: + '200': + description: 'OK; returns service_component_name:key' + content: + '*/*': + schema: + type: object + '400': + description: >- + bad request. Currently this is only returned on :policies, which is + a complex object, and should be gotten through service_component_all + content: + '*/*': + schema: + type: string + '404': + description: key does not exist + content: + '*/*': + schema: + type: string + /healthcheck: + get: + description: >- + This is the health check endpoint. If this returns a 200, the server is + alive and consul can be reached. If not a 200, either dead, or no + connection to consul + operationId: config_binding_service.controller.healthcheck + responses: + '200': + description: Successful response + '503': + description: the config binding service cannot reach Consul -- cgit 1.2.3-korg