# ================================================================================ # Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved. # ================================================================================ # Licensed 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. # ============LICENSE_END========================================================= # # ECOMP is a trademark and service mark of AT&T Intellectual Property. swagger: '2.0' info: version: "3.2.0" title: DCAE Inventory API description: | DCAE Inventory is a web service that provides the following: 1. Real-time data on all DCAE services and their components 2. Comprehensive details on available DCAE service types contact: email: dcae@lists.openecomp.org externalDocs: description: DCAE Inventory url: https://gerrit.onap.org/r/#/admin/projects/dcae/dcae-inventory paths: /dcae-service-types: get: summary: "" description: "Get a list of `DCAEServiceType` objects." operationId: "dcaeServiceTypesGet" consumes: - "application/json" - "application/vnd.dcae.inventory.v1+json" produces: - "application/json" - "application/vnd.dcae.inventory.v1+json" parameters: - name: "typeName" in: "query" description: "Filter by service type name" required: false type: "string" - name: "onlyLatest" in: "query" description: "If set to true, query returns just the latest versions of DCAE\ \ service types. If set to false, then all versions are returned. Default\ \ is true" required: false type: "boolean" default: true - name: "onlyActive" in: "query" description: "If set to true, query returns only *active* DCAE service types.\ \ If set to false, then all DCAE service types are returned. Default is\ \ true" required: false type: "boolean" default: true - name: "vnfType" in: "query" description: "Filter by associated vnf type. No wildcards, matches are explicit.\ \ This field is treated case insensitive." required: false type: "string" - name: "serviceId" in: "query" description: "Filter by assocaited service id. Instances with service id null\ \ or empty is always returned." required: false type: "string" - name: "serviceLocation" in: "query" description: "Filter by associated service location. Instances with service\ \ location null or empty is always returned." required: false type: "string" - name: "asdcServiceId" in: "query" description: "Filter by associated asdc design service id. Setting this to\ \ `NONE` will return instances that have asdc service id set to null" required: false type: "string" - name: "asdcResourceId" in: "query" description: "Filter by associated asdc design resource id. Setting this to\ \ `NONE` will return instances that have asdc resource id set to null" required: false type: "string" - name: "offset" in: "query" description: "Query resultset offset used for pagination (zero-based)" required: false type: "integer" format: "int32" - name: "owner" in: "query" description: "Filter by owner name" required: false type: "string" - name: "application" in: "query" description: "Filter by application name" required: false type: "string" - name: "component" in: "query" description: "Filter by component name" required: false type: "string" responses: 200: description: "List of `DCAEServiceType` objects" schema: $ref: "#/definitions/InlineResponse200" post: summary: "" description: "Inserts a new `DCAEServiceType` or updates an existing instance.\ \ Updates are only allowed iff there are no running DCAE services of the requested\ \ type," operationId: "dcaeServiceTypesTypeNamePut" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" required: true schema: $ref: "#/definitions/DCAEServiceTypeRequest" responses: 200: description: "Single `DCAEServiceType` object." schema: $ref: "#/definitions/DCAEServiceType" 400: description: "Bad request provided." schema: $ref: "#/definitions/ApiResponseMessage" 409: description: "Failed to update because there are still DCAE services of\ \ the requested type running." schema: $ref: "#/definitions/ApiResponseMessage" /dcae-service-types/{typeId}: get: summary: "" description: "Get a `DCAEServiceType` object." operationId: "dcaeServiceTypesTypeIdGet" consumes: - "application/json" produces: - "application/json" parameters: - name: "typeId" in: "path" required: true type: "string" responses: 200: description: "Single `DCAEServiceType` object" schema: $ref: "#/definitions/DCAEServiceType" 404: description: "Resource not found" schema: $ref: "#/definitions/DCAEServiceType" delete: summary: "" description: "Deactivates existing `DCAEServiceType` instances" operationId: "dcaeServiceTypesTypeIdDelete" consumes: - "application/vnd.dcae.inventory.v1+json" - "application/json" produces: - "application/vnd.dcae.inventory.v1+json" - "application/json" parameters: - name: "typeId" in: "path" required: true type: "string" responses: 200: description: "`DCAEServiceType` has been deactivated" schema: $ref: "#/definitions/ApiResponseMessage" 410: description: "`DCAEServiceType` already gone" schema: $ref: "#/definitions/ApiResponseMessage" 404: description: "`DCAEServiceType` not found" schema: $ref: "#/definitions/ApiResponseMessage" /dcae-services: get: summary: "" description: "Get a list of `DCAEService` objects." operationId: "dcaeServicesGet" consumes: - "application/json" - "application/vnd.dcae.inventory.v1+json" produces: - "application/json" - "application/vnd.dcae.inventory.v1+json" parameters: - name: "typeId" in: "query" description: "DCAE service type name" required: false type: "string" - name: "vnfId" in: "query" required: false type: "string" - name: "vnfType" in: "query" description: "Filter by associated vnf type. This field is treated case insensitive." required: false type: "string" - name: "vnfLocation" in: "query" required: false type: "string" - name: "componentType" in: "query" description: "Use to filter by a specific DCAE service component type" required: false type: "string" - name: "shareable" in: "query" description: "Use to filter by DCAE services that have shareable components\ \ or not" required: false type: "boolean" - name: "created" in: "query" description: "Use to filter by created time" required: false type: "string" - name: "offset" in: "query" description: "Query resultset offset used for pagination (zero-based)" required: false type: "integer" format: "int32" responses: 200: description: "List of `DCAEService` objects" schema: $ref: "#/definitions/InlineResponse2001" /dcae-services-groupby/{propertyName}: get: summary: "" description: "Get a list of unique values for the given `propertyName`" operationId: "dcaeServicesGroupbyPropertyNameGet" consumes: - "application/json" - "application/vnd.dcae.inventory.v1+json" produces: - "application/json" - "application/vnd.dcae.inventory.v1+json" parameters: - name: "propertyName" in: "path" description: "Property to find unique values. Restricted to `type`, `vnfType`,\ \ `vnfLocation`" required: true type: "string" responses: 200: description: "List of unique property values" schema: $ref: "#/definitions/DCAEServiceGroupByResults" /dcae-services/{serviceId}: get: summary: "" description: "Get a `DCAEService` object." operationId: "dcaeServicesServiceIdGet" consumes: - "application/json" - "application/vnd.dcae.inventory.v1+json" produces: - "application/json" - "application/vnd.dcae.inventory.v1+json" parameters: - name: "serviceId" in: "path" required: true type: "string" responses: 200: description: "Single `DCAEService` object" schema: $ref: "#/definitions/DCAEService" 404: description: "DCAE service not found" schema: $ref: "#/definitions/ApiResponseMessage" put: summary: "" description: "Put a new or update an existing `DCAEService` object." operationId: "dcaeServicesServiceIdPut" consumes: - "application/json" - "application/vnd.dcae.inventory.v1+json" produces: - "application/json" - "application/vnd.dcae.inventory.v1+json" parameters: - name: "serviceId" in: "path" required: true type: "string" - in: "body" name: "body" required: true schema: $ref: "#/definitions/DCAEServiceRequest" responses: 200: description: "Single `DCAEService` object" schema: $ref: "#/definitions/DCAEService" 422: description: "Bad request provided" schema: $ref: "#/definitions/ApiResponseMessage" delete: summary: "" description: "Remove an existing `DCAEService` object." operationId: "dcaeServicesServiceIdDelete" consumes: - "application/vnd.dcae.inventory.v1+json" - "application/json" produces: - "application/json" - "application/vnd.dcae.inventory.v1+json" parameters: - name: "serviceId" in: "path" required: true type: "string" responses: 200: description: "DCAE service has been removed" 404: description: "Unknown DCAE service" schema: $ref: "#/definitions/ApiResponseMessage" /servicehealth: get: summary: "Check for external dependencies for inventory." description: "Get a list of `DCAEServiceType` objects." operationId: "dcaeServiceTypesGet" consumes: - "application/json" - "application/vnd.dcae.inventory.v1+json" produces: - "application/json" - "application/vnd.dcae.inventory.v1+json" responses: 200: description: "List of `DCAEServiceType` objects" schema: $ref: "#/definitions/InlineResponse200" /healthcheck: get: summary: "" description: "Basic test to check inventory internals, that process and web api are running." produces: - "text/plain" responses: 200: description: "OK response to indicate success" definitions: DCAEServiceTypeRequest: type: "object" required: - "blueprintTemplate" - "owner" - "typeName" - "typeVersion" properties: owner: type: "string" application: type: "string" component: type: "string" typeName: type: "string" description: "Descriptive name for this DCAE service type" typeVersion: type: "integer" format: "int32" description: "Version number for this DCAE service type" blueprintTemplate: type: "string" description: "String representation of a Cloudify blueprint with unbound variables" serviceIds: type: "array" description: "List of service ids that are used to associate with DCAE service\ \ type. DCAE service types with this propery as null or empty means them\ \ apply for every service id." items: type: "string" vnfTypes: type: "array" items: type: "string" serviceLocations: type: "array" description: "List of service locations that are used to associate with DCAE\ \ service type. DCAE service types with this propery as null or empty means\ \ them apply for every service location." items: type: "string" asdcServiceId: type: "string" description: "Id of service this DCAE service type is associated with. Value\ \ source is from ASDC's notification event's field `serviceInvariantUUID`." asdcResourceId: type: "string" description: "Id of vf/vnf instance this DCAE service type is associated with.\ \ Value source is from ASDC's notification event's field `resourceInvariantUUID`." asdcServiceURL: type: "string" description: "URL to the ASDC service model" DCAEServiceComponentRequest: type: "object" required: - "componentId" - "componentSource" - "componentType" - "shareable" properties: componentId: type: "string" description: "The id format is unique to the source" componentType: type: "string" componentSource: type: "string" description: "Specifies the name of the underying source service that is responsible\ \ for this components" enum: - "DMaaPController" shareable: type: "integer" format: "int32" description: "Used to determine if this component can be shared amongst different\ \ DCAE services" DCAEServiceGroupByResultsPropertyValues: type: "object" properties: count: type: "integer" format: "int32" propertyValue: type: "string" dcaeServiceQueryLink: description: "Link.title is the DCAE service property value. Following this\ \ link will provide a list of DCAE services that all have this property\ \ value." $ref: "#/definitions/Link" DCAEServiceGroupByResults: type: "object" properties: propertyName: type: "string" description: "Property name of DCAE service that the group by operation was\ \ performed on" propertyValues: type: "array" items: $ref: "#/definitions/DCAEServiceGroupByResultsPropertyValues" InlineResponse200: type: "object" properties: links: $ref: "#/definitions/InlineResponse200Links" totalCount: type: "integer" format: "int32" items: type: "array" items: $ref: "#/definitions/DCAEServiceType" DCAEServiceRequest: type: "object" required: - "components" - "typeId" - "vnfId" - "vnfLocation" - "vnfType" properties: typeId: type: "string" description: "Id of the associated DCAE service type" vnfId: type: "string" description: "Id of the associated VNF that this service is monitoring" vnfType: type: "string" description: "The type of the associated VNF that this service is monitoring" vnfLocation: type: "string" description: "Location identifier of the associated VNF that this service\ \ is monitoring" deploymentRef: type: "string" description: "Reference to a Cloudify deployment" components: type: "array" description: "List of DCAE service components that this service is composed\ \ of" items: $ref: "#/definitions/DCAEServiceComponentRequest" InlineResponse200Links: type: "object" properties: previousLink: $ref: "#/definitions/Link" nextLink: $ref: "#/definitions/Link" description: "Pagination links" ApiResponseMessage: type: "object" properties: code: type: "integer" format: "int32" type: type: "string" message: type: "string" DCAEService: type: "object" properties: serviceId: type: "string" selfLink: description: "Link.title is serviceId" $ref: "#/definitions/Link" created: type: "string" format: "date-time" modified: type: "string" format: "date-time" typeLink: description: "Link.title is typeId" $ref: "#/definitions/Link" vnfId: type: "string" vnfLink: description: "Link.title is vnfId" $ref: "#/definitions/Link" vnfType: type: "string" vnfLocation: type: "string" description: "Location information of the associated VNF" deploymentRef: type: "string" description: "Reference to a Cloudify deployment" components: type: "array" items: $ref: "#/definitions/DCAEServiceComponent" InlineResponse2001: type: "object" properties: links: $ref: "#/definitions/InlineResponse200Links" totalCount: type: "integer" format: "int32" items: type: "array" items: $ref: "#/definitions/DCAEService" UriBuilder: type: "object" Link: type: "object" properties: title: type: "string" rel: type: "string" uri: type: "string" format: "uri" uriBuilder: $ref: "#/definitions/UriBuilder" rels: type: "array" items: type: "string" params: type: "object" additionalProperties: type: "string" type: type: "string" DCAEServiceComponent: type: "object" required: - "componentId" - "componentLink" - "componentSource" - "componentType" - "created" - "modified" - "shareable" properties: componentId: type: "string" description: "The id format is unique to the source" componentLink: description: "Link to the underlying resource of this component" $ref: "#/definitions/Link" created: type: "string" format: "date-time" modified: type: "string" format: "date-time" componentType: type: "string" componentSource: type: "string" description: "Specifies the name of the underying source service that is responsible\ \ for this components" enum: - "DCAEController" - "DMaaPController" status: type: "string" location: type: "string" description: "Location information of the component" shareable: type: "integer" format: "int32" description: "Used to determine if this component can be shared amongst different\ \ DCAE services" DCAEServiceType: type: "object" required: - "blueprintTemplate" - "created" - "owner" - "selfLink" - "typeId" - "typeName" - "typeVersion" properties: owner: type: "string" application: type: "string" component: type: "string" typeName: type: "string" description: "Descriptive name for this DCAE service type" typeVersion: type: "integer" format: "int32" description: "Version number for this DCAE service type" blueprintTemplate: type: "string" description: "String representation of a Cloudify blueprint with unbound variables" serviceIds: type: "array" description: "List of service ids that are used to associate with DCAE service\ \ type. DCAE service types with this propery as null or empty means them\ \ apply for every service id." items: type: "string" vnfTypes: type: "array" items: type: "string" serviceLocations: type: "array" description: "List of service locations that are used to associate with DCAE\ \ service type. DCAE service types with this propery as null or empty means\ \ them apply for every service location." items: type: "string" asdcServiceId: type: "string" description: "Id of service this DCAE service type is associated with. Value\ \ source is from ASDC's notification event's field `serviceInvariantUUID`." asdcResourceId: type: "string" description: "Id of vf/vnf instance this DCAE service type is associated with.\ \ Value source is from ASDC's notification event's field `resourceInvariantUUID`." asdcServiceURL: type: "string" description: "URL to the ASDC service model" typeId: type: "string" description: "Unique identifier for this DCAE service type" selfLink: description: "Link to self where the Link.title is typeName" $ref: "#/definitions/Link" created: type: "string" format: "date-time" description: "Created timestamp for this DCAE service type in epoch time" deactivated: type: "string" format: "date-time" description: "Deactivated timestamp for this DCAE service type in epoch time"