openapi: 3.0.0
info:
  title: onap_dcae
  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
  version: '3.0.4'
servers:
- url: https://{defaultHost}
  variables:
    defaultHost:
      default: www.example.com
paths:
  /dcae-service-types:
    get:
      summary: dcaeServiceTypesGet
      description: Get a list of `DCAEServiceType` objects.
      operationId: dcaeServiceTypesGet
      parameters:
      - name: typeName
        in: query
        description: Filter by service type name
        style: form
        explode: true
        schema:
          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
        style: form
        explode: true
        schema:
          type: boolean
          default: true
          example: 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
        style: form
        explode: true
        schema:
          type: boolean
          default: true
          example: true
      - name: vnfType
        in: query
        description: Filter by associated vnf type. No wildcards, matches are explicit. This field is treated case insensitive.
        style: form
        explode: true
        schema:
          type: string
      - name: serviceId
        in: query
        description: Filter by assocaited service id. Instances with service id null or empty is always returned.
        style: form
        explode: true
        schema:
          type: string
      - name: serviceLocation
        in: query
        description: Filter by associated service location. Instances with service location null or empty is always returned.
        style: form
        explode: true
        schema:
          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
        style: form
        explode: true
        schema:
          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
        style: form
        explode: true
        schema:
          type: string
      - name: offset
        in: query
        description: Query resultset offset used for pagination (zero-based)
        style: form
        explode: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: List of `DCAEServiceType` objects
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InlineResponse200'
      deprecated: false
    post:
      summary: dcaeServiceTypesTypeNamePut
      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
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DCAEServiceTypeRequest'
        required: true
      responses:
        '200':
          description: Single `DCAEServiceType` object.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DCAEServiceType'
        '400':
          description: Bad request provided.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
        '409':
          description: Failed to update because there are still DCAE services of the requested type running.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
      deprecated: false
  /dcae-service-types/{typeId}:
    get:
      summary: dcaeServiceTypesTypeIdGet
      description: Get a `DCAEServiceType` object.
      operationId: dcaeServiceTypesTypeIdGet
      parameters:
      - name: typeId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Single `DCAEServiceType` object
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DCAEServiceType'
        '404':
          description: Resource not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DCAEServiceType'
      deprecated: false
    delete:
      summary: dcaeServiceTypesTypeIdDelete
      description: Deactivates existing `DCAEServiceType` instances
      operationId: dcaeServiceTypesTypeIdDelete
      parameters:
      - name: typeId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: '`DCAEServiceType` has been deactivated'
          headers: {}
          content:
            application/vnd.dcae.inventory.v1+json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
        '404':
          description: '`DCAEServiceType` not found'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
        '410':
          description: '`DCAEServiceType` already gone'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
      deprecated: false
  /dcae-services:
    get:
      summary: dcaeServicesGet
      description: Get a list of `DCAEService` objects.
      operationId: dcaeServicesGet
      parameters:
      - name: typeId
        in: query
        description: DCAE service type name
        style: form
        explode: true
        schema:
          type: string
      - name: vnfId
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      - name: vnfType
        in: query
        description: Filter by associated vnf type. This field is treated case insensitive.
        style: form
        explode: true
        schema:
          type: string
      - name: vnfLocation
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      - name: componentType
        in: query
        description: Use to filter by a specific DCAE service component type
        style: form
        explode: true
        schema:
          type: string
      - name: shareable
        in: query
        description: Use to filter by DCAE services that have shareable components or not
        style: form
        explode: true
        schema:
          type: boolean
      - name: created
        in: query
        description: Use to filter by created time
        style: form
        explode: true
        schema:
          type: string
      - name: offset
        in: query
        description: Query resultset offset used for pagination (zero-based)
        style: form
        explode: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: List of `DCAEService` objects
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InlineResponse2001'
        '502':
          description: Bad response from DCAE controller
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
        '504':
          description: Failed to connect with DCAE controller
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
      deprecated: false
  /dcae-services-groupby/{propertyName}:
    get:
      summary: dcaeServicesGroupbyPropertyNameGet
      description: Get a list of unique values for the given `propertyName`
      operationId: dcaeServicesGroupbyPropertyNameGet
      parameters:
      - name: propertyName
        in: path
        description: Property to find unique values. Restricted to `type`, `vnfType`, `vnfLocation`
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: List of unique property values
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DCAEServiceGroupByResults'
      deprecated: false
  /dcae-services/{serviceId}:
    get:
      summary: dcaeServicesServiceIdGet
      description: Get a `DCAEService` object.
      operationId: dcaeServicesServiceIdGet
      parameters:
      - name: serviceId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Single `DCAEService` object
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DCAEService'
        '404':
          description: DCAE service not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
        '502':
          description: Bad response from DCAE controller
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
        '504':
          description: Failed to connect with DCAE controller
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
      deprecated: false
    put:
      summary: dcaeServicesServiceIdPut
      description: Put a new or update an existing `DCAEService` object.
      operationId: dcaeServicesServiceIdPut
      parameters:
      - name: serviceId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DCAEServiceRequest'
        required: true
      responses:
        '200':
          description: Single `DCAEService` object
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DCAEService'
        '422':
          description: Bad request provided
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
      deprecated: false
    delete:
      summary: dcaeServicesServiceIdDelete
      description: Remove an existing `DCAEService` object.
      operationId: dcaeServicesServiceIdDelete
      parameters:
      - name: serviceId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: DCAE service has been removed
          headers: {}
          content: {}
        '404':
          description: Unknown DCAE service
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseMessage'
      deprecated: false
components:
  schemas:
    DCAEServiceTypeRequest:
      title: DCAEServiceTypeRequest
      required:
      - owner
      - typeName
      - typeVersion
      - blueprintTemplate
      type: object
      properties:
        owner:
          type: string
        typeName:
          type: string
          description: Descriptive name for this DCAE service type
        typeVersion:
          type: integer
          description: Version number for this DCAE service type
          format: int32
        blueprintTemplate:
          type: string
          description: String representation of a Cloudify blueprint with unbound variables
        serviceIds:
          type: array
          items:
            type: string
          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.
        vnfTypes:
          type: array
          items:
            type: string
          description: ''
        serviceLocations:
          type: array
          items:
            type: string
          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.
        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:
      title: DCAEServiceComponentRequest
      required:
      - componentId
      - componentType
      - componentSource
      - shareable
      type: object
      properties:
        componentId:
          type: string
          description: The id format is unique to the source
        componentType:
          type: string
        componentSource:
          allOf:
          - $ref: '#/components/schemas/ComponentSource'
          - description: Specifies the name of the underying source service that is responsible for this components
        shareable:
          type: integer
          description: Used to determine if this component can be shared amongst different DCAE services
          format: int32
    DCAEServiceGroupByResultsPropertyValues:
      title: DCAEServiceGroupByResultsPropertyValues
      type: object
      properties:
        count:
          type: integer
          format: int32
        propertyValue:
          type: string
        dcaeServiceQueryLink:
          $ref: '#/components/schemas/Link'
    DCAEServiceGroupByResults:
      title: 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: '#/components/schemas/DCAEServiceGroupByResultsPropertyValues'
          description: ''
    InlineResponse200:
      title: InlineResponse200
      type: object
      properties:
        links:
          allOf:
          - $ref: '#/components/schemas/InlineResponse200Links'
          - description: Pagination links
        totalCount:
          type: integer
          format: int32
        items:
          type: array
          items:
            $ref: '#/components/schemas/DCAEServiceType'
          description: ''
    DCAEServiceRequest:
      title: DCAEServiceRequest
      required:
      - typeId
      - vnfId
      - vnfType
      - vnfLocation
      - components
      type: object
      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
          items:
            $ref: '#/components/schemas/DCAEServiceComponentRequest'
          description: List of DCAE service components that this service is composed of
    InlineResponse200Links:
      title: InlineResponse200Links
      type: object
      properties:
        previousLink:
          $ref: '#/components/schemas/Link'
        nextLink:
          $ref: '#/components/schemas/Link'
      description: Pagination links
    ApiResponseMessage:
      title: ApiResponseMessage
      type: object
      properties:
        code:
          type: integer
          format: int32
        type:
          type: string
        message:
          type: string
    DCAEService:
      title: DCAEService
      type: object
      properties:
        serviceId:
          type: string
        selfLink:
          $ref: '#/components/schemas/Link'
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        typeLink:
          $ref: '#/components/schemas/Link'
        vnfId:
          type: string
        vnfLink:
          $ref: '#/components/schemas/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: '#/components/schemas/DCAEServiceComponent'
          description: ''
    InlineResponse2001:
      title: InlineResponse2001
      type: object
      properties:
        links:
          allOf:
          - $ref: '#/components/schemas/InlineResponse200Links'
          - description: Pagination links
        totalCount:
          type: integer
          format: int32
        items:
          type: array
          items:
            $ref: '#/components/schemas/DCAEService'
          description: ''
    Link:
      title: Link
      type: object
      properties:
        title:
          type: string
        rel:
          type: string
        uri:
          type: string
        uriBuilder:
          type: object
        rels:
          type: array
          items:
            type: string
          description: ''
        params:
          type: object
          additionalProperties:
            type: string
        type:
          type: string
    DCAEServiceComponent:
      title: DCAEServiceComponent
      required:
      - componentId
      - componentLink
      - created
      - modified
      - componentType
      - componentSource
      - shareable
      type: object
      properties:
        componentId:
          type: string
          description: The id format is unique to the source
        componentLink:
          $ref: '#/components/schemas/Link'
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        componentType:
          type: string
        componentSource:
          allOf:
          - $ref: '#/components/schemas/ComponentSource'
          - description: Specifies the name of the underying source service that is responsible for this components
        status:
          type: string
        location:
          type: string
          description: Location information of the component
        shareable:
          type: integer
          description: Used to determine if this component can be shared amongst different DCAE services
          format: int32
    DCAEServiceType:
      title: DCAEServiceType
      required:
      - owner
      - typeName
      - typeVersion
      - blueprintTemplate
      - typeId
      - selfLink
      - created
      type: object
      properties:
        owner:
          type: string
        typeName:
          type: string
          description: Descriptive name for this DCAE service type
        typeVersion:
          type: integer
          description: Version number for this DCAE service type
          format: int32
        blueprintTemplate:
          type: string
          description: String representation of a Cloudify blueprint with unbound variables
        serviceIds:
          type: array
          items:
            type: string
          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.
        vnfTypes:
          type: array
          items:
            type: string
          description: ''
        serviceLocations:
          type: array
          items:
            type: string
          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.
        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:
          $ref: '#/components/schemas/Link'
        created:
          type: string
          description: Created timestamp for this DCAE service type in epoch time
          format: date-time
        deactivated:
          type: string
          description: Deactivated timestamp for this DCAE service type in epoch time
          format: date-time
    ComponentSource:
      title: ComponentSource
      enum:
      - DCAEController
      - DMaaPController
      type: string
      description: Specifies the name of the underying source service that is responsible for this components
tags: []
externalDocs:
  description: DCAE Inventory
  url: https://gerrit.onap.org/r/#/admin/projects/dcae/dcae-inventory
