| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| swagger: "2.0" |
| info: |
| title: "" |
| version: "" |
| basePath: / |
| paths: |
| /v1/{project}/kie/kv: |
| get: |
| summary: search key values by labels combination |
| operationId: SearchByLabels |
| parameters: |
| - 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: |
| - application/json |
| produces: |
| - application/json |
| responses: |
| "200": |
| description: get key value success |
| schema: |
| type: array |
| items: |
| $ref: "#/definitions/KVResponse" |
| /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: X-Depth |
| in: header |
| description: |
| integer, default is 1, if you set match policy, you can set,depth |
| to decide label number |
| type: string |
| - name: body |
| in: body |
| required: true |
| schema: |
| $ref: "#/definitions/*v1.KVBody" |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| responses: |
| "200": |
| description: get key value success |
| schema: |
| type: array |
| items: |
| $ref: "#/definitions/KVResponse" |
| 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: X-Realm |
| in: header |
| description: set kv to heterogeneous config server, not implement yet |
| type: string |
| - name: body |
| in: body |
| required: true |
| schema: |
| $ref: "#/definitions/v1.KVBody" |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| responses: |
| "200": |
| description: "true" |
| /v1/{project}/kie/kv/{kvID}: |
| delete: |
| summary: |
| Delete key by kvID and labelID,If the labelID is nil, query the collection |
| kv to get it.It means if only get kvID, it can also delete normally.But if |
| you want better performance, you need to pass the labelID |
| operationId: Delete |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: key |
| in: path |
| required: true |
| type: string |
| responses: |
| "204": |
| description: Delete success |
| "400": |
| description: Failed,check url |
| "500": |
| description: Server error |
| /v1/{project}/kie/revision/{label_id}: |
| get: |
| summary: get history revisions by label id |
| operationId: GetRevisionsByLabelID |
| parameters: |
| - name: project |
| in: path |
| required: true |
| type: string |
| - name: label_id |
| in: path |
| required: true |
| type: string |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| responses: |
| "200": |
| description: get history revisions success |
| schema: |
| type: array |
| items: |
| $ref: "#/definitions/LabelRevisionResponse" |
| "403": |
| description: label_id must not be empty |
| "404": |
| description: no revisions found |
| "500": |
| description: internal server error |
| |
| definitions: |
| KVDoc: |
| type: object |
| properties: |
| _id: |
| type: array |
| items: |
| type: integer |
| format: byte |
| check: |
| type: string |
| domain: |
| type: string |
| key: |
| type: string |
| label_id: |
| type: string |
| labels: |
| type: object |
| additionalProperties: |
| 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" |
| LabelDocResponse: |
| type: object |
| properties: |
| label_id: |
| type: string |
| labels: |
| type: object |
| additionalProperties: |
| type: string |
| LabelRevisionResponse: |
| 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 |