summaryrefslogtreecommitdiffstats
path: root/docs/k8splugin
diff options
context:
space:
mode:
authorLukasz Rajewski <lukasz.rajewski@orange.com>2021-02-24 16:51:59 +0100
committerLukasz Rajewski <lukasz.rajewski@orange.com>2021-02-24 16:52:37 +0100
commit0cfbc57b64e81ced9ce3a744f25ebd1b402b8108 (patch)
treeb084d8ce6c8d3de5e58b73a8b0501a740d1cdb7f /docs/k8splugin
parent4a8cc585e6163c7e31101603ab073cbc57317dab (diff)
K8s Plugin v1 API Specification
K8s Plugin v1 API Specification Issue-ID: MULTICLOUD-1296 Signed-off-by: Lukasz Rajewski <lukasz.rajewski@orange.com> Change-Id: Iecfbe657c315c3b00c0ebcbb6f4f097eb4d56009
Diffstat (limited to 'docs/k8splugin')
-rw-r--r--docs/k8splugin/k8splugin-v1-api-swagger.json951
1 files changed, 951 insertions, 0 deletions
diff --git a/docs/k8splugin/k8splugin-v1-api-swagger.json b/docs/k8splugin/k8splugin-v1-api-swagger.json
new file mode 100644
index 0000000..79acd7e
--- /dev/null
+++ b/docs/k8splugin/k8splugin-v1-api-swagger.json
@@ -0,0 +1,951 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "description": "K8s Plugin v1 API for ONAP Honolulu release",
+ "version": "0.8.0",
+ "title": "K8s Plugin v1 API",
+ "contact": {
+ "email": "ritu.sood@intel.com"
+ }
+ },
+ "host": "multicloud-k8s:9015",
+ "basePath": "/v1",
+ "tags": [
+ {
+ "name": "definition",
+ "description": "RB Definition management"
+ },
+ {
+ "name": "profile",
+ "description": "RB Definition profile management"
+ },
+ {
+ "name": "instance",
+ "description": "RB Instance management"
+ }
+ ],
+ "schemes": [
+ "http"
+ ],
+ "paths": {
+ "/rb/definition": {
+ "post": {
+ "tags": [
+ "definition"
+ ],
+ "summary": "Add a new RB Definition",
+ "description": "",
+ "operationId": "addRbDefinition",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "description": "RB Definition object to create",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RbDefinition"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbDefinition"
+ }
+ }
+ },
+ "405": {
+ "description": "Invalid input"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "definition"
+ ],
+ "summary": "Get all RB Definitions",
+ "description": "Multiple RB Definitions",
+ "operationId": "getRbDefinitions",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbDefinition"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/rb/definition/{rbName}": {
+ "get": {
+ "tags": [
+ "definition"
+ ],
+ "summary": "Get all RB Definitions of specified name",
+ "description": "Multiple RB Definitions",
+ "operationId": "getRbDefinitionsByName",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbDefinition"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "definition"
+ ],
+ "summary": "Deletes RB Definitions of specified RB Name",
+ "description": "",
+ "operationId": "deleteRbDefinitionsByRbName",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Definition not found"
+ }
+ }
+ }
+ },
+ "/rb/definition/{rbName}/{rbVersion}": {
+ "get": {
+ "tags": [
+ "definition"
+ ],
+ "summary": "Get RB Definition by Name and Version",
+ "description": "Returns a single RB Definition object",
+ "operationId": "getRbDefinitionByRbName",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/RbDefinition"
+ }
+ },
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Definition not found"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "definition"
+ ],
+ "summary": "Deletes RB Definition",
+ "description": "",
+ "operationId": "deleteRbDefinitionByRbNameAndRbVersion",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Definition not found"
+ }
+ }
+ }
+ },
+ "/rb/definition/{rbName}/{rbVersion}/content": {
+ "post": {
+ "tags": [
+ "definition"
+ ],
+ "summary": "Uploads Helm package associated with RB Definition",
+ "description": "",
+ "operationId": "uploadRbDefnitionContent",
+ "consumes": [
+ "application/gzip"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/ApiResponse"
+ }
+ }
+ }
+ }
+ },
+ "/rb/definition/{rbName}/{rbVersion}/profile": {
+ "post": {
+ "tags": [
+ "profile"
+ ],
+ "summary": "Add a new profile for RB Definition",
+ "description": "",
+ "operationId": "addProfileForDefinition",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "RB Profile object to create",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RbProfile"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbProfile"
+ }
+ }
+ },
+ "405": {
+ "description": "Invalid input"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "profile"
+ ],
+ "summary": "Get all RB Profiles for RB Definition",
+ "description": "Multiple RB Definitions",
+ "operationId": "getProfilesforRbDefinitions",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbProfile"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/rb/definition/{rbName}/{rbVersion}/profile/{profileName}": {
+ "get": {
+ "tags": [
+ "profile"
+ ],
+ "summary": "Get RB Profile by Name",
+ "description": "Returns a single RB Profile object",
+ "operationId": "getRbProfileForRbDefinition",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition to return",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "profileName",
+ "in": "path",
+ "description": "Name of the RB profile",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/RbProfile"
+ }
+ },
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Profile not found"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "profile"
+ ],
+ "summary": "Deletes RB Profile",
+ "description": "",
+ "operationId": "deleteRbProfileForRbDefinition",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "profileName",
+ "in": "path",
+ "description": "Name of the RB profile",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Definition of RB profile not found"
+ }
+ }
+ }
+ },
+ "/rb/definition/{rbName}/{rbVersion}/profile/{profileName}/content": {
+ "post": {
+ "tags": [
+ "profile"
+ ],
+ "summary": "Uploads tgz package associated with RB Profile",
+ "description": "",
+ "operationId": "uploadRbProfileContent",
+ "consumes": [
+ "application/gzip"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "rbName",
+ "in": "path",
+ "description": "Name of the RB Definition",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "rbVersion",
+ "in": "path",
+ "description": "Version of the RB Definition",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "profileName",
+ "in": "path",
+ "description": "Name of the RB profile",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/ApiResponse"
+ }
+ }
+ }
+ }
+ },
+ "/instance": {
+ "post": {
+ "tags": [
+ "instance"
+ ],
+ "summary": "Create new RB Instance",
+ "description": "",
+ "operationId": "createRbInstance",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "description": "RB Instance properties to create",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RbInstanceRequest"
+ }
+ }
+ ],
+ "responses": {
+ "405": {
+ "description": "Invalid input"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "instance"
+ ],
+ "summary": "Get all RB Instances",
+ "description": "Multiple RB Instances",
+ "operationId": "getRbInstances",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbInstance"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ }
+ },
+ "/instance/{instanceId}": {
+ "get": {
+ "tags": [
+ "instance"
+ ],
+ "summary": "Get RB Instance by ID",
+ "description": "Returns a single RB Instance object",
+ "operationId": "getRbInstanceById",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "instanceId",
+ "in": "path",
+ "description": "ID of the instance",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/RbInstance"
+ }
+ },
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Definition not found"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "instance"
+ ],
+ "summary": "Deletes RB Instance",
+ "description": "",
+ "operationId": "deleteRbInstanceById",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "instanceId",
+ "in": "path",
+ "description": "ID of the instance",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "Rb Instance not found"
+ }
+ }
+ }
+ },
+ "/instance/{instanceId}/status": {
+ "get": {
+ "tags": [
+ "instance"
+ ],
+ "summary": "Get RB Instance Status",
+ "description": "Returns status of a single RB Instance object",
+ "operationId": "getRbInstanceStatus",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "instanceId",
+ "in": "path",
+ "description": "ID of the instance",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/RbInstanceStatus"
+ }
+ },
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Instance not found"
+ }
+ }
+ }
+ },
+ "/instance/{instanceId}/query": {
+ "get": {
+ "tags": [
+ "instance"
+ ],
+ "summary": "Get filtered out RB Instance status",
+ "description": "Returns filtered status of a single RB Instance object",
+ "operationId": "queryRbInstanceStatus",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "instanceId",
+ "in": "path",
+ "description": "ID of the instance",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "ApiVersion",
+ "type": "string",
+ "description": "Resource ApiVersion like 'apps/v1'",
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "Kind",
+ "type": "string",
+ "description": "Resource Kind like 'Deployment'",
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "Name",
+ "type": "string",
+ "description": "Name of Resource like 'my-pod-1'",
+ "required": false
+ },
+ {
+ "in": "query",
+ "name": "Labels",
+ "type": "string",
+ "description": "One or many pairs of label name/value data for filtering Resources like 'app=test,version=prod'",
+ "required": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/RbInstanceStatus"
+ }
+ },
+ "400": {
+ "description": "Invalid identifiers supplied"
+ },
+ "404": {
+ "description": "RB Instance not found"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "RbDefinition": {
+ "type": "object",
+ "properties": {
+ "rb-name": {
+ "type": "string"
+ },
+ "rb-version": {
+ "type": "string"
+ },
+ "chart-name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "example": {
+ "rb-name": "test",
+ "rb-version": "v1",
+ "chart-name": "nginx",
+ "description": "nginx definition",
+ "labels": [
+ "some label"
+ ]
+ }
+ },
+ "RbProfile": {
+ "type": "object",
+ "properties": {
+ "rb-name": {
+ "type": "string"
+ },
+ "rb-version": {
+ "type": "string"
+ },
+ "profile-name": {
+ "type": "string"
+ },
+ "release-name": {
+ "type": "string"
+ },
+ "namespace": {
+ "type": "string"
+ },
+ "kubernetes-version": {
+ "type": "string"
+ }
+ },
+ "example": {
+ "rb-name": "test",
+ "rb-version": "v1",
+ "profile-name": "p1",
+ "release-name": "r1",
+ "namespace": "default",
+ "kubernetes-version": "12.0.1"
+ }
+ },
+ "RbInstance": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "release-name": {
+ "type": "string"
+ },
+ "namespace": {
+ "type": "string"
+ },
+ "request": {
+ "$ref": "#/definitions/RbInstanceRequest"
+ },
+ "resources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbInstanceResource"
+ }
+ }
+ }
+ },
+ "RbInstanceStatus": {
+ "type": "object",
+ "properties": {
+ "ready": {
+ "type": "boolean"
+ },
+ "request": {
+ "$ref": "#/definitions/RbInstanceRequest"
+ },
+ "resourcesCount": {
+ "type": "integer"
+ },
+ "resourcesStatus": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RbInstanceResourceStatus"
+ }
+ }
+ }
+ },
+ "RbInstanceResource": {
+ "type": "object",
+ "properties": {
+ "Name": {
+ "type": "string"
+ },
+ "GVK": {
+ "$ref": "#/definitions/GVK"
+ }
+ },
+ "example": {
+ "GVK": {
+ "Group": "apps",
+ "Kind": "Deployment",
+ "Version": "v1"
+ },
+ "Name": "test-dep"
+ }
+ },
+ "RbInstanceResourceStatus": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "GVK": {
+ "$ref": "#/definitions/GVK"
+ },
+ "status": {
+ "type": "object"
+ }
+ },
+ "example": {
+ "GVK": {
+ "Group": "apps",
+ "Kind": "Deployment",
+ "Version": "v1"
+ },
+ "Name": "test-dep"
+ }
+ },
+ "GVK": {
+ "type": "object",
+ "properties": {
+ "Group": {
+ "type": "string"
+ },
+ "Version": {
+ "type": "string"
+ },
+ "Kind": {
+ "type": "string"
+ }
+ },
+ "example": {
+ "Group": "apps",
+ "Version": "v1",
+ "Kind": "Deployment"
+ }
+ },
+ "RbInstanceRequest": {
+ "type": "object",
+ "properties": {
+ "rb-name": {
+ "type": "string"
+ },
+ "rb-version": {
+ "type": "string"
+ },
+ "profile-name": {
+ "type": "string"
+ },
+ "release-name": {
+ "type": "string"
+ },
+ "cloud-region": {
+ "type": "string"
+ },
+ "labels": {
+ "type": "object"
+ },
+ "override-values": {
+ "type": "object"
+ }
+ },
+ "example": {
+ "cloud-region": "kus",
+ "profile-name": "p1",
+ "release-name": "release-x",
+ "rb-name": "test",
+ "rb-version": "v1",
+ "override-parameters": {
+ "optionalDictOfParameters": "andTheirValues, like",
+ "global.name": "dummy-name"
+ },
+ "labels": {
+ "optionalLabelForInternalK8spluginInstancesMetadata": "dummy-value"
+ }
+ }
+ },
+ "ApiResponse": {
+ "type": "string"
+ }
+ },
+ "externalDocs": {
+ "description": "K8s Plugin v1 API - ONAP wiki",
+ "url": "https://wiki.onap.org/display/DW/MultiCloud+K8s-Plugin-service+API"
+ }
+} \ No newline at end of file