{ "swagger": "2.0", "basePath": "/onboarding", "paths": { "/components": { "post": { "responses": { "500": { "description": "Internal Server Error" }, "409": { "description": "Component already exists", "schema": { "$ref": "#/definitions/Error message" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success", "schema": { "$ref": "#/definitions/Component post" } } }, "description": "Add a Component to the Catalog", "operationId": "post_component", "parameters": [{ "name": "payload", "required": true, "in": "body", "schema": { "$ref": "#/definitions/Component Spec" } }, { "name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html" }], "tags": ["onboarding"] }, "get": { "responses": { "500": { "description": "Internal Server Error" }, "200": { "description": "Success", "schema": { "$ref": "#/definitions/Component List" } } }, "description": "Get list of Components in the catalog", "operationId": "get_components", "parameters": [{ "name": "name", "in": "query", "type": "string", "description": "Name of component to filter for" }, { "name": "version", "in": "query", "type": "string", "description": "Version of component to filter for" }, { "name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html" }], "tags": ["onboarding"] } }, "/components/{component_id}": { "parameters": [{ "name": "component_id", "in": "path", "required": true, "type": "string" }], "put": { "responses": { "500": { "description": "Internal Server Error" }, "404": { "description": "Component not found in Catalog", "schema": { "$ref": "#/definitions/Error message" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success, Component replaced" } }, "description": "Replace a Component Spec in the Catalog", "operationId": "put_component", "parameters": [{ "name": "payload", "required": true, "in": "body", "schema": { "$ref": "#/definitions/Component Spec" } }], "tags": ["onboarding"] }, "get": { "responses": { "500": { "description": "Internal Server Error" }, "404": { "description": "Component not found in Catalog", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success", "schema": { "$ref": "#/definitions/component fields by id" } } }, "description": "Get a Component", "operationId": "get_component", "parameters": [{ "name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html" }], "tags": ["onboarding"] }, "patch": { "responses": { "500": { "description": "Internal Server Error" }, "404": { "description": "Component not found in Catalog", "schema": { "$ref": "#/definitions/Error message" } }, "403": { "description": "Forbidden Request", "schema": { "$ref": "#/definitions/Error message" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success, Component status updated" } }, "description": "Update a Component's status in the Catalog", "operationId": "patch_component", "parameters": [{ "name": "payload", "required": true, "in": "body", "schema": { "$ref": "#/definitions/Patch Spec" } }], "tags": ["onboarding"] } }, "/dataformats": { "post": { "responses": { "500": { "description": "Internal Server Error" }, "409": { "description": "Data Format already exists", "schema": { "$ref": "#/definitions/Error message" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success", "schema": { "$ref": "#/definitions/Data Format post" } } }, "description": "Add a Data Format to the Catalog", "operationId": "post_dataformat", "parameters": [{ "name": "payload", "required": true, "in": "body", "schema": { "$ref": "#/definitions/Data Format Spec" } }, { "name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html" }], "tags": ["onboarding"] }, "get": { "responses": { "500": { "description": "Internal Server Error" }, "200": { "description": "Success", "schema": { "$ref": "#/definitions/Data Format List" } } }, "description": "Get list of Data Formats in the catalog", "operationId": "get_dataformats", "parameters": [{ "name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html" }], "tags": ["onboarding"] } }, "/dataformats/{dataformat_id}": { "parameters": [{ "name": "dataformat_id", "in": "path", "required": true, "type": "string" }], "put": { "responses": { "500": { "description": "Internal Server Error" }, "404": { "description": "Data Format not found in Catalog", "schema": { "$ref": "#/definitions/Error message" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success, Data Format added" } }, "description": "Replace a Data Format Spec in the Catalog", "operationId": "put_dataformat", "parameters": [{ "name": "payload", "required": true, "in": "body", "schema": { "$ref": "#/definitions/Data Format Spec" } }], "tags": ["onboarding"] }, "get": { "responses": { "500": { "description": "Internal Server Error" }, "404": { "description": "Data Format not found in Catalog", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success", "schema": { "$ref": "#/definitions/dataformat fields by id" } } }, "description": "Get a Data Format", "operationId": "get_dataformat", "parameters": [{ "name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html" }], "tags": ["onboarding"] }, "patch": { "responses": { "500": { "description": "Internal Server Error" }, "404": { "description": "Data Format not found in Catalog", "schema": { "$ref": "#/definitions/Error message" } }, "403": { "description": "Forbidden Request", "schema": { "$ref": "#/definitions/Error message" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error message" } }, "200": { "description": "Success, Data Format status updated" } }, "description": "Update a Data Format's status in the Catalog", "operationId": "patch_dataformat", "parameters": [{ "name": "payload", "required": true, "in": "body", "schema": { "$ref": "#/definitions/Patch Spec" } }], "tags": ["onboarding"] } } }, "info": { "title": "DCAE Onboarding HTTP API", "version": "2.12.0" }, "produces": ["application/json"], "consumes": ["application/json"], "tags": [{ "name": "onboarding", "description": "Default namespace" }], "definitions": { "Component Spec": { "properties": { "owner": { "type": "string" }, "spec": { "type": "object", "description": "The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json" } } }, "Error message": { "properties": { "message": { "type": "string", "description": ". . . . .Details about the unsuccessful API request" } }, "type": "object" }, "Component post": { "required": ["componentUrl"], "properties": { "componentUrl": { "type": "string", "description": ". . . . Url to the Component Specification" } }, "type": "object" }, "Component List": { "properties": { "components": { "type": "array", "items": { "$ref": "#/definitions/component fields" } } }, "type": "object" }, "component fields": { "required": ["componentType", "componentUrl", "description", "id", "modified", "name", "owner", "status", "version", "whenAdded"], "properties": { "id": { "type": "string", "description": ". . . . ID of the component" }, "name": { "type": "string", "description": ". . . . Name of the component" }, "version": { "type": "string", "description": ". . . . Version of the component" }, "owner": { "type": "string", "description": ". . . . ID of who added the component" }, "whenAdded": { "type": "string", "format": "date-time", "description": ". . . . When component was added to the Catalog" }, "modified": { "type": "string", "format": "date-time", "description": ". . . . When component was last modified" }, "status": { "type": "string", "description": ". . . . Status of the component" }, "description": { "type": "string", "description": ". . . . Description of the component" }, "componentType": { "type": "string", "description": ". . . . only \"docker\"" }, "componentUrl": { "type": "string", "description": ". . . . Url to the Component Specification" } }, "type": "object" }, "Patch Spec": { "required": ["owner", "status"], "properties": { "owner": { "type": "string", "description": "User ID" }, "status": { "type": "string", "description": ". . . . .[published] is the only status change supported right now", "example": "published", "enum": ["published", "revoked"] } }, "type": "object" }, "component fields by id": { "allOf": [{ "$ref": "#/definitions/component fields" }, { "required": ["spec"], "properties": { "spec": { "type": "object", "description": "The Component Specification (json)" } }, "type": "object" }] }, "Data Format Spec": { "properties": { "owner": { "type": "string" }, "spec": { "type": "object", "description": "The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json" } } }, "Data Format post": { "required": ["dataFormatUrl"], "properties": { "dataFormatUrl": { "type": "string", "description": ". . . . Url to the Data Format Specification" } }, "type": "object" }, "Data Format List": { "properties": { "dataFormats": { "type": "array", "items": { "$ref": "#/definitions/dataformat fields" } } }, "type": "object" }, "dataformat fields": { "required": ["dataFormatUrl", "description", "id", "modified", "name", "owner", "status", "version", "whenAdded"], "properties": { "id": { "type": "string", "description": ". . . . ID of the data format" }, "name": { "type": "string", "description": ". . . . Name of the data format" }, "version": { "type": "string", "description": ". . . . Version of the data format" }, "owner": { "type": "string", "description": ". . . . ID of who added the data format" }, "whenAdded": { "type": "string", "format": "date-time", "description": ". . . . When data format was added to the Catalog" }, "modified": { "type": "string", "format": "date-time", "description": ". . . . When data format was last modified" }, "status": { "type": "string", "description": ". . . . Status of the data format" }, "description": { "type": "string", "description": ". . . . Description of the data format" }, "dataFormatUrl": { "type": "string", "description": ". . . . Url to the Data Format Specification" } }, "type": "object" }, "dataformat fields by id": { "allOf": [{ "$ref": "#/definitions/dataformat fields" }, { "required": ["spec"], "properties": { "spec": { "type": "object", "description": "The Data Format Specification (json)" } }, "type": "object" }] } }, "responses": { "ParseError": { "description": "When a mask can't be parsed" }, "MaskError": { "description": "When any error occurs on mask" } } }