X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm-openapi.yaml;h=a7f57be579afc71e13243e8239abeff35fab62d9;hb=b5a065ff1d8cf5b3f6a2e515a3a242d04a07116e;hp=24120ea3338fe5b5b7c786ee3249039baf113bc4;hpb=fb52ade9ce618c2f68455c7b5dbf816628dcd688;p=osm%2FSOL005.git diff --git a/osm-openapi.yaml b/osm-openapi.yaml index 24120ea..a7f57be 100644 --- a/osm-openapi.yaml +++ b/osm-openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 servers: - description: OSM NB API - url: https://osm.etsi.org/nbapi/v1.0.0 + url: 'https://osm.etsi.org/nbapi/v1.0.0' info: description: | @@ -29,12 +29,20 @@ tags: description: Management operations of NetSlice Templates - name: 'NetSlice instances' description: Management operations of NetSlice Instances -# - name: 'NSPM' -# description: Management operations of NSPMs -# - name: 'PDU' -# description: Management operations of PDUs -# - name: 'Admin' -# description: Management operations of Administration items + - name: 'NS Performance Management' + description: Management operations related to Performance Mangement of NS instances + - name: 'Physical Data Units (PDU)' + description: Management operations of PDUs + - name: 'Authentication' + description: Authentication operations + - name: 'Identity' + description: Management operations of users, projects and roles + - name: 'Infrastructure' + description: Management operations of VIM, VIM accounts, WIM and SDN controllers + - name: 'Repositories' + description: Management operations of repositories + - name: 'Admin' + description: Management operations of Administration items security: - bearerAuth: [] @@ -137,7 +145,7 @@ paths: required: true description: NSD Info ID schema: - type : string + type: string get: tags: - "NS packages" @@ -253,7 +261,7 @@ paths: required: true description: NSD Info ID schema: - type : string + type: string get: tags: - "NS packages" @@ -345,13 +353,13 @@ paths: required: true description: NS Package ID schema: - type : string + type: string - name: artifactPath in: path required: true description: Artifact Path schema: - type : string + type: string get: tags: - "NS packages" @@ -408,7 +416,7 @@ paths: required: true description: NS Package ID schema: - type : string + type: string get: tags: - "NS packages" @@ -559,7 +567,7 @@ paths: required: true description: NS Package ID schema: - type : string + type: string get: tags: - "NS packages" @@ -766,7 +774,7 @@ paths: required: true description: VNF Package ID schema: - type : string + type: string get: tags: - "VNF packages" @@ -882,7 +890,7 @@ paths: required: true description: VNF Package ID schema: - type : string + type: string get: tags: - "VNF packages" @@ -927,7 +935,7 @@ paths: required: true description: VNF Package ID schema: - type : string + type: string get: tags: - "VNF packages" @@ -1022,13 +1030,13 @@ paths: required: true description: VNF Package ID schema: - type : string + type: string - name: artifactPath in: path required: true description: Artifact Path schema: - type : string + type: string get: tags: - "VNF packages" @@ -1191,7 +1199,7 @@ paths: required: true description: VNF Package Content ID schema: - type : string + type: string get: tags: - "VNF packages" @@ -1351,7 +1359,7 @@ paths: description: Create a new NS instance resource operationId: addNSinstance requestBody: - $ref: '#/components/requestBodies/CreateNsRequest' + $ref: '#/components/requestBodies/InstantiateNsRequest' responses: '201': description: Created @@ -1398,7 +1406,13 @@ paths: required: true description: NS Instance ID schema: - type : string + type: string + - name: vcaStatusRefresh + in: query + required: false + description: Set to true if vca status needs to be refreshed. + schema: + type: boolean get: tags: - "NS instances" @@ -1479,7 +1493,7 @@ paths: required: true description: NS Instance ID schema: - type : string + type: string post: tags: - "NS instances" @@ -1542,7 +1556,7 @@ paths: required: true description: NS Instance ID schema: - type : string + type: string post: tags: - "NS instances" @@ -1591,6 +1605,62 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' + '/nslcm/v1/ns_instances/{nsInstanceId}/heal': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Heal a NS instance + description: | + Heal a NS instance. The precondition is that the NS instance must have + been created and must be in INSTANTIATED state. As a result of the + success of this operation, the NFVO creates a "NS Lifecycle Operation + Occurrence" resource for the request, and the NS instance state remains + INSTANTIATED. + operationId: healNSinstance + requestBody: + $ref: '#/components/requestBodies/HealNsRequest' + responses: + '202': + description: Accepted + headers: + Location: + description: | + It must point to the new "NS Lifecycle Operation Occurrence" + resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" + schema: + type: string + format: uri + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' '/nslcm/v1/ns_instances/{nsInstanceId}/terminate': parameters: - name: nsInstanceId @@ -1598,7 +1668,7 @@ paths: required: true description: NS Instance ID schema: - type : string + type: string post: tags: - "NS instances" @@ -1662,7 +1732,7 @@ paths: required: true description: NS Instance ID schema: - type : string + type: string post: tags: - "NS instances" @@ -1769,7 +1839,7 @@ paths: description: Create a new NS instance operationId: createNSinstanceContent requestBody: - $ref: '#/components/requestBodies/CreateNSinstanceContentRequest' + $ref: '#/components/requestBodies/InstantiateNsRequest' responses: '201': description: Created @@ -1816,7 +1886,7 @@ paths: required: true description: NS Instance Content ID schema: - type : string + type: string get: tags: - "NS instances" @@ -1947,7 +2017,7 @@ paths: required: true description: NS LCM Operation Occurrence ID schema: - type : string + type: string get: tags: - "NS instances" @@ -2036,7 +2106,7 @@ paths: required: true description: VNF Instance ID schema: - type : string + type: string get: tags: - "NS instances" @@ -2077,26 +2147,23 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' -# END NS Instances - -# BEGIN NetSlice Templates - '/nst/v1/netslice_templates': + '/nslcm/v1/subscriptions': get: tags: - - "NetSlice templates" - summary: Query information about multiple NetSlice template resources - description: Query information about multiple NetSlice template resources - operationId: getNSTs + - NS instances + summary: Query information about multiple NS instance subscription + description: Query information about multiple NS instance subscription + operationId: getNsSubcriptions responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/ArrayOfNstInfo' + $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo' application/yaml: schema: - $ref: '#/components/schemas/ArrayOfNstInfo' + $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2117,33 +2184,32 @@ paths: $ref: '#/components/responses/InternalServerError' '503': $ref: '#/components/responses/ServiceUnavailable' - '5XX': + 5XX: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' post: tags: - - "NetSlice templates" - summary: Create a new NetSlice template resource - description: Create a new NetSlice template resource - operationId: addNST + - NS instances + summary: Create a new subscription for the Network service + description: Create a new subscription for the Network service + operationId: addNsSubcriptions requestBody: - $ref: '#/components/requestBodies/CreateNstInfoRequest' + $ref: '#/components/requestBodies/NslcmSubscriptionRequest' responses: '201': description: Created headers: Location: schema: - type: string - format: uri + type: object content: application/json: schema: - $ref: '#/components/schemas/ObjectId' + $ref: '#/components/schemas/NslcmSubscriptionResponse' application/yaml: schema: - $ref: '#/components/schemas/ObjectId' + $ref: '#/components/schemas/NslcmSubscriptionResponse' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2164,34 +2230,34 @@ paths: $ref: '#/components/responses/InternalServerError' '503': $ref: '#/components/responses/ServiceUnavailable' - '5XX': + 5XX: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nst/v1/netslice_templates/{netsliceTemplateId}': + '/nslcm/v1/subscriptions/{nsSubscriptionsId}': parameters: - - name: netsliceTemplateId + - name: nsSubscriptionsId in: path required: true - description: NetSlice Template ID + description: Network Service Subscription ID schema: - type : string + type: string get: tags: - - "NetSlice templates" - summary: Read information about an individual NetSlice template resource - description: Read information about an individual NetSlice template resource - operationId: getNST + - NS instances + summary: Read information about an individual Network Service Subscription + description: Read information about an individual Network Service Subscription + operationId: getNsSubcriptionId responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/NstInfo' + $ref: '#/components/schemas/NslcmSubscriptionInfo' application/yaml: schema: - $ref: '#/components/schemas/NstInfo' + $ref: '#/components/schemas/NslcmSubscriptionInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2212,16 +2278,16 @@ paths: $ref: '#/components/responses/InternalServerError' '503': $ref: '#/components/responses/ServiceUnavailable' - '5XX': + 5XX: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' delete: tags: - - "NetSlice templates" - summary: Delete an individual NetSlice template resource - description: Delete an individual NetSlice template resource - operationId: deleteNST + - NS instances + summary: Delete an individual Network Service Subscription + description: Delete an individual Network Service Subscription + operationId: deleteNsSubcriptionId responses: '204': description: No Content @@ -2245,49 +2311,30 @@ paths: $ref: '#/components/responses/InternalServerError' '503': $ref: '#/components/responses/ServiceUnavailable' - '5XX': + 5XX: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nst/v1/netslice_templates/{netsliceTemplateId}/artifacts/{artifactPath}': - parameters: - - name: netsliceTemplateId - in: path - required: true - description: NetSlice Template ID - schema: - type : string - - name: artifactPath - in: path - required: true - description: Artifact Path - schema: - type : string +# END NS Instances + +# BEGIN Alarms + '/nsfm/v1/alarms': get: tags: - - "NetSlice templates" - summary: Fetch individual NetSlice Template artifact - description: Fetch individual NetSlice Template artifact - operationId: getNstArtifact + - "Alarms" + summary: Query information about multiple alarms + description: Query information about multiple alarms + operationId: getAlarms responses: '200': description: OK content: - application/octet-stream: - schema: - type: string - format: binary - '206': - description: Partial Content - headers: - Content-Range: + application/json: schema: - type: string - content: - application/octet-stream: + $ref: '#/components/schemas/ArrayOfAlarm' + application/yaml: schema: - type: string - format: binary + $ref: '#/components/schemas/ArrayOfAlarm' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2312,27 +2359,30 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nst/v1/netslice_templates/{netsliceTemplateId}/nst': + '/nsfm/v1/alarms/{uuid}': parameters: - - name: netsliceTemplateId + - name: uuid in: path required: true - description: NetSlice Template ID + description: Alarm UUID schema: - type : string + type: string get: tags: - - "NetSlice templates" - summary: Read NST of an on-boarded NetSlice Template - description: Read NST of an on-boarded NetSlice Template - operationId: getNstNst + - "Alarms" + summary: Read an individual Alarm + description: Read an individual Alarm + operationId: getAlarm responses: '200': description: OK content: - text/plain: + application/json: schema: - $ref: '#/components/schemas/NetSliceTemplate' + $ref: '#/components/schemas/Alarm' + application/yaml: + schema: + $ref: '#/components/schemas/Alarm' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2357,37 +2407,17 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nst/v1/netslice_templates/{netsliceTemplateId}/nst_content': - parameters: - - name: netsliceTemplateId - in: path - required: true - description: NetSlice Template ID - schema: - type : string - get: + patch: tags: - - "NetSlice templates" - summary: Fetch the content of a NST - description: Fetch the content of a NST - operationId: getNSTcontent + - "Alarms" + summary: Modify the data of an individual Alarm + description: Modify the data of an individual Alarm + operationId: updateAlarm + requestBody: + $ref: '#/components/requestBodies/AlarmInfoModifications' responses: - '200': - description: OK - content: - application/zip: - schema: - $ref: '#/components/schemas/NetSlicePackage' - '206': - description: Partial Content - headers: - Content-Range: - schema: - type: string - content: - application/zip: - schema: - $ref: '#/components/schemas/NetSlicePackage' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -2412,19 +2442,26 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - put: +# END Alarms + +# BEGIN NetSlice Templates + '/nst/v1/netslice_templates': + get: tags: - "NetSlice templates" - summary: Upload the content of a NST - description: Upload the content of a NST - operationId: updateNSTcontent - requestBody: - $ref: '#/components/requestBodies/NetSlicePackage' + summary: Query information about multiple NetSlice template resources + description: Query information about multiple NetSlice template resources + operationId: getNSTs responses: - '202': - description: Accepted - '204': - description: No Content + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNstInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNstInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2449,18 +2486,14 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nst/v1/netslice_templates_content': post: tags: - "NetSlice templates" - summary: Upload a NetSlice package by providing the content of the NetSlice package - description: Upload a NetSlice package by providing the content of the NetSlice package - operationId: uploadNstContent + summary: Create a new NetSlice template resource + description: Create a new NetSlice template resource + operationId: addNST requestBody: - content: - application/zip: - schema: - $ref: '#/components/schemas/NetSlicePackage' + $ref: '#/components/requestBodies/CreateNstInfoRequest' responses: '201': description: Created @@ -2476,10 +2509,6 @@ paths: application/yaml: schema: $ref: '#/components/schemas/ObjectId' - '202': - description: Accepted - '204': - description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -2504,33 +2533,30 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' + '/nst/v1/netslice_templates/{netsliceTemplateId}': + parameters: + - name: netsliceTemplateId + in: path + required: true + description: NetSlice Template ID + schema: + type: string get: tags: - "NetSlice templates" - summary: Query information about multiple NetSlice Template resources - description: Query information about multiple NetSlice Template resources - operationId: getNstContent + summary: Read information about an individual NetSlice template resource + description: Read information about an individual NetSlice template resource + operationId: getNST responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/ArrayOfNstInfo' + $ref: '#/components/schemas/NstInfo' application/yaml: schema: - $ref: '#/components/schemas/ArrayOfNstInfo' - '206': - description: Partial Content - headers: - Content-Range: - schema: - type: string - content: - application/octet-stream: - schema: - type: string - format: binary + $ref: '#/components/schemas/NstInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2555,30 +2581,78 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nst/v1/netslice_templates_content/{netsliceTemplateContentId}': + delete: + tags: + - "NetSlice templates" + summary: Delete an individual NetSlice template resource + description: Delete an individual NetSlice template resource + operationId: deleteNST + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/nst/v1/netslice_templates/{netsliceTemplateId}/artifacts/{artifactPath}': parameters: - - name: netsliceTemplateContentId + - name: netsliceTemplateId in: path required: true description: NetSlice Template ID schema: - type : string + type: string + - name: artifactPath + in: path + required: true + description: Artifact Path + schema: + type: string get: tags: - "NetSlice templates" - summary: Read information about an individual NetSlice Template resource - description: Read information about an individual NetSlice Template resource - operationId: getNstIdContent + summary: Fetch individual NetSlice Template artifact + description: Fetch individual NetSlice Template artifact + operationId: getNstArtifact responses: '200': description: OK content: - application/json: + application/octet-stream: schema: - $ref: '#/components/schemas/NstInfo' - application/yaml: + type: string + format: binary + '206': + description: Partial Content + headers: + Content-Range: schema: - $ref: '#/components/schemas/NstInfo' + type: string + content: + application/octet-stream: + schema: + type: string + format: binary '400': $ref: '#/components/responses/BadRequest' '401': @@ -2603,17 +2677,27 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - put: + '/nst/v1/netslice_templates/{netsliceTemplateId}/nst': + parameters: + - name: netsliceTemplateId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + get: tags: - "NetSlice templates" - summary: Modify an individual NetSlice Template resource - description: Modify an individual NetSlice Template resource - operationId: updateNstIdContent - requestBody: - $ref: '#/components/requestBodies/NstInfoModifications' + summary: Read NST of an on-boarded NetSlice Template + description: Read NST of an on-boarded NetSlice Template + operationId: getNstNst responses: - '204': - description: No Content + '200': + description: OK + content: + text/plain: + schema: + $ref: '#/components/schemas/NetSliceTemplate' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2638,15 +2722,37 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - delete: + '/nst/v1/netslice_templates/{netsliceTemplateId}/nst_content': + parameters: + - name: netsliceTemplateId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + get: tags: - "NetSlice templates" - summary: Delete an individual NetSlice Template resource - description: Delete an individual NetSlice Template resource - operationId: deleteNstIdContent + summary: Fetch the content of a NST + description: Fetch the content of a NST + operationId: getNSTcontent responses: - '204': - description: No Content + '200': + description: OK + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' + '206': + description: Partial Content + headers: + Content-Range: + schema: + type: string + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2671,26 +2777,19 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' -# END NetSlice Templates - -# BEGIN NetSlice Instances - '/nsilcm/v1/netslice_instances': - get: + put: tags: - - "NetSlice instances" - summary: Query information about multiple NetSlice instances - description: Query information about multiple NetSlice isntances - operationId: getNSIs + - "NetSlice templates" + summary: Upload the content of a NST + description: Upload the content of a NST + operationId: updateNSTcontent + requestBody: + $ref: '#/components/requestBodies/NetSlicePackage' responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ArrayOfNetSliceInstance' - application/yaml: - schema: - $ref: '#/components/schemas/ArrayOfNetSliceInstance' + '202': + description: Accepted + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -2715,14 +2814,18 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' + '/nst/v1/netslice_templates_content': post: tags: - - "NetSlice instances" - summary: Create a new NetSlice instance resource - description: Create a new NetSlice instance resource - operationId: addNSI + - "NetSlice templates" + summary: Upload a NetSlice package by providing the content of the NetSlice package + description: Upload a NetSlice package by providing the content of the NetSlice package + operationId: uploadNstContent requestBody: - $ref: '#/components/requestBodies/CreateNsiRequest' + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' responses: '201': description: Created @@ -2738,6 +2841,10 @@ paths: application/yaml: schema: $ref: '#/components/schemas/ObjectId' + '202': + description: Accepted + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -2762,30 +2869,33 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/netslice_instances/{netsliceInstanceId}': - parameters: - - name: netsliceInstanceId - in: path - required: true - description: NetSlice Instance ID - schema: - type : string get: tags: - - "NetSlice instances" - summary: Read an individual NetSlice instance resource - description: Read an individual NetSlice instance resource - operationId: getNSI + - "NetSlice templates" + summary: Query information about multiple NetSlice Template resources + description: Query information about multiple NetSlice Template resources + operationId: getNstContent responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/NetSliceInstance' + $ref: '#/components/schemas/ArrayOfNstInfo' application/yaml: schema: - $ref: '#/components/schemas/NetSliceInstance' + $ref: '#/components/schemas/ArrayOfNstInfo' + '206': + description: Partial Content + headers: + Content-Range: + schema: + type: string + content: + application/octet-stream: + schema: + type: string + format: binary '400': $ref: '#/components/responses/BadRequest' '401': @@ -2810,15 +2920,30 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - delete: + '/nst/v1/netslice_templates_content/{netsliceTemplateContentId}': + parameters: + - name: netsliceTemplateContentId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + get: tags: - - "NetSlice instances" - summary: Delete an individual NetSlice instance resource - description: Delete an individual NetSlice instance resource - operationId: deleteNSI + - "NetSlice templates" + summary: Read information about an individual NetSlice Template resource + description: Read information about an individual NetSlice Template resource + operationId: getNstIdContent responses: - '204': - description: No Content + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NstInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NstInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -2843,109 +2968,17 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/instantiate': - parameters: - - name: netsliceInstanceId - in: path - required: true - description: NetSlice Instance ID - schema: - type : string - post: + put: tags: - - "NetSlice instances" - summary: Instantiate a NetSlice - description: | - Instantiate a NetSlice. The precondition is that the NetSlice instance - must have been created and must be in NOT_INSTANTIATED state. As a result - of the success of this operation, the NFVO creates a "NetSlice Lifecycle - Operation Occurrence" resource for the request, and the NS instance state - becomes INSTANTIATED. - operationId: instantiateNSI - requestBody: - $ref: '#/components/requestBodies/InstantiateNsiRequest' - responses: - '202': - description: Accepted - headers: - Location: - description: | - It must point to the new "NetSlice Lifecycle Operation Occurrence" - resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}" - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/ObjectId' - application/yaml: - schema: - $ref: '#/components/schemas/ObjectId' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/MethodNotAllowed' - '406': - $ref: '#/components/responses/NotAcceptable' - '409': - $ref: '#/components/responses/Conflict' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' - '5XX': - $ref: '#/components/responses/UnexpectedError' - default: - $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/terminate': - parameters: - - name: netsliceInstanceId - in: path - required: true - description: NetSlice Instance ID - schema: - type : string - post: - tags: - - "NetSlice instances" - summary: Terminate a NetSlice instance - description: | - Terminate a NetSlice instance. The precondition is that the NetSlice instance - must have been created and must be in INSTANTIATED state. As a result of the - success of this operation, the NFVO creates a "NetSlice Lifecycle Operation - Occurrence" resource for the request, and the NetSlice instance state becomes - NOT_INSTANTIATED. - operationId: terminateNSI + - "NetSlice templates" + summary: Modify an individual NetSlice Template resource + description: Modify an individual NetSlice Template resource + operationId: updateNstIdContent requestBody: - # Request data is not required - $ref: '#/components/requestBodies/TerminateNsiRequest' + $ref: '#/components/requestBodies/NstInfoModifications' responses: - '202': - description: Accepted - headers: - Location: - description: | - It must point to the new "NetSlice Lifecycle Operation Occurrence" - resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}" - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/ObjectId' - application/yaml: - schema: - $ref: '#/components/schemas/ObjectId' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -2970,48 +3003,15 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/action': - parameters: - - name: netsliceInstanceId - in: path - required: true - description: NetSlice Instance ID - schema: - type : string - post: + delete: tags: - - "NetSlice instances" - summary: Execute an action on a NetSlice instance - description: | - Execute an action on a NetSlice instance. - The NetSlice instance must have been created and must be in INSTANTIATED state. - operationId: actionOnNSI - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NsiActionRequest' - application/yaml: - schema: - $ref: '#/components/schemas/NsiActionRequest' + - "NetSlice templates" + summary: Delete an individual NetSlice Template resource + description: Delete an individual NetSlice Template resource + operationId: deleteNstIdContent responses: - '202': - description: Accepted - headers: - Location: - description: | - It must point to the new "NS Lifecycle Operation Occurrence" - resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/ObjectId' - application/yaml: - schema: - $ref: '#/components/schemas/ObjectId' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -3036,13 +3036,16 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/netslice_instances_content': +# END NetSlice Templates + +# BEGIN NetSlice Instances + '/nsilcm/v1/netslice_instances': get: tags: - "NetSlice instances" summary: Query information about multiple NetSlice instances description: Query information about multiple NetSlice isntances - operationId: getNSIsContent + operationId: getNSIs responses: '200': description: OK @@ -3080,11 +3083,11 @@ paths: post: tags: - "NetSlice instances" - summary: Create a new NetSlice instance - description: Create a new NetSlice instance - operationId: createNSIContent + summary: Create a new NetSlice instance resource + description: Create a new NetSlice instance resource + operationId: addNSI requestBody: - $ref: '#/components/requestBodies/CreateNsiContentRequest' + $ref: '#/components/requestBodies/InstantiateNsiRequest' responses: '201': description: Created @@ -3096,10 +3099,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CreateNsiContentResponse' + $ref: '#/components/schemas/ObjectId' application/yaml: schema: - $ref: '#/components/schemas/CreateNsiContentResponse' + $ref: '#/components/schemas/ObjectId' '400': $ref: '#/components/responses/BadRequest' '401': @@ -3124,20 +3127,20 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/netslice_instances_content/{netsliceInstanceContentId}': + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}': parameters: - - name: netsliceInstanceContentId + - name: netsliceInstanceId in: path required: true - description: NetSlice Instance Content ID + description: NetSlice Instance ID schema: - type : string + type: string get: tags: - "NetSlice instances" summary: Read an individual NetSlice instance resource description: Read an individual NetSlice instance resource - operationId: getNSIContent + operationId: getNSI responses: '200': description: OK @@ -3175,19 +3178,10 @@ paths: delete: tags: - "NetSlice instances" - summary: Delete an individual NS instance resource - description: Delete an individual NS instance resource - operationId: deleteNSIContent + summary: Delete an individual NetSlice instance resource + description: Delete an individual NetSlice instance resource + operationId: deleteNSI responses: - '202': - description: Accepted - content: - application/json: - schema: - $ref: '#/components/schemas/ObjectId' - application/yaml: - schema: - $ref: '#/components/schemas/ObjectId' '204': description: No Content '400': @@ -3214,23 +3208,45 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/nsi_lcm_op_occs': - get: + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/instantiate': + parameters: + - name: netsliceInstanceId + in: path + required: true + description: NetSlice Instance ID + schema: + type: string + post: tags: - "NetSlice instances" - summary: Query information about multiple NetSlice LCM Operation Occurrences - description: Query information about multiple NetSlice LCM Operation Occurrences - operationId: getNsiLcmOpOccs + summary: Instantiate a NetSlice + description: | + Instantiate a NetSlice. The precondition is that the NetSlice instance + must have been created and must be in NOT_INSTANTIATED state. As a result + of the success of this operation, the NFVO creates a "NetSlice Lifecycle + Operation Occurrence" resource for the request, and the NS instance state + becomes INSTANTIATED. + operationId: instantiateNSI + requestBody: + $ref: '#/components/requestBodies/InstantiateNsiRequest' responses: - '200': - description: OK + '202': + description: Accepted + headers: + Location: + description: | + It must point to the new "NetSlice Lifecycle Operation Occurrence" + resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}" + schema: + type: string + format: uri content: application/json: schema: - $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc' + $ref: '#/components/schemas/ObjectId' application/yaml: schema: - $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc' + $ref: '#/components/schemas/ObjectId' '400': $ref: '#/components/responses/BadRequest' '401': @@ -3255,30 +3271,46 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nsilcm/v1/nsi_lcm_op_occs/{nsiLcmOpOccId}': + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/terminate': parameters: - - name: nsiLcmOpOccId + - name: netsliceInstanceId in: path required: true - description: NetSlice LCM Operation Occurrence ID + description: NetSlice Instance ID schema: - type : string - get: + type: string + post: tags: - "NetSlice instances" - summary: Query information about an individual NetSlice LCM Operation Occurrence - description: Query information about an individual NetSlice LCM Operation Occurrence - operationId: getNsiLcmOpOcc + summary: Terminate a NetSlice instance + description: | + Terminate a NetSlice instance. The precondition is that the NetSlice instance + must have been created and must be in INSTANTIATED state. As a result of the + success of this operation, the NFVO creates a "NetSlice Lifecycle Operation + Occurrence" resource for the request, and the NetSlice instance state becomes + NOT_INSTANTIATED. + operationId: terminateNSI + requestBody: + # Request data is not required + $ref: '#/components/requestBodies/TerminateNsiRequest' responses: - '200': - description: OK + '202': + description: Accepted + headers: + Location: + description: | + It must point to the new "NetSlice Lifecycle Operation Occurrence" + resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}" + schema: + type: string + format: uri content: application/json: schema: - $ref: '#/components/schemas/NsiLcmOpOcc' + $ref: '#/components/schemas/ObjectId' application/yaml: schema: - $ref: '#/components/schemas/NsiLcmOpOcc' + $ref: '#/components/schemas/ObjectId' '400': $ref: '#/components/responses/BadRequest' '401': @@ -3303,39 +3335,2900 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' -# END NetSlice Instances - + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/action': + parameters: + - name: netsliceInstanceId + in: path + required: true + description: NetSlice Instance ID + schema: + type: string + post: + tags: + - "NetSlice instances" + summary: Execute an action on a NetSlice instance + description: | + Execute an action on a NetSlice instance. + The NetSlice instance must have been created and must be in INSTANTIATED state. + operationId: actionOnNSI + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NsiActionRequest' + application/yaml: + schema: + $ref: '#/components/schemas/NsiActionRequest' + responses: + '202': + description: Accepted + headers: + Location: + description: | + It must point to the new "NS Lifecycle Operation Occurrence" + resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/nsilcm/v1/netslice_instances_content': + get: + tags: + - "NetSlice instances" + summary: Query information about multiple NetSlice instances + description: Query information about multiple NetSlice isntances + operationId: getNSIsContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNetSliceInstance' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNetSliceInstance' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "NetSlice instances" + summary: Create a new NetSlice instance + description: Create a new NetSlice instance + operationId: createNSIContent + requestBody: + $ref: '#/components/requestBodies/InstantiateNsiRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNsiContentResponse' + application/yaml: + schema: + $ref: '#/components/schemas/CreateNsiContentResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/nsilcm/v1/netslice_instances_content/{netsliceInstanceContentId}': + parameters: + - name: netsliceInstanceContentId + in: path + required: true + description: NetSlice Instance Content ID + schema: + type: string + get: + tags: + - "NetSlice instances" + summary: Read an individual NetSlice instance resource + description: Read an individual NetSlice instance resource + operationId: getNSIContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NetSliceInstance' + application/yaml: + schema: + $ref: '#/components/schemas/NetSliceInstance' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "NetSlice instances" + summary: Delete an individual NS instance resource + description: Delete an individual NS instance resource + operationId: deleteNSIContent + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/nsilcm/v1/nsi_lcm_op_occs': + get: + tags: + - "NetSlice instances" + summary: Query information about multiple NetSlice LCM Operation Occurrences + description: Query information about multiple NetSlice LCM Operation Occurrences + operationId: getNsiLcmOpOccs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/nsilcm/v1/nsi_lcm_op_occs/{nsiLcmOpOccId}': + parameters: + - name: nsiLcmOpOccId + in: path + required: true + description: NetSlice LCM Operation Occurrence ID + schema: + type: string + get: + tags: + - "NetSlice instances" + summary: Query information about an individual NetSlice LCM Operation Occurrence + description: Query information about an individual NetSlice LCM Operation Occurrence + operationId: getNsiLcmOpOcc + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NsiLcmOpOcc' + application/yaml: + schema: + $ref: '#/components/schemas/NsiLcmOpOcc' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' +# END NetSlice Instances + # BEGIN NSPM - # /nspm/v1/pm_jobs/{pmJobId}/reports/{reportId} + '/nspm/v1/pm_jobs/{pmJobId}/reports/{nsId}': + parameters: + - name: pmJobId + in: path + required: true + description: NS PM Job ID + schema: + type: string + - name: nsId + in: path + required: true + description: NS ID + schema: + type: string + get: + tags: + - "NS Performance Management" + summary: Query information about an individual NS PM Job Report + description: Query information about an individual NS PM Job Report + operationId: getNsPmJobReport + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NsPmJobReportInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NsPmJobReportInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' # END NSPM # BEGIN PDU - # /pdu/v1/pdu_descriptors - # /pdu/v1/pdu_descriptors/{pduDescriptorId} + '/pdu/v1/pdu_descriptors': + get: + tags: + - "Physical Data Units (PDU)" + summary: Query information about multiple PDU Descriptors + description: Query information about multiple PDU Descriptors + operationId: getPDUs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfPduInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfPduInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Physical Data Units (PDU)" + summary: Create a new PDU + description: Create a new PDU Descriptor + operationId: createPDU + requestBody: + $ref: '#/components/requestBodies/CreatePduRequest' + responses: + '200': + description: OK + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/pdu/v1/pdu_descriptors/{pduDescriptorId}': + parameters: + - name: pduDescriptorId + in: path + required: true + description: PDU Descriptor ID + schema: + type: string + get: + tags: + - "Physical Data Units (PDU)" + summary: Query information about an individual PDU Descriptor + description: Query information about an individual PDU Descriptor + operationId: getPDU + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PduInfo' + application/yaml: + schema: + $ref: '#/components/schemas/PduInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Physical Data Units (PDU)" + summary: Modify an individual PDU Descriptor + description: Modify an individual PDU Descriptor + operationId: editPDU + requestBody: + $ref: '#/components/requestBodies/EditPduRequest' + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Physical Data Units (PDU)" + summary: Delete an individual PDU Descriptor + description: Delete an individual PDU Descriptor + operationId: deletePDU + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' # END PDU # BEGIN Admin - # /admin/v1/tokens - # /admin/v1/tokens/{tokenId} - # /admin/v1/users - # /admin/v1/users/{userId} - # /admin/v1/projects - # /admin/v1/projects/{projectId} - # /admin/v1/roles - # /admin/v1/roles/{roleId} - # /admin/v1/vims - # /admin/v1/vims/{vimId} - # /admin/v1/vim_accounts - # /admin/v1/vim_accounts/{vimAccountId} - # /admin/v1/wim_accounts - # /admin/v1/wim_accounts/{wimAccountId} - # /admin/v1/sdns - # /admin/v1/sdns/{sdnId} + '/admin/v1/tokens': + get: + tags: + - "Authentication" + - "Admin" + summary: Query information about multiple Tokens + description: Query information about multiple Tokens + operationId: getTokens + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfTokenInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfTokenInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Authentication" + - "Admin" + summary: Request a new Token + description: Request a new Token + operationId: createToken + requestBody: + $ref: '#/components/requestBodies/CreateTokenRequest' + responses: + '200': + description: OK + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/TokenInfo' + application/yaml: + schema: + $ref: '#/components/schemas/TokenInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Authentication" + - "Admin" + summary: Delete the Token indicated in the Authorization Header + description: Delete the Token indicated in the Authorization Header + operationId: deleteAuthToken + responses: + '200': + description: OK + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/tokens/{tokenId}': + parameters: + - name: tokenId + in: path + required: true + description: Token ID + schema: + type: string + get: + tags: + - "Authentication" + - "Admin" + summary: Query information about an individual Token + description: Query information about an individual Token + operationId: getToken + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/TokenInfo' + application/yaml: + schema: + $ref: '#/components/schemas/TokenInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Authentication" + - "Admin" + summary: Delete the Token indicated as parameter + description: Delete the Token indicated as parameter + operationId: deleteToken + responses: + '200': + description: OK + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/users': + get: + tags: + - "Identity" + - "Admin" + summary: Query information about multiple Users + description: Query information about multiple Users + operationId: getUsers + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfUserInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfUserInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Identity" + - "Admin" + summary: Create a new User + description: Create a new User + operationId: createUser + requestBody: + $ref: '#/components/requestBodies/CreateUserRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/users/{userId}': + parameters: + - name: userId + in: path + required: true + description: User ID/Name + schema: + type: string + get: + tags: + - "Identity" + - "Admin" + summary: Query information about an individual User + description: Query information about an individual User + operationId: getUser + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/UserInfo' + application/yaml: + schema: + $ref: '#/components/schemas/UserInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Identity" + - "Admin" + summary: Modify a User + description: Modify a User + operationId: editUser + requestBody: + $ref: '#/components/requestBodies/EditUserRequest' + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Identity" + - "Admin" + summary: Delete a User + description: Delete a User + operationId: deleteUser + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/projects': + get: + tags: + - "Identity" + - "Admin" + summary: Query information about multiple Projects + description: Query information about multiple Projects + operationId: getProjects + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfProjectInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfProjectInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Identity" + - "Admin" + summary: Create a new Project + description: Create a new Project + operationId: createProject + requestBody: + $ref: '#/components/requestBodies/CreateProjectRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/projects/{projectId}': + parameters: + - name: projectId + in: path + required: true + description: Project ID/Name + schema: + type: string + get: + tags: + - "Identity" + - "Admin" + summary: Query information about an individual Project + description: Query information about an individual Project + operationId: getProject + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ProjectInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Identity" + - "Admin" + summary: Modify a Project + description: Modify a Project + operationId: editProject + requestBody: + $ref: '#/components/requestBodies/EditProjectRequest' + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Identity" + - "Admin" + summary: Delete a Project + description: Delete a Project + operationId: deleteProject + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/roles': + get: + tags: + - "Identity" + - "Admin" + summary: Query information about multiple Roles + description: Query information about multiple Roles + operationId: getRoles + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfRoleInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfRoleInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Identity" + - "Admin" + summary: Create a new Role + description: Create a new Role + operationId: createRole + requestBody: + $ref: '#/components/requestBodies/CreateRoleRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/roles/{roleId}': + parameters: + - name: roleId + in: path + required: true + description: Role ID/Name + schema: + type: string + get: + tags: + - "Identity" + - "Admin" + summary: Query information about an individual Role + description: Query information about an individual Role + operationId: getRole + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/RoleInfo' + application/yaml: + schema: + $ref: '#/components/schemas/RoleInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Identity" + - "Admin" + summary: Modify a Role + description: Modify a Role + operationId: editRole + requestBody: + $ref: '#/components/requestBodies/EditRoleRequest' + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Identity" + - "Admin" + summary: Delete a Role + description: Delete a Role + operationId: deleteRole + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/vims': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple VIMs + description: Query information about multiple VIMs + operationId: getVIMs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Infrastructure" + - "Admin" + summary: Create a new VIM + description: Create a new VIM + operationId: createVIM + requestBody: + $ref: '#/components/requestBodies/CreateVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/vims/{vimId}': + parameters: + - name: vimId + in: path + required: true + description: VIM ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual VIM + description: Query information about an individual VIM + operationId: getVIM + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VimInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Infrastructure" + - "Admin" + summary: Modify a VIM + description: Modify a VIM + operationId: editVIM + requestBody: + $ref: '#/components/requestBodies/EditVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Infrastructure" + - "Admin" + summary: Delete a VIM + description: Delete a VIM + operationId: deleteVIM + responses: + '202': + description: Accepted + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/vim_accounts': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple VIM Accounts + description: Query information about multiple VIM Accounts + operationId: getVimAccounts + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Infrastructure" + - "Admin" + summary: Create a new VIM Account + description: Create a new VIM Account + operationId: createVimAccount + requestBody: + $ref: '#/components/requestBodies/CreateVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/vim_accounts/{vimAccountId}': + parameters: + - name: vimAccountId + in: path + required: true + description: VIM Account ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual VIM Account + description: Query information about an individual VIM Account + operationId: getVimAccount + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VimInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Infrastructure" + - "Admin" + summary: Modify a VIM Account + description: Modify a VIM Account + operationId: editVimAccount + requestBody: + $ref: '#/components/requestBodies/EditVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Infrastructure" + - "Admin" + summary: Delete a VIM Account + description: Delete a VIM Account + operationId: deleteVimAccount + responses: + '202': + description: Accepted + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/wim_accounts': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple WIM Accounts + description: Query information about multiple WIM Accounts + operationId: getWimAccounts + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfWimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfWimInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Infrastructure" + - "Admin" + summary: Create a new WIM Account + description: Create a new WIM Account + operationId: createWimAccount + requestBody: + $ref: '#/components/requestBodies/CreateWimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/wim_accounts/{wimAccountId}': + parameters: + - name: wimAccountId + in: path + required: true + description: WIM Account ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual WIM Account + description: Query information about an individual WIM Account + operationId: getWimAccount + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/WimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/WimInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Infrastructure" + - "Admin" + summary: Modify a WIM Account + description: Modify a WIM Account + operationId: editWimAccount + requestBody: + $ref: '#/components/requestBodies/EditWimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Infrastructure" + - "Admin" + summary: Delete a WIM Account + description: Delete a WIM Account + operationId: deleteWimAccount + responses: + '202': + description: Accepted + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/sdns': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple SDNs + description: Query information about multiple SDNs + operationId: getSDNs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfSdnInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfSdnInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Infrastructure" + - "Admin" + summary: Create a new SDN + description: Create a new SDN + operationId: createSDN + requestBody: + $ref: '#/components/requestBodies/CreateSdnRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/sdns/{sdnId}': + parameters: + - name: sdnId + in: path + required: true + description: SDN ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual SDN + description: Query information about an individual SDN + operationId: getSDN + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/SdnInfo' + application/yaml: + schema: + $ref: '#/components/schemas/SdnInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Infrastructure" + - "Admin" + summary: Modify a SDN + description: Modify a SDN + operationId: editSDN + requestBody: + $ref: '#/components/requestBodies/EditSdnRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Infrastructure" + - "Admin" + summary: Delete a SDN + description: Delete a SDN + operationId: deleteSDN + responses: + '202': + description: Accepted + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/k8sclusters': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple K8s Clusters + description: Query information about multiple K8s Clusters + operationId: getK8sClusters + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfK8sClusterInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfK8sClusterInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Infrastructure" + - "Admin" + summary: Create a new K8s Cluster + description: Create a new K8s Cluster + operationId: createK8sCluster + requestBody: + $ref: '#/components/requestBodies/CreateK8sClusterRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/k8sclusters/{k8sClusterId}': + parameters: + - name: k8sClusterId + in: path + required: true + description: K8s Cluster ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual K8s Cluster + description: Query information about an individual K8s Cluster + operationId: getK8sCluster + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/K8sClusterInfo' + application/yaml: + schema: + $ref: '#/components/schemas/K8sClusterInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Infrastructure" + - "Admin" + summary: Modify a K8s Cluster + description: Modify a K8s Cluster + operationId: editK8sCluster + requestBody: + $ref: '#/components/requestBodies/EditK8sClusterRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Infrastructure" + - "Admin" + summary: Delete a K8s Cluster + description: Delete a K8s Cluster + operationId: deleteK8sCluster + responses: + '202': + description: Accepted + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/vca': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple VCAs + description: Query information about multiple VCAs + operationId: getVcas + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVcaInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVcaInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Infrastructure" + - "Admin" + summary: Create a new VCA + description: Create a new VCA + operationId: createVca + requestBody: + $ref: '#/components/requestBodies/CreateVcaRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/vca/{vcaId}': + parameters: + - name: vcaId + in: path + required: true + description: VCA ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual VCA + description: Query information about an individual VCA + operationId: getVca + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VcaInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VcaInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "Infrastructure" + - "Admin" + summary: Modify a VCA + description: Modify a VCA + operationId: editVca + requestBody: + $ref: '#/components/requestBodies/EditVcaRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Infrastructure" + - "Admin" + summary: Delete a VCA + description: Delete a VCA + operationId: deleteVca + responses: + '202': + description: Accepted + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/k8srepos': + get: + tags: + - "Repositories" + - "Admin" + summary: Query information about multiple K8s Repos + description: Query information about multiple K8s Repos + operationId: getK8sRepos + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfK8sRepoInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfK8sRepoInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Repositories" + - "Admin" + summary: Create a new K8s Repo + description: Create a new K8s Repo + operationId: createK8sRepo + requestBody: + $ref: '#/components/requestBodies/CreateK8sRepoRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/admin/v1/k8srepos/{k8sRepoId}': + parameters: + - name: k8sRepoId + in: path + required: true + description: K8s Repo ID + schema: + type: string + format: uuid + get: + tags: + - "Repositories" + - "Admin" + summary: Query information about an individual K8s Repo + description: Query information about an individual K8s Repo + operationId: getK8sRepo + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/K8sRepoInfo' + application/yaml: + schema: + $ref: '#/components/schemas/K8sRepoInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "Repositories" + - "Admin" + summary: Delete a K8s Repo + description: Delete a K8s Repo + operationId: deleteK8sRepo + responses: + '202': + description: Accepted + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' # END Admin externalDocs: - description: Find out more OSM - url: 'http://osm.etsi.org/wikipub' + description: Find out more about OSM + url: 'https://osm.etsi.org/docs/user-guide/' components: responses: @@ -3406,690 +6299,2552 @@ components: schema: $ref: '#/components/schemas/ProblemDetails' VnfDescriptor: - description: VNF Descriptor (plaintext) - content: - text/plain: - schema: - $ref: '#/components/schemas/VnfDescriptor' + description: VNF Descriptor (plaintext) + content: + text/plain: + schema: + $ref: '#/components/schemas/VnfDescriptor' + VnfPackage: + description: VNF Package (compressed) + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' + NsDescriptor: + description: NS Descriptor (plaintext) + content: + text/plain: + schema: + $ref: '#/components/schemas/NsDescriptor' + NsPackage: + description: NS Package (compressed) + content: + application/zip: + schema: + $ref: '#/components/schemas/NsPackage' + NetSliceTemplate: + description: NetSlice Template (plaintext) + content: + text/plain: + schema: + $ref: '#/components/schemas/NetSliceTemplate' + NetSlicePackage: + description: NetSlice Package (compressed) + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' + NslcmSubscriptionResponse: + description: NslcmSubscriptionResponse + content: + application/json: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + # END RESPONSES + + schemas: + ObjectId: + type: object + properties: + id: + type: string + format: uuid + KeyValuePairs: + # A free list of key:value pairs + type: object + additionalProperties: true + NsDescriptor: + type: string + format: yaml|json + NsPackage: + type: string + format: binary + CreateNsdInfoRequest: + # A free list of key:value pairs + type: object + additionalProperties: true + NsdInfoModifications: + description: | + NS Descriptor Information + Only generic fields (id, name, description) are described + For a full specification of the NS Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/nsd.html + type: object + properties: + id: + description: NSD Identifier + type: string + name: + description: NSD Name + type: string + description: + description: NSD Description + type: string + AlarmInfoModifications: + description: | + Alarm Information + type: object + properties: + id: + description: UUID + type: string + is_enable: + description: To enable/disable the alarm. + type: string + threshold: + description: Threshold value of the Alarm + type: string + NsdInfo: + description: | + NS Descriptor Information + Only generic fields (_id, id, name, description) are described + For a full specification of the NS Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/nsd.html + type: object + properties: + _id: + description: | + Identifier of the onboarded individual NS descriptor + resource. This identifier is allocated by the NFVO. + type: string + format: uuid + id: + description: | + This identifier, which is allocated by the NSD + designer, identifies the NSD in a globally unique + way. It is copied from the NSD content and shall be + present after the NSD content is on-boarded. + type: string + name: + description: | + Name of the onboarded NSD. This information is + copied from the NSD content and shall be present + after the NSD content is on-boarded. + type: string + description: + description: | + Description of the onboarded NSD. + This information is copied from the NSD content. + type: string + required: + - _id + - id + ArrayOfNsdInfo: + type: array + items: + $ref: '#/components/schemas/NsdInfo' + ProblemDetails: + type: object + properties: + type: + type: string + format: uri + title: + type: string + status: + type: integer + detail: + type: string + instance: + type: string + format: uri + additionalProperties: true + required: + - status + - detail + VnfDescriptor: + type: string + format: yaml|json VnfPackage: - description: VNF Package (compressed) - content: - application/zip: - schema: - $ref: '#/components/schemas/VnfPackage' - NsDescriptor: - description: NS Descriptor (plaintext) - content: - text/plain: - schema: - $ref: '#/components/schemas/NsDescriptor' - NsPackage: - description: NS Package (compressed) - content: - application/zip: - schema: - $ref: '#/components/schemas/NsPackage' + type: string + format: binary + CreateVnfPkgInfoRequest: + # A free list of key:value pairs + type: object + additionalProperties: true + VnfPkgInfoModifications: + description: | + VNF Package Information + Only generic fields (id, name, description) are described + For a full specification of the VNF Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/vnfd.html + type: object + properties: + id: + description: VNF Package Identifier + type: string + name: + description: VNF Package Name + type: string + description: + description: VNF Package description + type: string + VnfPkgInfo: + description: | + VNF Package Information + Only generic fields (_id, id, name, description) are described + For a full specification of the VNF Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/vnfd.html + type: object + properties: + _id: + description: | + Identifier of the VNF package. This identifier is allocated by the NFVO. + type: string + format: uuid + id: + description: VNF Package Identifier + type: string + name: + description: VNF Package Name + type: string + description: + description: VNF Package description + type: string + required: + - _id + - id + ArrayOfVnfPkgInfo: + type: array + items: + $ref: '#/components/schemas/VnfPkgInfo' + # CreateNsRequest: + # Substituted by InstantiateNsRequest + NsInstance: + description: | + NS Instance Information + Only generic fields (_id, id, name, description) are described + For a full specification of the NS Instance see: + http://osm-download.etsi.org/ftp/osm-doc/nsr.html + type: object + properties: + _id: + description: Identifier of the NS instance. + type: string + format: uuid + id: + description: Identifier of the NS instance. + type: string + format: uuid + name: + description: Human readable name of the NS instance. + type: string + description: + description: Human readable description of the NS instance. + type: string + required: + - _id + - id + - name + InstantiateNsRequest: + type: object + properties: + nsName: + description: | + Human-readable name of the NS instance to be created. + type: string + nsdId: + description: | + Identifier of the NSD that defines the NS instance to be created. + type: string + format: uuid + vimAccountId: + description: | + Identifier of the VIM Account where the NS instance shall be created. + type: string + format: uuid + lcmOperationType: + type: string + nsInstanceId: + type: string + format: uuid + netsliceInstanceId: + type: string + format: uuid + nsDescription: + type: string + nullable: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + additionalParamsForNs: + type: object + additionalProperties: true + additionalParamsForVnf: &additionalparamsforvnf + type: array + items: + type: object + properties: + member-vnf-index: + type: string + additionalParams: + type: object + additionalProperties: true + k8s-namespace: + type: string + description: | + use this namespace for all the KDU deployed in this VNF + (if any). By default it is used the id of the project + additionalParamsForVdu: + type: array + items: + type: object + properties: + vdu_id: + type: string + additionalParams: + type: object + additionalProperties: true + required: + - vdu_id + - additionalParams + additionalProperties: false + additionalParamsForKdu: + type: array + items: + type: object + properties: + kdu_name: + type: string + k8s-namespace: + type: string + description: use this namespace for this KDU + kdu_model: + type: string + additionalParams: + type: object + additionalProperties: true + required: + - kdu_name + minProperties: 2 + additionalProperties: false + required: + - member-vnf-index + minProperties: 2 + additionalProperties: false + ssh_keys: + type: array + items: + type: string + nsr_id: + type: string + format: uuid + vduImage: + type: string + placement-engine: + type: string + description: | + To compute automatically the target VIM for each VNF based on + constrains, e.g. latency. Currently only 'PLA' is supported + placement-constraints: + type: object + additionalProperties: true + k8s-namespace: + type: string + timeout_ns_deploy: + type: integer + vnf: + type: array + items: + type: object + properties: + member-vnf-index: + type: string + vimAccountId: + type: string + format: uuid + vdu: + type: array + items: + type: object + properties: + id: + type: string + volume: + type: array + items: + type: object + properties: + name: + type: string + vim-volume-id: + type: string + required: + - name + - vim-volume-id + additionalProperties: false + minItems: 1 + interface: + type: array + items: + type: object + properties: + name: + type: string + ip-address: + type: string + format: ipv4 + mac-address: + type: string + format: mac_address + floating-ip-required: + type: boolean + required: + - name + additionalProperties: false + minItems: 1 + required: + - id + additionalProperties: false + minItems: 1 + internal-vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + type: string + vim-network-id: + type: string + ip-profile: + type: object + properties: + ip-version: + type: string + enum: + - ipv4 + - ipv6 + subnet-address: + type: string + format: ip_prefix + nullable: true + gateway-address: + type: string + format: ipv4 + nullable: true + dns-server: + type: array + items: + type: object + properties: + address: + type: string + format: ipv4 + required: + - address + additionalProperties: false + minItems: 1 + nullable: true + dhcp-params: + type: object + properties: + enabled: + type: boolean + count: + type: integer + minimum: 1 + start-address: + type: string + format: ipv4 + additionalProperties: false + nullable: true + additionalProperties: false + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + network-type: + type: string + sdn-ports: + description: | + connect additional ports to the created underlay SDN connectivity. + Normally for external connectivy. + type: array + items: + type: object + properties: + switch_id: + type: string + switch_port: + type: string + mac_address: + type: string + format: mac_address + vlan: + type: integer + additionalProperties: true + required: + - switch_id + - switch_port + minItems: 1 + additionalProperties: false + internal-connection-point: + type: array + items: + type: object + properties: + id-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - id-ref + minProperties: 2 + additionalProperties: False + minItems: 1 + required: + - name + minProperties: 2 + additionalProperties: false + minItems: 1 + required: + - member-vnf-index + minProperties: 2 + additionalProperties: false + minItems: 1 + vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + oneOf: + - type: string + - type: object + vim-network-id: + oneOf: + - type: string + - type: object + ns-net: + type: object + additionalProperties: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + ip-profile: + type: object + additionalProperties: true + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + additionalProperties: false + vnfd-connection-point-ref: + type: array + items: + type: object + properties: + member-vnf-index-ref: + type: string + vnfd-connection-point-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - member-vnf-index-ref + - vnfd-connection-point-ref + minProperties: 3 + additionalProperties: false + minItems: 1 + required: + - name + additionalProperties: false + minItems: 1 + required: + - nsName + - nsdId + - vimAccountId + additionalProperties: false + ScaleNsRequest: + type: object + properties: + scaleType: + type: string + enum: + - SCALE_VNF + timeout_ns_scale: + description: timeout for the scale operation + type: integer + scaleVnfData: + type: object + properties: + scaleVnfType: + type: string + enum: + - SCALE_IN + - SCALE_OUT + scaleByStepData: + type: object + properties: + scaling-group-descriptor: + type: string + scaling-policy: + type: string + member-vnf-index: + type: string + required: + - scaling-group-descriptor + - member-vnf-index + additionalProperties: false + required: + - scaleVnfType + - scaleByStepData + additionalProperties: false + required: + - scaleType + - scaleVnfData + additionalProperties: false + HealNsRequest: + description: > + This type represents request parameters for the "Heal NS" operation. This operation supports the healing of an NS + instance by healing one or more of the VNF that are part of this NS. + type: object + properties: + timeout_ns_heal: + description: timeout for the heal operation in seconds + type: integer + healVnfData: + description: > + List of VNF to be healed, together with the information needed to heal each. + type: array + items: + $ref: "#/components/schemas/HealVnfData" + required: + - healVnfData + HealVnfData: + description: > + This type represents the information to heal a VNF that is part of an NS. + type: object + required: + - vnfInstanceId + properties: + vnfInstanceId: + description: > + Identifies the VNF instance, part of the NS, requiring a + healing action. + type: string + format: uuid + cause: + description: > + Indicates the reason why a healing procedure is required. + type: string + additionalParams: + description: > + Additional parameters passed by the NFVO as input to + the healing process, specific to the VNF being healed. + type: object + properties: + run-day1: + description: > + Flag to indicate whether or not to run day1 primitives for the VNF (default: false). + type: boolean + default: false + vdu: + description: > + List of VDU to be healed, together with the information needed to heal each. + type: array + items: + $ref: "#/components/schemas/HealVduData" + HealVduData: + description: > + This type represents the information to heal a VDU that is part of a VNF. + type: object + required: + - vdu-id + properties: + vdu-id: + description: > + Identifies the VDU id, part of the VNF, requiring a healing action. + type: string + format: uuid + count-index: + description: > + Indicates the VDU number when the VDU is part of a scale-group. + type: integer + minimum: 0 + run-day1: + description: > + Flag to indicate whether or not to run day1 primitives for the VDU (default: false). + type: boolean + default: false + TerminateNsRequest: + type: object + properties: + timeout_ns_terminate: + description: timeout for terminate operation + type: integer + autoremove: + description: remove network service if termination end without error + type: boolean + skip_terminate_primitives: + description: Do not execute network service termination primitives + type: boolean + additionalProperties: false + ArrayOfNsInstance: + type: array + items: + $ref: '#/components/schemas/NsInstance' + NSinstanceActionRequest: + type: object + properties: + primitive: + type: string + description: | + name of the primitive in the 'config-descriptor'. If the target is + a kdu it can be also 'status', 'rollback' or 'upgrade' + primitive_params: + description: parameters of this primitive + $ref: '#/components/schemas/KeyValuePairs' + member_vnf_index: + type: string + description: provide if the target action is for a vnf, vdu or kdu + vdu_id: + type: string + description: provide if the target action is for a vdu + kdu_name: + type: string + description: provide if the target action is for a kdu + vdu_count_index: + type: integer + timeout_ns_action: + description: timeout for the day 1/2 operation + type: integer + required: + - primitive + - primitive_params + additionalProperties: false + # CreateNSinstanceContentRequest: + # Substituted by InstantiateNsRequest + CreateNSinstanceContentResponse: + type: object + properties: + id: + type: string + format: uuid + nslcmop_id: + type: string + format: uuid + NsLcmOpOcc: + type: object + properties: + _id: + type: string + format: uuid + id: + type: string + format: uuid + lcmOperationType: + type: string + nsInstanceId: + type: string + format: uuid + isAutomaticInvocation: + type: boolean + isCancelPending: + type: boolean + startTime: + type: number + format: float + statusEnteredTime: + type: number + format: float + operationParams: + type: object + properties: + nsName: + type: string + nsdId: + type: string + format: uuid + vimAccountId: + type: string + format: uuid + nsInstanceId: + type: string + format: uuid + lcmOperationType: + type: string + operationState: + type: string + detailed-status: + type: string + links: + type: object + properties: + self: + type: string + format: path # uri? + nsInstance: + type: string + format: path # uri? + ArrayOfNsLcmOpOcc: + type: array + items: + $ref: '#/components/schemas/NsLcmOpOcc' + VnfInstanceInfo: + description: | + VNF Instance Information + Only generic fields (_id, id) are described + For a full specification of the VNF Instance see: + http://osm-download.etsi.org/ftp/osm-doc/vnfr.html + type: object + properties: + _id: + type: string + format: uuid + id: + type: string + format: uuid + ArrayOfVnfInstanceInfo: + type: array + items: + $ref: '#/components/schemas/VnfInstanceInfo' + NstInfo: + description: | + NetSlice Template Information + Only generic fields (_id, id, name) are described + For a full specification of the NetSlice Template see: + http://osm-download.etsi.org/ftp/osm-doc/nst.html + type: object + properties: + _id: + description: NetSlice Template Identifier + type: string + format: uuid + id: + description: Human readable NetSlice Template Identifier + type: string + name: + description: Human readable name of the NetSlice Template + type: string + ArrayOfNstInfo: + type: array + items: + $ref: '#/components/schemas/NstInfo' + CreateNstInfoRequest: + # A free list of key:value pairs + type: object + additionalProperties: true NetSliceTemplate: - description: NetSlice Template (plaintext) - content: - text/plain: - schema: - $ref: '#/components/schemas/NetSliceTemplate' + type: string + format: yaml|json NetSlicePackage: - description: NetSlice Package (compressed) - content: - application/zip: - schema: - $ref: '#/components/schemas/NetSlicePackage' - # END RESPONSES - - schemas: - ObjectId: + type: string + format: binary + NstInfoModifications: + description: | + NetSlice Template Information + Only generic fields (id, name) are described + For a full specification of the NetSlice Template see: + http://osm-download.etsi.org/ftp/osm-doc/nst.html + type: object + properties: + id: + description: NST Identifier + type: string + name: + description: NST Name + type: string + NetSliceInstance: + description: | + NetSlice Instance Information + Only generic fields (_id, id, name, description) are described + For a full specification of the NetSlice Instance see: + http://osm-download.etsi.org/ftp/osm-doc/nsi.html + type: object + properties: + _id: + description: Identifier of the NetSlice instance. + type: string + format: uuid + id: + description: Identifier of the NetSlice instance. + type: string + format: uuid + name: + description: Human readable name of the NetSlice instance. + type: string + description: + description: Human readable description of the NetSlice instance. + type: string + required: + - _id + - id + - name + ArrayOfNetSliceInstance: + type: array + items: + $ref: '#/components/schemas/NetSliceInstance' + Alarm: + description: | + Alarm Information + type: object + properties: + _id: + description: Identifier of the Alarm. + type: string + format: uuid + id: + description: Identifier of the Alarm. + type: string + format: uuid + metric: + description: Alarm metric. + type: string + threshold: + description: Threshold value of the Alarm. + type: number + format: float + operation: + description: Operation to be applied. + type: string + action: + description: Action to be taken. + type: string + status: + description: Current status of the alarm. + type: string + required: + - _id + - id + - metric + - threshold + - operation + ArrayOfAlarm: + type: array + items: + $ref: '#/components/schemas/Alarm' + # CreateNsiRequest: + # Substituted by InstantiateNsiRequest + InstantiateNsiRequest: + type: object + properties: + nsiName: + description: | + Human-readable name of the NetSlice instance to be created. + type: string + nstId: + description: | + Identifier of the NST that defines the NetSlice instance to be created. + type: string + format: uuid + vimAccountId: + description: | + Identifier of the VIM Account where the NetSlice instance shall be created. + type: string + format: uuid + lcmOperationType: + type: string + netsliceInstanceId: + type: string + format: uuid + nsiDescription: + type: string + nullable: true + ssh_keys: + type: string + nsi_id: + type: string + format: uuid + additionalParamsForNsi: + type: object + additionalProperties: true + netslice-subnet: + type: array + items: + type: object + properties: + id: + type: string + nsName: + type: string + nsdId: + type: string + format: uuid + vimAccountId: + type: string + format: uuid + lcmOperationType: + type: string + nsInstanceId: + type: string + format: uuid + netsliceInstanceId: + type: string + format: uuid + nsDescription: + type: string + nullable: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + additionalParamsForNs: + type: object + additionalProperties: true + additionalParamsForVnf: *additionalparamsforvnf + ssh_keys: + type: array + items: + type: string + nsr_id: + type: string + format: uuid + vduImage: + type: string + vnf: + type: array + items: + type: object + properties: + member-vnf-index: + type: string + vimAccountId: + type: string + format: uuid + vdu: + type: array + items: + type: object + properties: + id: + type: string + volume: + type: array + items: + type: object + properties: + name: + type: string + vim-volume-id: + type: string + required: + - name + - vim-volume-id + additionalProperties: false + minItems: 1 + interface: + type: array + items: + type: object + properties: + name: + type: string + ip-address: + type: string + format: ipv4 + mac-address: + type: string + format: mac_address + floating-ip-required: + type: boolean + required: + - name + additionalProperties: false + minItems: 1 + required: + - id + additionalProperties: false + minItems: 1 + internal-vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + type: string + vim-network-id: + type: string + ip-profile: + type: object + properties: + ip-version: + type: string + enum: + - ipv4 + - ipv6 + subnet-address: + type: string + format: ip_prefix + nullable: true + gateway-address: + type: string + format: ipv4 + nullable: true + dns-server: + type: array + items: + type: object + properties: + address: + type: string + format: ipv4 + required: + - address + additionalProperties: false + minItems: 1 + nullable: true + dhcp-params: + type: object + properties: + enabled: + type: boolean + count: + type: integer + minimum: 1 + start-address: + type: string + format: ipv4 + additionalProperties: false + nullable: true + additionalProperties: false + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + additionalProperties: false + internal-connection-point: + type: array + items: + type: object + properties: + id-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - id-ref + minProperties: 2 + additionalProperties: False + minItems: 1 + required: + - name + minProperties: 2 + additionalProperties: false + minItems: 1 + required: + - member-vnf-index + minProperties: 2 + additionalProperties: false + minItems: 1 + vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + oneOf: + - type: string + - type: object + vim-network-id: + oneOf: + - type: string + - type: object + ns-net: + type: object + additionalProperties: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + ip-profile: + type: object + additionalProperties: true + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + additionalProperties: false + vnfd-connection-point-ref: + type: array + items: + type: object + properties: + member-vnf-index-ref: + type: string + vnfd-connection-point-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - member-vnf-index-ref + - vnfd-connection-point-ref + minProperties: 3 + additionalProperties: false + minItems: 1 + required: + - name + additionalProperties: false + minItems: 1 + additionalProperties: false + minItems: 1 + netslice-vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + oneOf: + - type: string + - type: object + vim-network-id: + oneOf: + - type: string + - type: object + ip-profile: + type: object + additionalProperties: true + required: + - name + additionalProperties: false + minItems: 1 + required: + - nsiName + - nstId + - vimAccountId + additionalProperties: false + TerminateNsiRequest: + type: object + properties: + terminationTime: + description: | + Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated + automatically at this timestamp. Cardinality "0" indicates the NSI termination + takes place immediately. + type: string + format: date-time + NsiActionRequest: + type: object + properties: + primitive: + type: string + primitive_params: + $ref: '#/components/schemas/KeyValuePairs' + lcmOperationType: + type: string + netsliceInstanceId: + type: string + format: uuid + required: + - primitive + - primitive_params + # CreateNsiContentRequest: + # Substituted by InstantiateNsiRequest + CreateNsiContentResponse: type: object properties: id: type: string format: uuid - KeyValuePairs: - # A free list of key:value pairs + nsilcmop_id: + type: string + format: uuid + NsiLcmOpOcc: type: object - additionalProperties: true - NsDescriptor: - type: string - format: yaml|json - NsPackage: - type: string - format: binary - CreateNsdInfoRequest: - # A free list of key:value pairs + properties: + _id: + type: string + format: uuid + id: + type: string + format: uuid + lcmOperationType: + type: string + netsliceInstanceId: + type: string + format: uuid + isAutomaticInvocation: + type: boolean + isCancelPending: + type: boolean + startTime: + type: number + format: float + statusEnteredTime: + type: number + format: float + operationParams: + type: object + properties: + nsiName: + type: string + nstId: + type: string + format: uuid + vimAccountId: + type: string + format: uuid + netsliceInstanceId: + type: string + format: uuid + lcmOperationType: + type: string + nslcmops_ids: + type: array + items: + type: string + format: uuid + operationState: + type: string + detailed-status: + type: string + links: + type: object + properties: + self: + type: string + format: path # uri? + netsliceInstanceId: + type: string + format: path # uri? + ArrayOfNsiLcmOpOcc: + type: array + items: + $ref: '#/components/schemas/NsiLcmOpOcc' + TokenInfo: + type: object + properties: + _id: + type: string + id: + type: string + admin: + type: boolean + project_id: + type: string + format: uuid + user_id: + type: string + format: uuid + project_name: + type: string + username: + type: string + issued_at: + type: number + format: float + expires: + type: number + format: float + remote_host: + type: string + format: ipv4 + remote_port: + type: integer + roles: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + ArrayOfTokenInfo: + type: array + items: + $ref: '#/components/schemas/TokenInfo' + CreateTokenRequest: + type: object + properties: + username: + type: string + password: + type: string + project_id: + type: string + required: + - username + - password + UserInfo: + type: object + properties: + _id: + type: string + format: uuid + username: + type: string + password: + type: string + project_role_mappings: + type: array + items: + type: object + properties: + project: + type: string + format: uuid + role: + type: string + format: uuid + project_name: + type: string + role_name: + type: string + projects: + type: array + items: + type: string + ArrayOfUserInfo: + type: array + items: + $ref: '#/components/schemas/UserInfo' + ProjectRoleMappings: + type: array + items: + type: object + properties: + project: + type: string + role: + type: string + required: + - project + - role + additionalProperties: false + ProjectRoleMappingsOpt: + type: array + items: + type: object + properties: + project: + type: string + role: + type: string + required: + - project + additionalProperties: false + CreateUserRequest: + type: object + properties: + username: + type: string + password: + type: string + projects: + type: array + items: + type: string + project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappings' + required: + - username + - password + additionalProperties: false + ShortNameList: + type: array + items: + type: string + ArrayEditionSchema: type: object additionalProperties: true - NsdInfoModifications: + minProperties: 1 description: | - NS Descriptor Information - Only generic fields (id, name, description) are described - For a full specification of the NS Descriptor see: - http://osm-download.etsi.org/ftp/osm-doc/nsd.html + Array edition keys must start with '$' + and follow the syntax defined in: https://osm.etsi.org/wikipub/index.php/NBI_API_Description + EditUserRequest: type: object properties: - id: - description: NSD Identifier + username: + type: string + password: + type: string + projects: + oneOf: + - $ref: '#/components/schemas/ShortNameList' + - $ref: '#/components/schemas/ArrayEditionSchema' + project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappings' + add_project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappings' + remove_project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappingsOpt' + QuotasInfo: + type: object + properties: + vnfds: + type: integer + minimum: 0 + nullable: false + nsds: + type: integer + minimum: 0 + nullable: false + slice_templates: + type: integer + minimum: 0 + nullable: false + pduds: + type: integer + minimum: 0 + nullable: false + ns_instances: + type: integer + minimum: 0 + nullable: false + slice_instances: + type: integer + minimum: 0 + nullable: false + vim_accounts: + type: integer + minimum: 0 + nullable: false + wim_accounts: + type: integer + minimum: 0 + nullable: false + sdn_controllers: + type: integer + minimum: 0 + nullable: false + k8sclusters: + type: integer + minimum: 0 + nullable: false + vca: + type: integer + minimum: 0 + nullable: false + k8srepos: + type: integer + minimum: 0 + nullable: false + osmrepos: + type: integer + minimum: 0 + nullable: false + additionalProperties: false + EditQuotasInfo: + type: object + properties: + vnfds: + type: integer + minimum: 0 + nullable: true + nsds: + type: integer + minimum: 0 + nullable: true + slice_templates: + type: integer + minimum: 0 + nullable: true + pduds: + type: integer + minimum: 0 + nullable: true + ns_instances: + type: integer + minimum: 0 + nullable: true + slice_instances: + type: integer + minimum: 0 + nullable: true + vim_accounts: + type: integer + minimum: 0 + nullable: true + wim_accounts: + type: integer + minimum: 0 + nullable: true + sdn_controllers: + type: integer + minimum: 0 + nullable: true + k8sclusters: + type: integer + minimum: 0 + nullable: true + vca: + type: integer + minimum: 0 + nullable: true + k8srepos: + type: integer + minimum: 0 + nullable: true + osmrepos: + type: integer + minimum: 0 + nullable: true + additionalProperties: false + ProjectInfo: + type: object + properties: + _id: type: string + format: uuid name: - description: NSD Name type: string - description: - description: NSD Description + quotas: + $ref: '#/components/schemas/QuotasInfo' + ArrayOfProjectInfo: + type: array + items: + $ref: '#/components/schemas/ProjectInfo' + CreateProjectRequest: + type: object + properties: + name: type: string - nsd: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsd.html' - NsdInfo: + admin: + type: boolean + quotas: + $ref: '#/components/schemas/QuotasInfo' + required: + - name + additionalProperties: false + EditProjectRequest: + type: object + properties: + name: + type: string + admin: + type: boolean + quotas: + $ref: '#/components/schemas/EditQuotasInfo' + additionalProperties: false + PermissionsInfo: + type: object + additionalProperties: + type: boolean + nullable: false description: | - NS Descriptor Information - Only generic fields (_id, id, name, description) are described - For a full specification of the NS Descriptor see: - http://osm-download.etsi.org/ftp/osm-doc/nsd.html + Permissions keys must follow the syntax 'main_topic[:subtopic[:id[:component|action|etc]]]' + Permission values are either true or false + EditPermissionsInfo: + type: object + additionalProperties: + type: boolean + nullable: true + description: | + Permissions keys must follow the syntax 'main_topic[:subtopic[:id[:component|action|etc]]]' + Permission values are either true, false, or null + RoleInfo: + type: object + properties: + _id: + type: string + format: uuid + name: + type: string + permissions: + $ref: '#/components/schemas/PermissionsInfo' + ArrayOfRoleInfo: + type: array + items: + $ref: '#/components/schemas/RoleInfo' + CreateRoleRequest: + type: object + properties: + name: + type: string + permissions: + $ref: '#/components/schemas/PermissionsInfo' + required: + - name + additionalProperties: false + EditRoleRequest: + type: object + properties: + name: + type: string + permissions: + $ref: '#/components/schemas/EditPermissionsInfo' + additionalProperties: false + VimType: + type: string + enum: + - openvim + - openstack + - vmware + - opennebula + - aws + - azure + - fos + VimInfo: type: object properties: _id: - description: | - Identifier of the onboarded individual NS descriptor - resource. This identifier is allocated by the NFVO. type: string format: uuid - id: - description: | - This identifier, which is allocated by the NSD - designer, identifies the NSD in a globally unique - way. It is copied from the NSD content and shall be - present after the NSD content is on-boarded. + schema_version: + type: string + format: X.Y[.Z] + schema_type: type: string name: - description: | - Name of the onboarded NSD. This information is - copied from the NSD content and shall be present - after the NSD content is on-boarded. type: string description: - description: | - Description of the onboarded NSD. - This information is copied from the NSD content. type: string - nsd: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsd.html' - required: - - _id - - id - ArrayOfNsdInfo: + vim: + type: string + datacenter: + type: string + vim_type: + $ref: '#/components/schemas/VimType' + vim_url: + type: string + format: uri + vim_tenant_name: + type: string + vim_user: + type: string + vim_password: + type: string + vca: + type: string + format: uuid + config: + type: object + additionalProperties: true + resources: + type: object + ArrayOfVimInfo: type: array items: - $ref: '#/components/schemas/NsdInfo' - ProblemDetails: + $ref: '#/components/schemas/VimInfo' + CreateVimRequest: type: object properties: - type: + schema_version: type: string - format: uri - title: + format: X.Y[.Z] + schema_type: type: string - status: - type: integer - detail: + name: type: string - instance: + description: + type: string + vim: + type: string + datacenter: + type: string + vim_type: + $ref: '#/components/schemas/VimType' + vim_url: type: string format: uri - additionalProperties: true + vim_tenant_name: + type: string + vim_user: + type: string + vim_password: + type: string + vca: + type: string + format: uuid + config: + type: object + additionalProperties: true + resources: + type: object required: - - status - - detail - VnfDescriptor: - type: string - format: yaml|json - VnfPackage: - type: string - format: binary - CreateVnfPkgInfoRequest: - # A free list of key:value pairs - type: object - additionalProperties: true - VnfPkgInfoModifications: - description: | - VNF Package Information - Only generic fields (id, name, description) are described - For a full specification of the VNF Descriptor see: - http://osm-download.etsi.org/ftp/osm-doc/vnfd.html + - name + - vim_url + - vim_type + - vim_user + - vim_password + - vim_tenant_name + additionalProperties: false + EditVimRequest: type: object properties: - id: - description: VNF Package Identifier - type: string name: - description: VNF Package Name type: string description: - description: VNF Package description type: string - vnfd: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfd.html' - VnfPkgInfo: - description: | - VNF Package Information - Only generic fields (_id, id, name, description) are described - For a full specification of the VNF Descriptor see: - http://osm-download.etsi.org/ftp/osm-doc/vnfd.html - type: object - properties: - _id: - description: | - Identifier of the VNF package. This identifier is allocated by the NFVO. + vim: type: string - format: uuid - id: - description: VNF Package Identifier + datacenter: type: string - name: - description: VNF Package Name + vim_type: + $ref: '#/components/schemas/VimType' + vim_url: type: string - description: - description: VNF Package description + format: uri + vim_tenant_name: type: string - vnfd: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfd.html' - required: - - _id - - id - ArrayOfVnfPkgInfo: - type: array - items: - $ref: '#/components/schemas/VnfPkgInfo' - CreateNsRequest: + vim_user: + type: string + vim_password: + type: string + vca: + type: string + format: uuid + config: + type: object + additionalProperties: true + additionalProperties: false + ObjectId_plus_OpId: type: object properties: - nsdId: - description: | - Identifier of the NSD that defines the NS instance to be created. + id: type: string format: uuid - nsName: - description: | - Human-readable name of the NS instance to be created. - type: string - nsDescription: - description: | - Human-readable description of the NS instance to be created. + op_id: type: string - vimAccountId: - description: | - Identifier of the VIM Account where the NS instance shall be created. + format: uuid + OpId: + type: object + properties: + op_id: type: string format: uuid - required: - - nsdId - - nsName - - vimAccountId - NsInstance: - description: | - NS Instance Information - Only generic fields (_id, id, name, description) are described - For a full specification of the NS Instance see: - http://osm-download.etsi.org/ftp/osm-doc/nsr.html + WimType: + type: string + enum: + - onos + - odl + - tapi + - dynpac + - fake + WimInfo: type: object properties: _id: - description: Identifier of the NS instance. type: string format: uuid - id: - description: Identifier of the NS instance. + schema_version: + type: string + format: X.Y[.Z] + schema_type: type: string - format: uuid name: - description: Human readable name of the NS instance. type: string description: - description: Human readable description of the NS instance. type: string - nsr: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsr.html' - required: - - _id - - id - - name - InstantiateNsRequest: - type: object - properties: - nsName: - description: | - Human-readable name of the NS instance to be created. + wim: type: string - nsdId: - description: | - Identifier of the NSD that defines the NS instance to be created. + wim_type: + $ref: '#/components/schemas/WimType' + wim_url: type: string - format: uuid - vimAccountId: - description: | - Identifier of the VIM Account where the NS instance shall be created. + format: uri + user: type: string - format: uuid - required: - - nsName - - nsdId - - vimAccountId - ScaleNsRequest: - type: object - properties: - scaleType: + password: type: string - enum: - - SCALE_VNF - scaleVnfData: + config: type: object - properties: - scaleVnfType: - type: string - enum: - - SCALE_IN - - SCALE_OUT - scaleByStepData: - type: object - properties: - scaling-group-descriptor: - type: string - member-vnf-index: - type: string - additionalProperties: true additionalProperties: true - additionalProperties: true - TerminateNsRequest: - type: object - properties: - terminationTime: - description: | - Timestamp indicating the end time of the NS, i.e. the NS will be terminated - automatically at this timestamp. Cardinality "0" indicates the NS termination - takes place immediately. - type: string - format: date-time - ArrayOfNsInstance: + ArrayOfWimInfo: type: array items: - $ref: '#/components/schemas/NsInstance' - NSinstanceActionRequest: + $ref: '#/components/schemas/WimInfo' + CreateWimRequest: type: object properties: - primitive: + schema_version: type: string - primitive_params: - $ref: '#/components/schemas/KeyValuePairs' - lcmOperationType: + format: X.Y[.Z] + schema_type: type: string - nsInstanceId: + name: type: string - format: uuid - member_vnf_index: + description: type: string - vdu_id: + wim: type: string - vdu_count_index: - type: integer + wim_type: + $ref: '#/components/schemas/WimType' + wim_url: + type: string + format: uri + user: + type: string + password: + type: string + config: + type: object + additionalProperties: true required: - - primitive - - primitive_params + - name + - wim_url + - wim_type additionalProperties: false - CreateNSinstanceContentRequest: + EditWimRequest: type: object properties: - nsdId: - description: | - Identifier of the NSD that defines the NS instance to be created. + name: type: string - format: uuid - nsName: - description: | - Human-readable name of the NS instance to be created. + description: + type: string + wim: + type: string + wim_type: + type: string + wim_url: + type: string + format: uri + user: + type: string + password: + type: string + config: + type: object + additionalProperties: true + additionalProperties: false + SdnBasicProperties: + type: object + properties: + name: + type: string + description: + type: string + dpid: + type: string + format: mac_address + ip: + type: string + format: ipv4 + port: + type: integer + type: + type: string + enum: + - floodlight + - opendaylight + - onos + version: + type: string + user: type: string - vimAccountId: - description: | - Identifier of the VIM Account where the NS instance shall be created. + password: type: string - format: uuid - required: - - nsdId - - nsName - - vimAccountId - CreateNSinstanceContentResponse: + SdnExtraProperties: type: object properties: - id: + _id: type: string format: uuid - nslcmop_id: + schema_version: type: string - format: uuid - NsLcmOpOcc: + format: X.Y[.Z] + SdnInfo: + allOf: + - $ref: '#/components/schemas/SdnExtraProperties' + - $ref: '#/components/schemas/SdnBasicProperties' + ArrayOfSdnInfo: + type: array + items: + $ref: '#/components/schemas/SdnInfo' + CreateSdnRequest: + allOf: + - $ref: '#/components/schemas/SdnBasicProperties' + required: + - name + - type + - ip + - port + - dpid + additionalProperties: false + EditSdnRequest: + allOf: + - $ref: '#/components/schemas/SdnBasicProperties' + additionalProperties: false + NsPmJobReportInfo: + type: object + properties: + entries: + type: array + items: + type: object + properties: + objectInstanceId: + type: string + format: uuid + performanceMetric: + type: string + performanceValue: + type: object + properties: + performanceValue: + type: object + properties: + performanceValue: + type: number + vnfMemberIndex: + type: string + vduName: + type: string + timestamp: + type: number + PduInterfaces: + type: array + items: + type: object + properties: + name: + type: string + mgmt: + type: boolean + type: + type: string + enum: + - overlay + - underlay + ip-address: + type: string + format: ipv4 + mac-address: + type: string + format: mac_address + vim-network-name: + type: string + vim-network-id: + type: string + required: + - name + - mgmt + - ip-address + additionalProperties: false + PduInfo: type: object properties: _id: type: string format: uuid - id: + name: type: string - format: uuid - lcmOperationType: + type: type: string - nsInstanceId: + description: type: string - format: uuid - isAutomaticInvocation: + shared: type: boolean - isCancelPending: + vims: + type: array + items: + type: string + vim_accounts: + type: array + items: + type: string + interfaces: + $ref: '#/components/schemas/PduInterfaces' + ArrayOfPduInfo: + type: array + items: + $ref: '#/components/schemas/PduInfo' + CreatePduRequest: + type: object + properties: + name: + type: string + type: + type: string + description: + type: string + shared: type: boolean - startTime: - type: number - format: float - statusEnteredTime: - type: number - format: float - operationParams: - type: object - properties: - nsName: - type: string - nsdId: - type: string - format: uuid - vimAccountId: - type: string - format: uuid - nsInstanceId: - type: string - format: uuid - lcmOperationType: - type: string - operationState: + vims: + type: array + items: + type: string + vim_accounts: + type: array + items: + type: string + interfaces: + $ref: '#/components/schemas/PduInterfaces' + required: + - name + - type + - interfaces + additionalProperties: false + EditPduRequest: + type: object + properties: + name: type: string - detailed-status: + type: type: string - links: - type: object - properties: - self: - type: string - format: path # uri? - nsInstance: - type: string - format: path # uri? - ArrayOfNsLcmOpOcc: + description: + type: string + shared: + type: boolean + vims: + type: array + items: + type: string + vim_accounts: + type: array + items: + type: string + interfaces: + $ref: '#/components/schemas/PduInterfaces' + additionalProperties: false + K8sClusterNetList: type: array items: - $ref: '#/components/schemas/NsLcmOpOcc' - VnfInstanceInfo: - description: | - VNF Instance Information - Only generic fields (_id, id) are described - For a full specification of the VNF Instance see: - http://osm-download.etsi.org/ftp/osm-doc/vnfr.html + type: object + additionalProperties: true + K8sClusterInfo: type: object properties: _id: type: string format: uuid - id: + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + name: + type: string + description: + type: string + credentials: + type: object + additionalProperties: true + vim_account: type: string format: uuid - vnfr: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfr.html' - ArrayOfVnfInstanceInfo: + k8s_version: + type: string + nets: + $ref: '#/components/schemas/K8sClusterNetList' + namespace: + type: string + cni: + type: array + items: + type: string + ArrayOfK8sClusterInfo: type: array items: - $ref: '#/components/schemas/VnfInstanceInfo' - NstInfo: - description: | - NetSlice Template Information - Only generic fields (_id, id, name) are described - For a full specification of the NetSlice Template see: - http://osm-download.etsi.org/ftp/osm-doc/nst.html + $ref: '#/components/schemas/K8sClusterInfo' + CreateK8sClusterRequest: type: object properties: - _id: - description: NetSlice Template Identifier + schema_version: type: string - format: uuid - id: - description: Human readable NetSlice Template Identifier + format: X.Y[.Z] + schema_type: type: string name: - description: Human readable name of the NetSlice Template type: string - nst: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nst.html' - ArrayOfNstInfo: - type: array - items: - $ref: '#/components/schemas/NstInfo' - CreateNstInfoRequest: - # A free list of key:value pairs - type: object - additionalProperties: true - NetSliceTemplate: - type: string - format: yaml|json - NetSlicePackage: - type: string - format: binary - NstInfoModifications: - description: | - NetSlice Template Information - Only generic fields (id, name) are described - For a full specification of the NetSlice Template see: - http://osm-download.etsi.org/ftp/osm-doc/nst.html + description: + type: string + credentials: + type: object + additionalProperties: true + vim_account: + type: string + format: uuid + k8s_version: + type: string + nets: + $ref: '#/components/schemas/K8sClusterNetList' + namespace: + type: string + cni: + type: array + items: + type: string + required: + - name + - credentials + - vim_account + - k8s_version + - nets + additionalProperties: false + EditK8sClusterRequest: type: object properties: - id: - description: NST Identifier - type: string name: - description: NST Name type: string - nsd: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nst.html' - NetSliceInstance: - description: | - NetSlice Instance Information - Only generic fields (_id, id, name, description) are described - For a full specification of the NetSlice Instance see: - http://osm-download.etsi.org/ftp/osm-doc/nsi.html + description: + type: string + credentials: + type: object + additionalProperties: true + vim_account: + type: string + format: uuid + k8s_version: + type: string + nets: + $ref: '#/components/schemas/K8sClusterNetList' + namespace: + type: string + cni: + type: array + items: + type: string + additionalProperties: false + VcaInfo: type: object properties: _id: - description: Identifier of the NetSlice instance. type: string format: uuid - id: - description: Identifier of the NetSlice instance. + schema_version: + type: string + format: X.Y[.Z] + schema_type: type: string - format: uuid name: - description: Human readable name of the NetSlice instance. type: string description: - description: Human readable description of the NetSlice instance. type: string - nsi: - $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsi.html' - required: - - _id - - id - - name - ArrayOfNetSliceInstance: + endpoints: + type: string + user: + type: string + secret: + type: string + cacert: + type: string + lxd-cloud: + type: string + lxd-credentials: + type: string + k8s-cloud: + type: string + k8s-credentials: + type: string + model-config: + type: object + additionalProperties: true + ArrayOfVcaInfo: type: array items: - $ref: '#/components/schemas/NetSliceInstance' - CreateNsiRequest: + $ref: '#/components/schemas/VcaInfo' + CreateVcaRequest: type: object properties: - nstId: - description: | - Identifier of the NST that defines the NetSlice instance to be created. + schema_version: type: string - format: uuid - nsiName: - description: | - Human-readable name of the NetSlice instance to be created. + format: X.Y[.Z] + schema_type: type: string - nsiDescription: - description: | - Human-readable description of the NetSlice instance to be created. + name: type: string - vimAccountId: - description: | - Identifier of the VIM Account where the NetSlice instance shall be created. + description: type: string - format: uuid - required: - - nstId - - nsiName - - vimAccountId - InstantiateNsiRequest: - type: object - properties: - nsiName: - description: | - Human-readable name of the NetSlice instance to be created. + endpoints: type: string - nstId: - description: | - Identifier of the NST that defines the NetSlice instance to be created. + user: type: string - format: uuid - vimAccountId: - description: | - Identifier of the VIM Account where the NetSlice instance shall be created. + secret: type: string - format: uuid + cacert: + type: string + lxd-cloud: + type: string + lxd-credentials: + type: string + k8s-cloud: + type: string + k8s-credentials: + type: string + model-config: + type: object + additionalProperties: true required: - - nsiName - - nstId - - vimAccountId - TerminateNsiRequest: + - name + - endpoints + - user + - secret + - cacert + - lxd-cloud + - lxd-credentials + - k8s-cloud + - k8s-credentials + additionalProperties: false + EditVcaRequest: type: object properties: - terminationTime: - description: | - Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated - automatically at this timestamp. Cardinality "0" indicates the NSI termination - takes place immediately. + name: + type: string + description: + type: string + endpoints: + type: string + user: + type: string + secret: + type: string + cacert: + type: string + lxd-cloud: type: string - format: date-time - NsiActionRequest: + lxd-credentials: + type: string + k8s-cloud: + type: string + k8s-credentials: + type: string + model-config: + type: object + additionalProperties: true + additionalProperties: false + K8sRepoType: + type: string + enum: + - chart + - bundle + K8sRepoInfo: type: object properties: - primitive: + _id: type: string - primitive_params: - $ref: '#/components/schemas/KeyValuePairs' - lcmOperationType: + format: uuid + name: type: string - netsliceInstanceId: + description: type: string - format: uuid - required: - - primitive - - primitive_params - CreateNsiContentRequest: + type: + $ref: '#/components/schemas/K8sRepoType' + url: + type: string + format: uri + username: + type: string + description: repository username + password: + type: string + description: repository password + ca-file: + type: string + description: verify certificates of HTTPS-enabled servers using this CA bundle + cert-file: + type: string + description: identify HTTPS client using this SSL certificate file + skip-tls-verify: + type: boolean + description: skip tls certificate checks for the repository + key-file: + type: string + description: identify HTTPS client using this SSL key file + ArrayOfK8sRepoInfo: + type: array + items: + $ref: '#/components/schemas/K8sRepoInfo' + CreateK8sRepoRequest: type: object properties: - nstId: - description: | - Identifier of the NST that defines the NetSlice instance to be created. + name: type: string - format: uuid - nsiName: - description: | - Human-readable name of the NetSlice instance to be created. + description: type: string - vimAccountId: - description: | - Identifier of the VIM Account where the NetSlice instance shall be created. + type: + $ref: '#/components/schemas/K8sRepoType' + url: type: string - format: uuid + format: uri required: - - nsdId - - nsName - - vimAccountId - CreateNsiContentResponse: + - name + - type + - url + additionalProperties: false + NslcmSubscriptionResponse: type: object properties: id: type: string format: uuid - nsilcmop_id: + filter: + type: object + CallbackUri: type: string - format: uuid - NsiLcmOpOcc: + format: uri + _links: + type: object + NslcmSubscriptionInfo: type: object properties: _id: type: string format: uuid - id: - type: string - format: uuid - lcmOperationType: + _admin: + type: object + schema_version: type: string - netsliceInstanceId: + format: 'X.Y[.Z]' + CallbackUri: type: string - format: uuid - isAutomaticInvocation: - type: boolean - isCancelPending: - type: boolean - startTime: - type: number - format: float - statusEnteredTime: - type: number - format: float - operationParams: + format: uri + filter: type: object - properties: - nsiName: - type: string - nstId: - type: string - format: uuid - vimAccountId: - type: string - format: uuid - netsliceInstanceId: - type: string - format: uuid - lcmOperationType: - type: string - nslcmops_ids: - type: array - items: - type: string - format: uuid - operationState: - type: string - detailed-status: + authentication: + $ref: '#/components/schemas/Authenticationschema' + ArrayOfNslcmSubscriptionInfo: + type: array + items: + $ref: '#/components/schemas/NslcmSubscriptionInfo' + NsInstanceSubscriptionFilter: + description: | + used to identify the network service + type: object + oneOf: + - $ref: '#/components/schemas/nsdIds' + - $ref: '#/components/schemas/vnfdIds' + - $ref: '#/components/schemas/pnfdIds' + - $ref: '#/components/schemas/nsInstanceIds' + - $ref: '#/components/schemas/nsInstanceNames' + nsdIds: + type: array + items: + type: string + vnfdIds: + type: array + items: + type: string + pnfdIds: + type: array + items: + type: string + nsInstanceIds: + type: array + items: + type: string + nsInstanceNames: + type: array + items: + type: string + Nslcmsubschema: + type: object + properties: + nsInstanceSubscriptionFilter: + $ref: '#/components/schemas/NsInstanceSubscriptionFilter' + notificationTypes: + description: | + If NsLcmOperationOccurrenceNotification is selected then at least operationTypes or states is required. If NsLcmOperationOccurrenceNotification is selected then at least nsComponentTypes, lcmOpName and lcmOpOccStatus is required + type: array + items: + type: string + enum: + - NsIdentifierCreationNotification + - NsIdentifierDeletionNotification + - NsLcmOperationOccurrenceNotification + - NsChangeNotification + operationTypes: + type: array + items: + type: string + enum: + - INSTANTIATE + - SCALE + - TERMINATE + - UPDATE + - HEAL + operationStates: + type: array + items: + type: string + enum: + - PROCESSING + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED + - FAILED_TEMP + - ROLLING_BACK + - ROLLED_BACK + nsComponentTypes: + type: array + items: + type: string + enum: + - VNF + - NS + - PNF + lcmOpNameImpactingNsComponent: + type: array + items: + type: string + enum: + - VNF_INSTANTIATE + - VNF_SCALE + - VNF_SCALE_TO_LEVEL + - VNF_CHANGE_FLAVOUR + - VNF_TERMINATE + - VNF_HEAL + - VNF_OPERATE + - VNF_CHANGE_EXT_CONN + - VNF_MODIFY_INFO + - NS_INSTANTIATE + - NS_SCALE + - NS_UPDATE + - NS_TERMINATE + - NS_HEAL + lcmOpOccStatusImpactingNsComponent: + type: array + items: + type: string + enum: + - START + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED + - ROLLED_BACK + Authenticationschema: + type: object + properties: + authType: type: string - links: + enum: + - basic + paramsBasic: type: object properties: - self: + userName: type: string - format: path # uri? - netsliceInstanceId: + password: type: string - format: path # uri? - ArrayOfNsiLcmOpOcc: - type: array - items: - $ref: '#/components/schemas/NsiLcmOpOcc' + NslcmSubscriptionRequest: + type: object + properties: + filter: + $ref: '#/components/schemas/Nslcmsubschema' + CallbackUri: + type: string + format: uri + authentication: + $ref: '#/components/schemas/Authenticationschema' + required: + - CallbackUri # END SCHEMAS requestBodies: @@ -4109,6 +8864,14 @@ components: application/yaml: schema: $ref: '#/components/schemas/NsdInfoModifications' + AlarmInfoModifications: + content: + application/json: + schema: + $ref: '#/components/schemas/AlarmInfoModifications' + application/yaml: + schema: + $ref: '#/components/schemas/AlarmInfoModifications' NsDescriptor: content: text/plain: @@ -4145,22 +8908,24 @@ components: text/plain: schema: $ref: '#/components/schemas/VnfDescriptor' - CreateNsRequest: + # CreateNsRequest: + # Substituted by InstantiateNsRequest + InstantiateNsRequest: content: application/json: schema: - $ref: '#/components/schemas/CreateNsRequest' + $ref: '#/components/schemas/InstantiateNsRequest' application/yaml: schema: - $ref: '#/components/schemas/CreateNsRequest' - InstantiateNsRequest: + $ref: '#/components/schemas/InstantiateNsRequest' + HealNsRequest: content: application/json: schema: - $ref: '#/components/schemas/InstantiateNsRequest' + $ref: '#/components/schemas/HealNsRequest' application/yaml: schema: - $ref: '#/components/schemas/InstantiateNsRequest' + $ref: '#/components/schemas/HealNsRequest' ScaleNsRequest: content: application/json: @@ -4177,14 +8942,8 @@ components: application/yaml: schema: $ref: '#/components/schemas/TerminateNsRequest' - CreateNSinstanceContentRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNSinstanceContentRequest' - application/yaml: - schema: - $ref: '#/components/schemas/CreateNSinstanceContentRequest' + # CreateNSinstanceContentRequest: + # Substituted by InstantiateNsRequest CreateNstInfoRequest: content: application/json: @@ -4211,14 +8970,8 @@ components: application/yaml: schema: $ref: '#/components/schemas/NstInfoModifications' - CreateNsiRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNsiRequest' - application/yaml: - schema: - $ref: '#/components/schemas/CreateNsiRequest' + # CreateNsiRequest: + # Substituted by InstantiateNsiRequest InstantiateNsiRequest: content: application/json: @@ -4243,14 +8996,176 @@ components: application/yaml: schema: $ref: '#/components/schemas/NsiActionRequest' - CreateNsiContentRequest: + # CreateNsiContentRequest: + # Substituted by InstantiateNsiRequest + CreateTokenRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTokenRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateTokenRequest' + CreateUserRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateUserRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateUserRequest' + EditUserRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditUserRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditUserRequest' + CreateProjectRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateProjectRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateProjectRequest' + EditProjectRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditProjectRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditProjectRequest' + CreateRoleRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateRoleRequest' + EditRoleRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditRoleRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditRoleRequest' + CreateVimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateVimRequest' + EditVimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditVimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditVimRequest' + CreateWimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateWimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateWimRequest' + EditWimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditWimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditWimRequest' + CreateSdnRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSdnRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateSdnRequest' + EditSdnRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditSdnRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditSdnRequest' + CreatePduRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePduRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreatePduRequest' + EditPduRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditPduRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditPduRequest' + CreateK8sClusterRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateK8sClusterRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateK8sClusterRequest' + EditK8sClusterRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditK8sClusterRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditK8sClusterRequest' + CreateVcaRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVcaRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateVcaRequest' + EditVcaRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditVcaRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditVcaRequest' + CreateK8sRepoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateK8sRepoRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateK8sRepoRequest' + NslcmSubscriptionRequest: content: application/json: schema: - $ref: '#/components/schemas/CreateNsiContentRequest' + $ref: '#/components/schemas/NslcmSubscriptionRequest' application/yaml: schema: - $ref: '#/components/schemas/CreateNsiContentRequest' + $ref: '#/components/schemas/NslcmSubscriptionRequest' # END REQUEST BODIES securitySchemes: