blob: 6fd571629a91c40229cc8247dda9822320f10d54 [file] [log] [blame]
# ================================================================================
# 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.0.4"
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"
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"
502:
description: "Bad response from DCAE controller"
schema:
$ref: "#/definitions/ApiResponseMessage"
504:
description: "Failed to connect with DCAE controller"
schema:
$ref: "#/definitions/ApiResponseMessage"
/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"
502:
description: "Bad response from DCAE controller"
schema:
$ref: "#/definitions/ApiResponseMessage"
404:
description: "DCAE service not found"
schema:
$ref: "#/definitions/ApiResponseMessage"
504:
description: "Failed to connect with DCAE controller"
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"
definitions:
DCAEServiceTypeRequest:
type: "object"
required:
- "blueprintTemplate"
- "owner"
- "typeName"
- "typeVersion"
properties:
owner:
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:
- "DCAEController"
- "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"
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"