blob: 79acd7e7fa883f9b3101797c75f811f103cf3b0b [file] [log] [blame]
{
"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"
}
}