| swagger: '2.0' |
| info: |
| title: '' |
| version: '' |
| basePath: / |
| paths: |
| '/v1/{project}/kie/kv': |
| get: |
| summary: list key values by labels and key |
| operationId: List |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: label |
| in: query |
| description: 'label pairs,for example &label=service:order&label=version:1.0.0' |
| type: string |
| - name: wait |
| in: query |
| description: 'wait until any kv changed. for example wait=5s, server will not response until 5 seconds during that time window, if any kv changed, server will return 200 and kv list, otherwise return 304 and empty body' |
| type: string |
| consumes: |
| - '*/*' |
| produces: |
| - application/json |
| - text/yaml |
| responses: |
| '200': |
| description: '' |
| schema: |
| $ref: '#/definitions/KVResponse' |
| headers: |
| X-RateLimit-Limit: |
| type: integer |
| description: Request limit per hour. |
| '304': |
| description: empty body |
| delete: |
| summary: 'delete key by kvID and labelID. Want better performance, give labelID' |
| operationId: Delete |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: kvID |
| in: query |
| required: true |
| type: string |
| - name: labelID |
| in: query |
| type: string |
| consumes: |
| - '*/*' |
| produces: |
| - '*/*' |
| responses: |
| '204': |
| description: Delete success |
| '400': |
| description: 'Failed,check url' |
| '500': |
| description: Server error |
| '/v1/{project}/kie/kv/{key}': |
| get: |
| summary: get key values by key and labels |
| operationId: GetByKey |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: key |
| in: path |
| required: true |
| type: string |
| - name: label |
| in: query |
| description: 'label pairs,for example &label=service:order&label=version:1.0.0' |
| type: string |
| consumes: |
| - '*/*' |
| produces: |
| - application/json |
| - text/yaml |
| responses: |
| '200': |
| description: get key value success |
| schema: |
| type: array |
| items: |
| $ref: '#/definitions/KVResponse' |
| '304': |
| description: empty body |
| put: |
| summary: create or update key value |
| operationId: Put |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: key |
| in: path |
| required: true |
| type: string |
| - name: body |
| in: body |
| required: true |
| schema: |
| $ref: '#/definitions/v1.KVBody' |
| consumes: |
| - application/json |
| - text/yaml |
| produces: |
| - application/json |
| - text/yaml |
| responses: |
| '200': |
| description: '' |
| schema: |
| $ref: '#/definitions/v1.KVBody' |
| '/v1/{project}/kie/revision/{label_id}': |
| get: |
| summary: get all revisions by label id |
| operationId: GetRevisions |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: label_id |
| in: path |
| required: true |
| type: string |
| - name: key |
| in: query |
| description: only return history about a specific key |
| type: string |
| consumes: |
| - application/json |
| - text/yaml |
| produces: |
| - application/json |
| - text/yaml |
| responses: |
| '200': |
| description: 'true' |
| schema: |
| type: array |
| items: |
| $ref: '#/definitions/LabelHistoryResponse' |
| '/v1/{project}/kie/summary': |
| get: |
| summary: 'search key values by labels combination, it returns multiple labels group' |
| operationId: Search |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: q |
| in: query |
| description: 'the combination format is {label_key}:{label_value}+{label_key}:{label_value} for example: /v1/test/kie/kv?q=app:mall&q=app:mall+service:cart, that will query key values from 2 kinds of labels' |
| type: string |
| consumes: |
| - '*/*' |
| produces: |
| - application/json |
| - text/yaml |
| responses: |
| '200': |
| description: get key value success |
| schema: |
| type: array |
| items: |
| $ref: '#/definitions/KVResponse' |
| definitions: |
| KVDoc: |
| type: object |
| properties: |
| _id: |
| type: string |
| check: |
| type: string |
| domain: |
| type: string |
| key: |
| type: string |
| label_id: |
| type: string |
| labels: |
| type: object |
| additionalProperties: |
| type: string |
| project: |
| type: string |
| revision: |
| type: integer |
| format: int32 |
| value: |
| type: string |
| value_type: |
| type: string |
| KVResponse: |
| type: object |
| properties: |
| data: |
| type: array |
| items: |
| $ref: '#/definitions/KVDoc' |
| label: |
| $ref: '#/definitions/LabelDocResponse' |
| num: |
| type: integer |
| format: int32 |
| size: |
| type: integer |
| format: int32 |
| total: |
| type: integer |
| format: int32 |
| LabelDocResponse: |
| type: object |
| properties: |
| label_id: |
| type: string |
| labels: |
| type: object |
| additionalProperties: |
| type: string |
| LabelHistoryResponse: |
| type: object |
| properties: |
| data: |
| type: array |
| items: |
| $ref: '#/definitions/KVDoc' |
| label_id: |
| type: string |
| labels: |
| type: object |
| additionalProperties: |
| type: string |
| revision: |
| type: integer |
| format: int32 |
| v1.KVBody: |
| type: object |
| properties: |
| labels: |
| type: object |
| additionalProperties: |
| type: string |
| value: |
| type: string |
| valueType: |
| type: string |