{ "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" } }