blob: 3d7c6c63b8fe5ca4bc93b3d4ee46f5e91eeb84eb [file] [log] [blame]
# ============LICENSE_START=======================================================
# Copyright (C) 2020-2021 Nordix Foundation.
# ================================================================================
# 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.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
swagger: "2.0"
info:
title: PM Subscription Handler Service
version: "2.0.0"
description: PM subscription handler enables control of performance management jobs on network functions in ONAP
produces:
- "application/json"
basePath: "/pmsh"
tags:
- name: "Existing API"
description: "Existing API before Public API work"
schemes:
- https
# Paths supported by the server application
paths:
/v1/subscriptions:
get:
tags:
- Existing API
description: >-
Get all defined subscription and their related Network Functions from ONAP.
operationId: mod.api.controller.get_all_sub_to_nf_relations
responses:
200:
description: OK; Array of subscription are returned as an object
schema:
type: array
items:
type: object
properties:
subscription_name:
type: string
description: Name of the Subscription
subscription_status:
type: string
description: Status of the Subscription
network_functions:
type: array
items:
type: object
properties:
nf_name:
type: string
description: Name of the Network Function
nf_sub_status:
type: string
description: Status of the Subscription on the Network Function
orchestration_status:
type: string
description: Orchestration status of the Network Function
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
/healthcheck:
get:
operationId: mod.api.controller.status
tags:
- "Existing API"
description: >-
This is the health check endpoint. If this returns a 200, the server is alive.
responses:
200:
description: Successful response
schema:
type: object
properties:
status:
type: string
description: Overall health of PMSH
enum: [healthy, unhealthy]
503:
description: the pmsh service is unavailable
/subscription:
post:
tags:
- "Subscriptions"
description: >-
Create a PM Subscription
operationId: mod.api.controller.create_subscription
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Subscription object to be created"
required: true
schema:
type: object
properties:
subscription:
type: object
properties:
subscriptionName:
type: string
administrativeState:
allOf:
- type: string
- enum:
- UNLOCKED
- LOCKED
- FILTERING
fileBasedGP:
type: integer
fileLocation:
type: string
nfFilter:
type: object
properties:
nfNames:
type: array
items:
type: string
modelInvariantIDs:
type: array
items:
type: string
modelVersionIDs:
type: array
items:
type: string
modelNames:
type: array
items:
type: string
additionalProperties: false
measurementGroups:
type: array
minItems: 1
items:
type: object
properties:
measurementGroup:
type: object
properties:
measurementTypes:
type: array
minItems: 1
items:
type: object
properties:
measurementType:
type: string
required:
- measurementType
managedObjectDNsBasic:
type: array
minItems: 1
items:
type: object
properties:
DN:
type: string
required:
- DN
required:
- measurementTypes
- managedObjectDNsBasic
required:
- measurementGroup
required:
- subscriptionName
- administrativeState
- fileBasedGP
- fileLocation
- nfFilter
- measurementGroups
responses:
201:
description: successfully created PM Subscription
405:
description: Invalid input
#subcriptions
/subscription/{subscriptionName}:
get:
tags:
- "Subscriptions"
description: >-
Show the subscription
operationId: mod.api.controller.get_subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested Subscription returned
schema:
type: object
properties:
subscription:
type: object
properties:
subscriptionName:
type: string
administrativeState:
allOf:
- type: string
- enum:
- UNLOCKED
- LOCKED
- FILTERING
fileBasedGP:
type: integer
fileLocation:
type: string
nfFilter:
type: object
properties:
nfNames:
type: array
items:
type: string
modelInvariantIDs:
type: array
items:
type: string
modelVersionIDs:
type: array
items:
type: string
modelNames:
type: array
items:
type: string
additionalProperties: false
measurementGroups:
type: array
minItems: 1
items:
type: object
properties:
measurementGroup:
type: object
properties:
measurementTypes:
type: array
minItems: 1
items:
type: object
properties:
measurementType:
type: string
managedObjectDNsBasic:
type: array
minItems: 1
items:
type: object
properties:
DN:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put: #full modify sub object
tags:
- "Subscriptions"
description: >-
This is an update for Subscription object
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: Subscription
description: The subscription object to update
schema:
type: object
properties:
subscription:
type: object
properties:
subscriptionName:
type: string
administrativeState:
type: string
enum:
- UNLOCKED
- LOCKED
- FILTERING
fileBasedGP:
type: integer
fileLocation:
type: string
nfFilter:
type: object
properties:
nfNames:
type: array
items:
type: string
modelInvariantIDs:
type: array
items:
type: string
modelVersionIDs:
type: array
items:
type: string
modelNames:
type: array
items:
type: string
measurementGroups:
type: array
items:
type: object
properties:
measurementGroup:
type: object
properties:
measurementTypes:
type: array
items:
type: object
properties:
measurementType:
type: string
managedObjectDNsBasic:
type: array
items:
type: object
properties:
DN:
type: string
required:
- subscriptionName
required:
- subscription
#add subscription schema here
responses:
201:
description: Subscription object updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "Subscriptions"
description: >-
This is a delete for Subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: Subscription object deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#quick way to update a field here
#adminState
/subscription/{subscriptionName}/adminState:
get:
tags:
- "adminState"
description: >-
Show admin state of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested admin state returned
schema:
type: object
properties:
adminState:
type: string
enum:
- UNLOCKED
- LOCKED
- FILTERING
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "adminState"
description: >-
This is an update for a specific subscription's admin state
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: adminState
description: The adminState of the subscription object to update
schema:
type: object
required:
- adminState
properties:
adminState:
type: string
enum:
- UNLOCKED
- LOCKED
- FILTERING
responses:
201:
description: adminState is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#fileBasedGP
/subscription/{subscriptionName}/fileBasedGP:
get:
tags:
- "fileBasedGP"
description: >-
Show the fileBasedGP of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested fileBasedGP returned
schema:
type: object
properties:
fileBasedGP:
type: integer
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "fileBasedGP"
description: >-
This is an update for a specific subscription's fileBasedGP
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: fileBasedGP
description: The fileBasedGP field of the subscription object to update
schema:
type: object
required:
- fileBasedGP
properties:
fileBasedGP:
type: integer
responses:
201:
description: fileBasedGP is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "fileBasedGP"
description: >-
This is a delete for fileBasedGP field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: fileBasedGP field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#fileLocation
/subscription/{subscriptionName}/fileLocation:
get:
tags:
- "fileLocation"
description: >-
Show the fileLocation of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested fileLocation returned
schema:
type: object
properties:
fileLocation:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "fileLocation"
description: >-
This is an update for a specific subscription's fileLocation
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: fileLocation
description: The fileLocation field of the subscription object to update
schema:
type: object
required:
- fileLocation
properties:
fileBasedGP:
type: string
responses:
201:
description: fileLocation is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "fileLocation"
description: >-
This is a delete for fileLocation field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: fileLocation field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#nfFilter
/subscription/{subscriptionName}/nfFilter:
get:
tags:
- "nfFilter"
description: >-
Show the nfFilter of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested nfFilter returned
schema:
type: object
properties:
nfFilter:
type: object
properties:
nfNames:
type: array
items:
type: string
modelInvariantIDs:
type: array
items:
type: string
modelVersionIDs:
type: array
items:
type: string
modelNames:
type: array
items:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "nfFilter"
description: >-
This is an update for a specific subscription's nfFilter
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: nfFilter
description: The nfFilter field of the subscription object to update
schema:
type: object
properties:
nfFilter:
type: object
properties:
nfNames:
type: array
items:
type: string
modelInvariantIDs:
type: array
items:
type: string
modelVersionIDs:
type: array
items:
type: string
modelNames:
type: array
items:
type: string
responses:
201:
description: fileLocation is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "nfFilter"
description: >-
This is a delete for nfFilter field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: nfFilter field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#nfNames
/subscription/{subscriptionName}/nfFilter/nfNames:
get:
tags:
- "nfFilter"
description: >-
Show the nfNames of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested nfNames returned
schema:
type: object
properties:
nfNames:
items:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "nfFilter"
description: >-
This is an update for a specific subscription's nfNames
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: nfNames
description: The nfNames field of nfFilter of the subscription object to update
schema:
type: object
required:
- nfNames
properties:
nfNames:
type: array
items:
type: string
responses:
201:
description: nfNames is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "nfFilter"
description: >-
This is a delete for nfNames field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: nfNames field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#nfinvariantModelIds
/subscription/{subscriptionName}/nfFilter/nfinvariantModelIds:
get:
tags:
- "nfFilter"
description: >-
Show the nfinvariantModelIds of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested nfinvariantModelIds returned
schema:
type: object
properties:
nfinvariantModelIds:
items:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "nfFilter"
description: >-
This is an update for a specific subscription's nfinvariantModelIds
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: nfinvariantModelIds
description: The nfinvariantModelIds field of nfFilter of the subscription object to update
schema:
type: object
required:
- nfNames
properties:
nfinvariantModelIds:
type: array
items:
type: string
responses:
201:
description: nfNames is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "nfFilter"
description: >-
This is a delete for nfinvariantModelIds field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: nfinvariantModelIds field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#modelVersionIds
/subscription/{subscriptionName}/nfFilter/modelVersionIds:
get:
tags:
- "nfFilter"
description: >-
Show the modelVersionIds of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested modelVersionIds returned
schema:
type: object
properties:
modelVersionIds:
items:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "nfFilter"
description: >-
This is an update for a specific subscription's modelVersionIds
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: modelVersionIds
description: The modelVersionIds field of nfFilter of the subscription object to update
schema:
type: object
required:
- modelVersionIds
properties:
modelVersionIds:
type: array
items:
type: string
responses:
201:
description: modelVersionIds is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "nfFilter"
description: >-
This is a delete for modelVersionIds field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: modelVersionIds field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#modelNames
/subscription/{subscriptionName}/nfFilter/modelNames:
get:
tags:
- "nfFilter"
description: >-
Show the modelNames of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested modelNames returned
schema:
type: object
properties:
modelNames:
items:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "nfFilter"
description: >-
This is an update for a specific subscription's modelNames
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: modelNames
description: The modelNames field of nfFilter of the subscription object to update
schema:
type: object
required:
- modelNames
properties:
modelNames:
type: array
items:
type: string
responses:
201:
description: modelNames is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "nfFilter"
description: >-
This is a delete for modelNames field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: modelNames field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#measurementGroups
/subscription/{subscriptionName}/measurementGroups:
get:
tags:
- "measurementGroups"
description: >-
Show the fileBasedGP of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
200:
description: Requested measurementGroups returned
schema:
type: object
properties:
measurementGroups:
type: array
items:
type: object
properties:
measurementGroup:
type: object
properties:
measurementTypes:
type: array
items:
type: object
properties:
measurementType:
type: string
managedObjectDNsBasic:
type: array
items:
type: object
properties:
DN:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "measurementGroups"
description: >-
This is an update for a specific subscription's measurementGroups
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: body
name: measurementGroups
description: The measurementGroups field of the subscription object to update
schema:
type: object
properties:
measurementGroups:
type: array
items:
type: object
properties:
measurementGroup:
type: object
properties:
measurementTypes:
type: array
items:
type: object
properties:
measurementType:
type: string
managedObjectDNsBasic:
type: array
items:
type: object
properties:
DN:
type: string
responses:
201:
description: measurementGroups is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
delete:
tags:
- "measurementGroups"
description: >-
This is a delete for measurementGroups field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
responses:
204:
description: measurementGroups field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: Subscription object not found
#measurementGroupName
/subscription/{subscriptionName}/measurementGroups/{measurementGroupName}:
get:
tags:
- "measurementGroups"
description: >-
Show a measurementGroup of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
responses:
200:
description: Requested measurementGroup returned
schema:
type: object
properties:
measurementGroup:
type: object
properties:
measurementTypes:
type: array
items:
type: object
properties:
measurementType:
type: string
managedObjectDNsBasic:
type: array
items:
type: object
properties:
DN:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "measurementGroups"
description: >-
This is an update for a specific a measurementGroup
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
- in: body
name: measurementGroup
description: The measurementGroup field of the subscription object to update
schema:
type: object
properties:
measurementGroup:
type: object
properties:
measurementTypes:
type: array
items:
type: object
properties:
measurementType:
type: string
managedObjectDNsBasic:
type: array
items:
type: object
properties:
DN:
type: string
responses:
201:
description: measurementGroup is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: measurementGroup object not found
delete:
tags:
- "measurementGroups"
description: >-
This is a delete for measurementGroup field on a subscription object
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
responses:
204:
description: measurementGroup field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: measurementGroup object not found
#measurementType
/subscription/{subscriptionName}/measurementGroups/{measurementGroupName}/measurementTypes:
get:
tags:
- "measurementGroups"
description: >-
Show the measurementTypes of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
responses:
200:
description: Requested measurementTypes returned
schema:
type: object
properties:
measurementTypes:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "measurementGroups"
description: >-
This is an update for measurementType field in a specific measurementGroup
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
- in: body
name: measurementTypes
description: The measurementTypes field of the measurementGroup to update
schema:
type: object
properties:
measurementTypes:
type: string
responses:
201:
description: measurementType is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: measurementGroup object not found
delete:
tags:
- "measurementGroups"
description: >-
This is a delete for measurementType field on a measurementGroup
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
responses:
204:
description: measurementGroup field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: measurementGroup object not found
#managedObjectDNsBasic
/subscription/{subscriptionName}/measurementGroups/{measurementGroupName}/managedObjectDNsBasic:
get:
tags:
- "measurementGroups"
description: >-
Show the managedObjectDNsBasic of a subscription
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
responses:
200:
description: Requested managedObjectDNsBasic returned
schema:
type: object
properties:
managedObjectDNsBasic:
type: string
401:
description: Unauthorized
403:
description: Forbidden
404:
description: there are no subscription defined
put:
tags:
- "measurementGroups"
description: >-
This is an update for managedObjectDNsBasic field in a specific measurementGroup
consumes:
- application/json
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
- in: body
name: managedObjectDNsBasic
description: The managedObjectDNsBasic field of the measurementGroup to update
schema:
type: object
properties:
managedObjectDNsBasic:
type: string
responses:
201:
description: managedObjectDNsBasic is updated
401:
description: Unauthorized
403:
description: Forbidden
404:
description: measurementGroup object not found
delete:
tags:
- "measurementGroups"
description: >-
This is a delete for managedObjectDNsBasic field on a measurementGroup
parameters:
- in: path
name: subscriptionName
type: string
required: true
- in: path
name: measurementGroupName
type: string
required: true
responses:
204:
description: managedObjectDNsBasic field is deleted
401:
description: Unauthorized
403:
description: Forbidden
404:
description: measurementGroup object not found