X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm-openapi.yaml;h=594becb991b0705eedf85fbcdaf86adcf662bbfb;hb=6400ff7c12e70193c5b0d07aecadf32fe46467c3;hp=eb3f7c60a7cdafd77f8b0a21780c007971352f02;hpb=af79f3cf197e8cf7ca04ce18dd1757c177a1b5bd;p=osm%2FSOL005.git diff --git a/osm-openapi.yaml b/osm-openapi.yaml index eb3f7c6..594becb 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,10 +29,18 @@ 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' + - 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 @@ -1399,6 +1407,12 @@ paths: description: NS Instance ID schema: 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" @@ -2077,6 +2091,174 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' + /nslcm/v1/subscriptions: + get: + tags: + - 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/ArrayOfNslcmSubscriptionInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo' + '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: + - 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/NslcmSubscriptionRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: object + content: + application/json: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + '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/subscriptions/{nsSubscriptionsId}': + parameters: + - name: nsSubscriptionsId + in: path + required: true + description: Network Service Subscription ID + schema: + type: string + get: + tags: + - 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/NslcmSubscriptionInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionInfo' + '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: + - NS instances + summary: Delete an individual Network Service Subscription + description: Delete an individual Network Service Subscription + operationId: deleteNsSubcriptionId + 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 NS Instances # BEGIN NetSlice Templates @@ -3322,7 +3504,7 @@ paths: type: string get: tags: - - "NSPM" + - "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 @@ -3366,7 +3548,7 @@ paths: '/pdu/v1/pdu_descriptors': get: tags: - - "PDU" + - "Physical Data Units (PDU)" summary: Query information about multiple PDU Descriptors description: Query information about multiple PDU Descriptors operationId: getPDUs @@ -3406,7 +3588,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: - - "PDU" + - "Physical Data Units (PDU)" summary: Create a new PDU description: Create a new PDU Descriptor operationId: createPDU @@ -3461,7 +3643,7 @@ paths: type: string get: tags: - - "PDU" + - "Physical Data Units (PDU)" summary: Query information about an individual PDU Descriptor description: Query information about an individual PDU Descriptor operationId: getPDU @@ -3501,7 +3683,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: - - "PDU" + - "Physical Data Units (PDU)" summary: Modify an individual PDU Descriptor description: Modify an individual PDU Descriptor operationId: editPDU @@ -3536,7 +3718,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: - - "PDU" + - "Physical Data Units (PDU)" summary: Delete an individual PDU Descriptor description: Delete an individual PDU Descriptor operationId: deletePDU @@ -3573,6 +3755,7 @@ paths: '/admin/v1/tokens': get: tags: + - "Authentication" - "Admin" summary: Query information about multiple Tokens description: Query information about multiple Tokens @@ -3613,6 +3796,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Authentication" - "Admin" summary: Request a new Token description: Request a new Token @@ -3660,6 +3844,7 @@ paths: $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 @@ -3708,6 +3893,7 @@ paths: type: string get: tags: + - "Authentication" - "Admin" summary: Query information about an individual Token description: Query information about an individual Token @@ -3748,6 +3934,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Authentication" - "Admin" summary: Delete the Token indicated as parameter description: Delete the Token indicated as parameter @@ -3789,6 +3976,7 @@ paths: '/admin/v1/users': get: tags: + - "Identity" - "Admin" summary: Query information about multiple Users description: Query information about multiple Users @@ -3829,6 +4017,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Identity" - "Admin" summary: Create a new User description: Create a new User @@ -3884,6 +4073,7 @@ paths: type: string get: tags: + - "Identity" - "Admin" summary: Query information about an individual User description: Query information about an individual User @@ -3924,6 +4114,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Identity" - "Admin" summary: Modify a User description: Modify a User @@ -3959,6 +4150,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Identity" - "Admin" summary: Delete a User description: Delete a User @@ -3993,6 +4185,7 @@ paths: '/admin/v1/projects': get: tags: + - "Identity" - "Admin" summary: Query information about multiple Projects description: Query information about multiple Projects @@ -4033,6 +4226,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Identity" - "Admin" summary: Create a new Project description: Create a new Project @@ -4088,6 +4282,7 @@ paths: type: string get: tags: + - "Identity" - "Admin" summary: Query information about an individual Project description: Query information about an individual Project @@ -4128,6 +4323,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Identity" - "Admin" summary: Modify a Project description: Modify a Project @@ -4163,6 +4359,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Identity" - "Admin" summary: Delete a Project description: Delete a Project @@ -4197,6 +4394,7 @@ paths: '/admin/v1/roles': get: tags: + - "Identity" - "Admin" summary: Query information about multiple Roles description: Query information about multiple Roles @@ -4237,6 +4435,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Identity" - "Admin" summary: Create a new Role description: Create a new Role @@ -4292,6 +4491,7 @@ paths: type: string get: tags: + - "Identity" - "Admin" summary: Query information about an individual Role description: Query information about an individual Role @@ -4332,6 +4532,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Identity" - "Admin" summary: Modify a Role description: Modify a Role @@ -4367,6 +4568,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Identity" - "Admin" summary: Delete a Role description: Delete a Role @@ -4401,6 +4603,7 @@ paths: '/admin/v1/vims': get: tags: + - "Infrastructure" - "Admin" summary: Query information about multiple VIMs description: Query information about multiple VIMs @@ -4441,6 +4644,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Infrastructure" - "Admin" summary: Create a new VIM description: Create a new VIM @@ -4492,6 +4696,7 @@ paths: format: uuid get: tags: + - "Infrastructure" - "Admin" summary: Query information about an individual VIM description: Query information about an individual VIM @@ -4532,6 +4737,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Infrastructure" - "Admin" summary: Modify a VIM description: Modify a VIM @@ -4574,6 +4780,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Infrastructure" - "Admin" summary: Delete a VIM description: Delete a VIM @@ -4608,6 +4815,7 @@ paths: '/admin/v1/vim_accounts': get: tags: + - "Infrastructure" - "Admin" summary: Query information about multiple VIM Accounts description: Query information about multiple VIM Accounts @@ -4648,6 +4856,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Infrastructure" - "Admin" summary: Create a new VIM Account description: Create a new VIM Account @@ -4699,6 +4908,7 @@ paths: format: uuid get: tags: + - "Infrastructure" - "Admin" summary: Query information about an individual VIM Account description: Query information about an individual VIM Account @@ -4739,6 +4949,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Infrastructure" - "Admin" summary: Modify a VIM Account description: Modify a VIM Account @@ -4781,6 +4992,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Infrastructure" - "Admin" summary: Delete a VIM Account description: Delete a VIM Account @@ -4815,6 +5027,7 @@ paths: '/admin/v1/wim_accounts': get: tags: + - "Infrastructure" - "Admin" summary: Query information about multiple WIM Accounts description: Query information about multiple WIM Accounts @@ -4855,6 +5068,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Infrastructure" - "Admin" summary: Create a new WIM Account description: Create a new WIM Account @@ -4906,6 +5120,7 @@ paths: format: uuid get: tags: + - "Infrastructure" - "Admin" summary: Query information about an individual WIM Account description: Query information about an individual WIM Account @@ -4946,6 +5161,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Infrastructure" - "Admin" summary: Modify a WIM Account description: Modify a WIM Account @@ -4988,6 +5204,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Infrastructure" - "Admin" summary: Delete a WIM Account description: Delete a WIM Account @@ -5022,6 +5239,7 @@ paths: '/admin/v1/sdns': get: tags: + - "Infrastructure" - "Admin" summary: Query information about multiple SDNs description: Query information about multiple SDNs @@ -5062,6 +5280,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Infrastructure" - "Admin" summary: Create a new SDN description: Create a new SDN @@ -5113,6 +5332,7 @@ paths: format: uuid get: tags: + - "Infrastructure" - "Admin" summary: Query information about an individual SDN description: Query information about an individual SDN @@ -5153,6 +5373,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Infrastructure" - "Admin" summary: Modify a SDN description: Modify a SDN @@ -5195,6 +5416,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Infrastructure" - "Admin" summary: Delete a SDN description: Delete a SDN @@ -5229,6 +5451,7 @@ paths: '/admin/v1/k8sclusters': get: tags: + - "Infrastructure" - "Admin" summary: Query information about multiple K8s Clusters description: Query information about multiple K8s Clusters @@ -5269,6 +5492,7 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Infrastructure" - "Admin" summary: Create a new K8s Cluster description: Create a new K8s Cluster @@ -5320,6 +5544,7 @@ paths: format: uuid get: tags: + - "Infrastructure" - "Admin" summary: Query information about an individual K8s Cluster description: Query information about an individual K8s Cluster @@ -5360,6 +5585,7 @@ paths: $ref: '#/components/responses/UnexpectedError' patch: tags: + - "Infrastructure" - "Admin" summary: Modify a K8s Cluster description: Modify a K8s Cluster @@ -5402,6 +5628,7 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Infrastructure" - "Admin" summary: Delete a K8s Cluster description: Delete a K8s Cluster @@ -5433,23 +5660,24 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/admin/v1/k8srepos': + '/admin/v1/vca': get: tags: + - "Infrastructure" - "Admin" - summary: Query information about multiple K8s Repos - description: Query information about multiple K8s Repos - operationId: getK8sRepos + 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/ArrayOfK8sRepoInfo' + $ref: '#/components/schemas/ArrayOfVcaInfo' application/yaml: schema: - $ref: '#/components/schemas/ArrayOfK8sRepoInfo' + $ref: '#/components/schemas/ArrayOfVcaInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -5476,12 +5704,13 @@ paths: $ref: '#/components/responses/UnexpectedError' post: tags: + - "Infrastructure" - "Admin" - summary: Create a new K8s Repo - description: Create a new K8s Repo - operationId: createK8sRepo + summary: Create a new VCA + description: Create a new VCA + operationId: createVca requestBody: - $ref: '#/components/requestBodies/CreateK8sRepoRequest' + $ref: '#/components/requestBodies/CreateVcaRequest' responses: '202': description: Accepted @@ -5516,31 +5745,75 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/admin/v1/k8srepos/{k8sRepoId}': + '/admin/v1/vca/{vcaId}': parameters: - - name: k8sRepoId + - name: vcaId in: path required: true - description: K8s Repo ID + description: VCA ID schema: type: string format: uuid get: tags: + - "Infrastructure" - "Admin" - summary: Query information about an individual K8s Repo - description: Query information about an individual K8s Repo - operationId: getK8sRepo + 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/K8sRepoInfo' + $ref: '#/components/schemas/VcaInfo' application/yaml: schema: - $ref: '#/components/schemas/K8sRepoInfo' + $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': @@ -5567,10 +5840,11 @@ paths: $ref: '#/components/responses/UnexpectedError' delete: tags: + - "Infrastructure" - "Admin" - summary: Delete a K8s Repo - description: Delete a K8s Repo - operationId: deleteK8sRepo + summary: Delete a VCA + description: Delete a VCA + operationId: deleteVca responses: '202': description: Accepted @@ -5598,65 +5872,234 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' -# END Admin - -externalDocs: - description: Find out more about OSM - url: 'http://osm.etsi.org/wikipub' - -components: - responses: - BadRequest: - description: Bad request. The server cannot process the request due to a client error. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - Unauthorized: - description: Authorization information is missing or invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - Forbidden: - description: Not enough permissions to do this operation. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - NotFound: - description: The specified resource was not found. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - MethodNotAllowed: - description: This method is not supported for the requested resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - NotAcceptable: - description: The requested resource content cannot match the Accept headers sent in the request. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - Conflict: - description: The operation cannot be executed currently, due to a conflict with the state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - UnprocessableEntity: - description: The request was well-formed but was unable to be followed due to semantic errors. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - InternalServerError: - description: Internal server error. - content: + '/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 about OSM + url: 'https://osm.etsi.org/docs/user-guide/' + +components: + responses: + BadRequest: + description: Bad request. The server cannot process the request due to a client error. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + Unauthorized: + description: Authorization information is missing or invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + Forbidden: + description: Not enough permissions to do this operation. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + NotFound: + description: The specified resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + MethodNotAllowed: + description: This method is not supported for the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + NotAcceptable: + description: The requested resource content cannot match the Accept headers sent in the request. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + Conflict: + description: The operation cannot be executed currently, due to a conflict with the state of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + UnprocessableEntity: + description: The request was well-formed but was unable to be followed due to semantic errors. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + InternalServerError: + description: Internal server error. + content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' @@ -5708,6 +6151,15 @@ components: 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: @@ -5926,7 +6378,7 @@ components: additionalParamsForNs: type: object additionalProperties: true - additionalParamsForVnf: + additionalParamsForVnf: &additionalparamsforvnf type: array items: type: object @@ -5936,6 +6388,11 @@ components: 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: @@ -5957,12 +6414,17 @@ components: 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 - - additionalParams + minProperties: 2 additionalProperties: false required: - member-vnf-index @@ -5977,6 +6439,18 @@ components: 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: @@ -6092,6 +6566,30 @@ components: 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 @@ -6186,6 +6684,9 @@ components: type: string enum: - SCALE_VNF + timeout_ns_scale: + description: timeout for the scale operation + type: integer scaleVnfData: type: object properties: @@ -6199,21 +6700,35 @@ components: properties: scaling-group-descriptor: type: string + scaling-policy: + type: string member-vnf-index: type: string - additionalProperties: true - additionalProperties: true - additionalProperties: true + required: + - scaling-group-descriptor + - member-vnf-index + additionalProperties: false + required: + - scaleVnfType + - scaleByStepData + additionalProperties: false + required: + - scaleType + - scaleVnfData + additionalProperties: false 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 + 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: @@ -6223,19 +6738,26 @@ components: 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' - lcmOperationType: - type: string - nsInstanceId: - type: string - format: uuid 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 @@ -6471,48 +6993,7 @@ components: additionalParamsForNs: type: object additionalProperties: true - additionalParamsForVnf: - type: array - items: - type: object - properties: - member-vnf-index: - type: string - additionalParams: - type: object - additionalProperties: true - 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 - additionalParams: - type: object - additionalProperties: true - required: - - kdu_name - - additionalParams - additionalProperties: false - required: - - member-vnf-index - minProperties: 2 - additionalProperties: false + additionalParamsForVnf: *additionalparamsforvnf ssh_keys: type: array items: @@ -7016,19 +7497,19 @@ components: type: integer minimum: 0 nullable: false - nsts: + slice_templates: type: integer minimum: 0 nullable: false - pdus: + pduds: type: integer minimum: 0 nullable: false - nsrs: + ns_instances: type: integer minimum: 0 nullable: false - nsis: + slice_instances: type: integer minimum: 0 nullable: false @@ -7040,7 +7521,23 @@ components: type: integer minimum: 0 nullable: false - sdns: + 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 @@ -7056,19 +7553,19 @@ components: type: integer minimum: 0 nullable: true - nsts: + slice_templates: type: integer minimum: 0 nullable: true - pdus: + pduds: type: integer minimum: 0 nullable: true - nsrs: + ns_instances: type: integer minimum: 0 nullable: true - nsis: + slice_instances: type: integer minimum: 0 nullable: true @@ -7080,7 +7577,23 @@ components: type: integer minimum: 0 nullable: true - sdns: + 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 @@ -7202,13 +7715,16 @@ components: $ref: '#/components/schemas/VimType' vim_url: type: string - format: url # uri? + 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 @@ -7236,13 +7752,16 @@ components: $ref: '#/components/schemas/VimType' vim_url: type: string - format: url # uri? + 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 @@ -7269,13 +7788,16 @@ components: $ref: '#/components/schemas/VimType' vim_url: type: string - format: url # uri? + 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 @@ -7324,7 +7846,7 @@ components: $ref: '#/components/schemas/WimType' wim_url: type: string - format: url # uri? + format: uri user: type: string password: @@ -7354,7 +7876,7 @@ components: $ref: '#/components/schemas/WimType' wim_url: type: string - format: url # uri? + format: uri user: type: string password: @@ -7380,7 +7902,7 @@ components: type: string wim_url: type: string - format: url # uri? + format: uri user: type: string password: @@ -7678,6 +8200,113 @@ components: items: type: string additionalProperties: false + VcaInfo: + type: object + properties: + _id: + type: string + format: uuid + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + name: + type: string + description: + type: string + 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/VcaInfo' + CreateVcaRequest: + type: object + properties: + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + name: + type: string + description: + type: string + 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 + required: + - name + - endpoints + - user + - secret + - cacert + - lxd-cloud + - lxd-credentials + - k8s-cloud + - k8s-credentials + additionalProperties: false + EditVcaRequest: + type: object + properties: + name: + type: string + description: + type: string + 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 + additionalProperties: false K8sRepoType: type: string enum: @@ -7697,7 +8326,7 @@ components: $ref: '#/components/schemas/K8sRepoType' url: type: string - format: url # uri? + format: uri ArrayOfK8sRepoInfo: type: array items: @@ -7713,12 +8342,178 @@ components: $ref: '#/components/schemas/K8sRepoType' url: type: string - format: url # uri? + format: uri required: - name - type - url additionalProperties: false + NslcmSubscriptionResponse: + type: object + properties: + id: + type: string + format: uuid + filter: + type: object + CallbackUri: + type: string + format: uri + _links: + type: object + NslcmSubscriptionInfo: + type: object + properties: + _id: + type: string + format: uuid + _admin: + type: object + schema_version: + type: string + format: 'X.Y[.Z]' + CallbackUri: + type: string + format: uri + filter: + type: object + 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 + enum: + - basic + paramsBasic: + type: object + properties: + userName: + type: string + password: + type: string + NslcmSubscriptionRequest: + type: object + properties: + filter: + $ref: '#/components/schemas/Nslcmsubschema' + CallbackUri: + type: string + format: uri + authentication: + $ref: '#/components/schemas/Authenticationschema' + required: + - CallbackUri # END SCHEMAS requestBodies: @@ -7992,6 +8787,22 @@ components: 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: @@ -8000,6 +8811,14 @@ components: application/yaml: schema: $ref: '#/components/schemas/CreateK8sRepoRequest' + NslcmSubscriptionRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/NslcmSubscriptionRequest' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionRequest' # END REQUEST BODIES securitySchemes: