--- /dev/null
+openapi: 3.0.2
+
+info:
+ title: OSM VNFM NB API featuring ETSI NFV SOL003
+ description: >
+ This is Open Source MANO Northbound API featuring ETSI GS NFV-SOL 003 V3.3.1
+ version: "1.0.0"
+ contact:
+ email: OSM_TECH@list.etsi.org
+ license:
+ name: Apache 2.0
+ url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
--- /dev/null
+openapi: 3.0.2
+
+info:
+ title: SOL003 - VNF Lifecycle Management interface
+ description: |
+ SOL003 - VNF Lifecycle Management interface
+ version: "1.0.0"
+ contact:
+ email: OSM_TECH@list.etsi.org
+ license:
+ name: Apache 2.0
+ url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
+
+tags:
+ - name: VNF Instances
+ description: Operations related to VNF instances
+
+servers:
+ - url: http://127.0.0.1/vnflcm/v1
+ - url: https://127.0.0.1/vnflcm/v1
+
+paths:
+ /vnf_instances:
+ parameters:
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Accept
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Authorization
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Version
+ get:
+ tags:
+ - VNF Instances
+ summary: Query information about multiple VNF instances
+ description: The GET method queries information about multiple VNF instances.
+ responses:
+ 200:
+ $ref: '#/components/responses/VNFInstances.Get.200'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - VNF Instances
+ summary: Create a new VNF instance resource
+ description: |
+ The POST method creates a new VNF instance resource based on a VNF package that is onboarded
+ and in "ENABLED" state.
+ requestBody:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/CreateVnfRequest'
+ responses:
+ 201:
+ $ref: '#/components/responses/VNFInstances.Post.201'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+
+ /vnf_instances/{vnfInstanceId}:
+ parameters:
+ - $ref: '#/components/parameters/VnfInstanceId'
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Authorization
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Version
+ get:
+ tags:
+ - VNF Instances
+ summary: Read an individual VNF instance resource
+ description: |
+ The GET method retrieves information about a VNF instance by reading an "Individual VNF instance" resource.
+ responses:
+ 200:
+ $ref: '#/components/responses/IndividualVnfInstance.Get.200'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - VNF Instances
+ summary: Delete an individual VNF instance resource
+ description: This method deletes an "Individual VNF instance" resource.
+ responses:
+ 204:
+ description: No Content
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+
+ /vnf_instances/{vnfInstanceId}/instantiate:
+ parameters:
+ - $ref: '#/components/parameters/VnfInstanceId'
+ post:
+ tags:
+ - VNF Instances
+ summary: Instantiate a VNF
+ description: |
+ The POST method instantiates a VNF instance. The precondition is that the VNF instance
+ must have been created and must be in NOT_INSTANTIATED state.
+ parameters:
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Accept
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Authorization
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Version
+ requestBody:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest'
+ responses:
+ 202:
+ $ref: '#/components/responses/InstantiateVnfInstance.Post.202'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+
+ /vnf_instances/{vnfInstanceId}/scale:
+ parameters:
+ - $ref: '#/components/parameters/VnfInstanceId'
+ post:
+ tags:
+ - VNF Instances
+ summary: Scale a VNF instance
+ description: |
+ The POST method requests to scale a VNF instance resource. The precondition is that the VNF instance
+ must have been created and must be in INSTANTIATED state.
+ parameters:
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Accept
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Authorization
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Version
+ requestBody:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfRequest'
+ responses:
+ 202:
+ $ref: '#/components/responses/ScaleVnfInstance.Post.202'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+
+ /vnf_instances/{vnfInstanceId}/terminate:
+ parameters:
+ - $ref: '#/components/parameters/VnfInstanceId'
+ post:
+ tags:
+ - VNF Instances
+ summary: Terminate a VNF instance
+ description: |
+ The POST method requests to terminate a VNF instance. The precondition is that the VNF
+ instance must have been created and must be in INSTANTIATED state.
+ parameters:
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Accept
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Authorization
+ - $ref: ../components/SOL003_params.yaml#/components/parameters/Version
+ requestBody:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest'
+ responses:
+ 202:
+ $ref: '#/components/responses/TerminateVnfInstance.Post.202'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+
+ /vnf_lcm_op_occs:
+ get:
+ tags:
+ - VNF Instances
+ summary: Query information about multiple VNF LCM Operation Occurrences
+ description: Query information about multiple VNF LCM Operation Occurrences
+ responses:
+ 200:
+ $ref: '#/components/responses/VnfLcmOpOccs.Get.200'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+
+ /vnf_lcm_op_occs/{vnfLcmOpOccId}:
+ parameters:
+ - $ref: '#/components/parameters/VnfLcmOpOccId'
+ get:
+ tags:
+ - VNF Instances
+ summary: Query information about an individual VNF LCM Operation Occurrence
+ description: Query information about an individual VNF LCM Operation Occurrence
+ responses:
+ 200:
+ $ref: '#/components/responses/IndividualVnfLcmOpOcc.Get.200'
+ 400:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/400'
+ 401:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/401'
+ 403:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/403'
+ 404:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/404'
+ 405:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/405'
+ 406:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/406'
+ 409:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/409'
+ 422:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/422'
+ 500:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/500'
+ 503:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/503'
+ 5XX:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+ default:
+ $ref: '../responses/SOL003_resp.yaml#/components/responses/UnexpectedError'
+
+components:
+ parameters:
+ VnfInstanceId:
+ name: vnfInstanceId
+ in: path
+ required: true
+ description: Identifier of the VNF instance
+ schema:
+ type: string
+ VnfLcmOpOccId:
+ name: vnfLcmOpOccId
+ in: path
+ required: true
+ description: |
+ Identifier of the VNF lifecycle management operation occurrence
+ schema:
+ type: string
+
+ responses:
+ VNFInstances.Get.200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ArrayOfVnfInstance'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ArrayOfVnfInstance'
+ VNFInstances.Post.201:
+ description: Created
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ IndividualVnfInstance.Get.200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance'
+ InstantiateVnfInstance.Post.202:
+ description: Accepted
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ ScaleVnfInstance.Post.202:
+ description: Accepted
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ TerminateVnfInstance.Post.202:
+ description: Accepted
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ObjectId'
+ VnfLcmOpOccs.Get.200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ArrayOfVnfLcmOpOcc'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ArrayOfVnfLcmOpOcc'
+ IndividualVnfLcmOpOcc.Get.200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc'
+ application/yaml:
+ schema:
+ $ref: './definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc'
--- /dev/null
+definitions:
+ ObjectId:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ VnfInstance:
+ description: VNF Instance Information
+ type: object
+ properties:
+ id:
+ description: Identifier of the VNF instance.
+ type: string
+ format: uuid
+ name:
+ description: Human readable name of the VNF instance.
+ type: string
+ description:
+ description: Human readable description of the VNF instance.
+ type: string
+ required:
+ - id
+ - name
+ ArrayOfVnfInstance:
+ type: array
+ items:
+ $ref: '#/definitions/VnfInstance'
+ CreateVnfRequest:
+ type: object
+ properties:
+ vnfdId:
+ description: Identifier of the VNFD that defines the VNF instance to be created.
+ type: string
+ vnfInstanceName:
+ description: Human-readable name of the VNF instance to be created.
+ type: string
+ vnfInstanceDescription:
+ type: string
+ nullable: true
+ vimAccountId:
+ description: >-
+ Identifier of the VIM Account where the VNF instance shall be
+ created.
+ type: string
+ format: uuid
+ additionalParams:
+ type: object
+ properties:
+ virtual-link-desc:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ mgmt-network:
+ type: boolean
+ constituent-cpd-id:
+ type: string
+ virtual-link-profile-id:
+ type: string
+ required:
+ - vnfdId
+ - vnfInstanceName
+ - vimAccountId
+ additionalProperties: false
+ InstantiateVnfRequest:
+ type: object
+ properties:
+ vnfId:
+ description: Identifier of the VNFD
+ type: string
+ vnfName:
+ description: Human-readable name of the VNF instance
+ type: string
+ vnfDescription:
+ type: string
+ nullable: true
+ vimAccountId:
+ description: >-
+ Identifier of the VIM Account where the VNF instance shall be
+ created.
+ type: string
+ format: uuid
+ required:
+ - vnfId
+ - vnfName
+ - vimAccountId
+ additionalProperties: false
+ ScaleVnfRequest:
+ type: object
+ properties:
+ type:
+ description: >
+ Indicates the type of the scale operation requested.
+ Permitted values:
+ * SCALE_OUT: adding additional VNFC instances to the VNF to increase
+ capacity
+ * SCALE_IN: removing VNFC instances from the VNF in order to release
+ unused capacity.
+ type: string
+ enum:
+ - SCALE_OUT
+ - SCALE_IN
+ aspectId:
+ description: >
+ Identifier of the scaling aspect.
+ type: string
+ numberOfSteps:
+ description: >
+ Number of scaling steps to be executed as part of this Scale VNF
+ operation. It shall be a positive number and the default value
+ shall be 1.
+ type: integer
+ default: 1
+ additionalParams:
+ type: object
+ properties:
+ member-vnf-index:
+ type: string
+ required:
+ - member-vnf-index
+ required:
+ - type
+ - aspectId
+ - numberOfSteps
+ additionalProperties: false
+ TerminateVnfRequest:
+ type: object
+ properties:
+ terminationType:
+ type: string
+ enum:
+ - GRACEFUL
+ - FORCEFUL
+ gracefulTerminationTimeout:
+ type: integer
+ additionalProperties: false
+ VnfLcmOpOcc:
+ type: object
+ properties:
+ _id:
+ type: string
+ format: uuid
+ id:
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ vnfInstanceId:
+ type: string
+ format: uuid
+ isAutomaticInvocation:
+ type: boolean
+ isCancelPending:
+ type: boolean
+ startTime:
+ type: number
+ format: float
+ statusEnteredTime:
+ type: number
+ format: float
+ operationState:
+ type: string
+ detailed-status:
+ type: string
+ _links:
+ type: object
+ properties:
+ self:
+ type: string
+ format: path
+ vnfInstance:
+ type: string
+ format: path
+ ArrayOfVnfLcmOpOcc:
+ type: array
+ items:
+ $ref: '#/definitions/VnfLcmOpOcc'
\ No newline at end of file
--- /dev/null
+components:
+ parameters:
+ Version:
+ name: Version
+ description: >
+ Version of the API requested to use when responding to this request.
+ in: header
+ required: true
+ schema:
+ type: string
+
+ Accept:
+ name: Accept
+ description: >
+ Content-Types that are acceptable for the response. Reference: IETF RFC 7231.
+ in: header
+ required: true
+ schema:
+ type: string
+
+ Authorization:
+ name: Authorization
+ description: >
+ The authorization token for the request. Reference: IETF RFC 7235.
+ in: header
+ required: false
+ schema:
+ type: string
+
+ ContentType:
+ name: Content-Type
+ description: |
+ The MIME type of the body of the request. Reference: IETF RFC 7231
+ in: header
+ required: true
+ schema:
+ type: string
+
+ filter:
+ name: filter
+ description: >
+ Attribute-based filtering expression according to clause 5.2 of ETSI
+ GS NFV-SOL 013. The VNFM shall support
+ receiving this parameter as part of the URI query string. The API
+ consumer may supply this parameter. All attribute names that appear
+ in the FmSubscription and in data types referenced from it shall be
+ supported by the NFV-MANO functional entity in the filter
+ expression.
+ in: query
+ required: false
+ schema:
+ type: string
+
+ all_fields:
+ name: all_fields
+ description: >
+ Include all complex attributes in the response. See clause
+ 5.3 of ETSI GS NFV-SOL 013. The NFV-MANO functional entity
+ shall support this parameter.
+ in: query
+ required: false
+ schema:
+ type: string
+
+ fields:
+ name: fields
+ description: >
+ Complex attributes to be included into the response. See clause
+ 5.3 of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional
+ entity should support this parameter.
+ in: query
+ required: false
+ schema:
+ type: string
+
+ exclude_fields:
+ name: exclude_fields
+ description: >
+ Complex attributes to be excluded from the response. See clause
+ 5.3 of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional
+ entity should support this parameter.
+ in: query
+ required: false
+ schema:
+ type: string
+
+ exclude_default:
+ name: exclude_default
+ in: query
+ description: >-
+ Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV-SOL 013
+ for details. The VNFM shall support this parameter.
+ The following attributes shall be excluded from the VnfLcmOpOcc structure in the response
+ body if this parameter is provided, or none of the parameters "all_fields," "fields",
+ "exclude_fields", "exclude_default" are provided:
+ - operationParams
+ - error
+ - resourceChanges
+ - changedInfo
+ - changedExtConnectivity
+ - lcmCoordinations
+ - modificationsTriggeredByVnfPkgChange
+ - warnings
+ required: false
+ schema:
+ type: string
+
+ nextpage_opaque_marker:
+ name: nextpage_opaque_marker
+ description: >
+ Marker to obtain the next page of a paged response. Shall be supported by
+ the VNFM if the entity supports alternative 2 (paging)
+ according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource.
+ in: query
+ required: false
+ schema:
+ type: string
--- /dev/null
+definitions:\r
+ ProblemDetails:\r
+ type: object\r
+ properties:\r
+ type:\r
+ type: string\r
+ format: uri\r
+ title:\r
+ type: string\r
+ status:\r
+ type: integer\r
+ detail:\r
+ type: string\r
+ instance:\r
+ type: string\r
+ format: uri\r
+ additionalProperties: true\r
+ required:\r
+ - status\r
+ - detail
\ No newline at end of file
--- /dev/null
+components:
+ responses:
+ 204:
+ description: >
+ 204 No Content
+ headers:
+ Content-Type:
+ description: >
+ The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ Content-Range:
+ description: >
+ The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+
+ 206:
+ description: >
+ 206 PARTIAL CONTENT
+ headers:
+ Content-Type:
+ description: >
+ The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ Content-Range:
+ description: >
+ The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 303:
+ description: >
+ 303 See Other
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+
+ 400:
+ description: >
+ 400 BAD REQUEST
+
+ 400 code can be returned in the following specified cases, the specific cause has to be proper specified in the
+ "ProblemDetails" structure to be returned.
+
+ If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect
+ query parameters or the payload body contains a syntactically incorrect data structure),
+ the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided,
+ and should include in the "detail" attribute more information about the source of the problem.
+
+ If the response to a GET request which queries a container resource would be so big that the performance
+ of the API producer is adversely affected, and the API producer does not support paging for the affected resource,
+ it shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include
+ in the "detail" attribute more information about the source of the problem.
+
+ If there is an application error related to the client's input that cannot be easily mapped to any other
+ HTTP response code ("catch all error"), the API producer shall respond with this response code.
+ The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information
+ about the source of the problem.
+
+ If the request contains a malformed access token, the API producer should respond with this response.
+ The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750
+ and IETF RFC 7235. The ProblemDetails structure may be provided.
+
+ The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0
+ for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 401:
+ description: >
+ 401 UNAUTHORIZED
+
+ If the request contains no access token even though one is required, or if the request contains an authorization
+ token that is invalid (e.g. expired or revoked), the API producer should respond with this response.
+ The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750
+ and IETF RFC 7235. The ProblemDetails structure may be provided.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 403:
+ description: >
+ 403 FORBIDDEN
+
+ If the API consumer is not allowed to perform a particular request to a particular resource,
+ the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.
+ It should include in the "detail" attribute information about the source of the problem,
+ and may indicate how to solve it.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 404:
+ description: >
+ 404 NOT FOUND
+
+ If the API producer did not find a current representation for the resource addressed by the URI passed
+ in the request or is not willing to disclose that one exists, it shall respond with this response code.
+ The "ProblemDetails" structure may be provided, including in the "detail" attribute information about
+ the source of the problem, e.g. a wrong resource URI variable.
+
+ This response code is not appropriate in case the resource addressed by the URI is a container resource
+ which is designed to contain child resources, but does not contain any child resource at the time
+ the request is received. For a GET request to an existing empty container resource, a typical response
+ contains a 200 OK response code and a payload body with an empty array.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 405:
+ description: >
+ 405 METHOD NOT ALLOWED
+
+ If a particular HTTP method is not supported for a particular resource, the API producer shall respond
+ with this response code. The "ProblemDetails" structure may be omitted.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 406:
+ description: >
+ 406 NOT ACCEPTABLE
+
+ If the "Accept" HTTP header does not contain at least one name of a content type
+ that is acceptable to the API producer, the API producer shall respond with this
+ response code. The "ProblemDetails" structure may be omitted.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 409:
+ description: >
+ 409 CONFLICT
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 412:
+ description: >
+ 412 PRECONDITION FAILED
+
+ Error: A precondition given in an HTTP request header is not fulfilled.
+ Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity.
+ The response body should contain a ProblemDetails structure, in which the "detail" attribute should convey
+ more information about the error.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 413:
+ description: >
+ 413 PAYLOAD TOO LARGE
+
+ If the payload body of a request is larger than the amount of data the API producer is willing or able to process,
+ it shall respond with this response code, following the provisions in IETF RFC 7231 for the use
+ of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be omitted.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 414:
+ description: >
+ 414 URI TOO LONG
+
+ If the request URI of a request is longer than the API producer is willing or able to process,
+ it shall respond with this response code. This condition can e.g. be caused by passing long queries
+ in the request URI of a GET request. The "ProblemDetails" structure may be omitted.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 416:
+ description: >
+ 416 Range Not Satisfiable
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 422:
+ description: >
+ 422 UNPROCESSABLE ENTITY
+
+ If the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data
+ cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond
+ with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail"
+ attribute more information about the source of the problem.
+
+ This error response code is only applicable for methods that have a request body.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 429:
+ description: >
+ 429 TOO MANY REQUESTS
+
+ If the API consumer has sent too many requests in a defined period of time and the API producer is able
+ to detect that condition ("rate limiting"), the API producer shall respond with this response code,
+ following the provisions in IETF RFC 6585 [17] for the use of the "Retry-After" HTTP header.
+ The "ProblemDetails" structure shall be provided and shall include in the "detail" attribute more information
+ about the source of the problem.
+
+ The period of time and allowed number of requests are configured within the API producer by means
+ outside the scope of the present document.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 500:
+ description: >
+ 500 INTERNAL SERVER ERROR
+
+ If there is an application error not related to the client's input that cannot be easily mapped to any other
+ HTTP response code ("catch all error"), the API producer shall respond with this response code.
+ The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information
+ about the source of the problem.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 503:
+ description: >
+ 503 SERVICE UNAVAILABLE
+
+ If the API producer encounters an internal overload situation of itself or of a system it relies on,
+ it should respond with this response code, following the provisions in IETF RFC 7231 for the use of
+ the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails"
+ structure may be omitted.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ 504:
+ description: >
+ 504 GATEWAY TIMEOUT
+
+ If the API producer encounters a timeout while waiting for a response from an upstream server
+ (i.e. a server that the API producer communicates with when fulfilling a request), it should respond
+ with this response code.
+ headers:
+ Content-Type:
+ description: The MIME type of the body of the response.
+ schema:
+ type: string
+ maximum: 1
+ minimum: 1
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"
+
+ UnexpectedError:
+ description: Unexpected error.
+ content:
+ application/json:
+ schema:
+ $ref: "../definitions/SOL003_def.yaml#/definitions/ProblemDetails"