X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=inline;f=osm-openapi.yaml;h=324155cf78daa2975310d674b725b207a47c512a;hb=d3f0fadd49d7e5fe91ef5bc16d51275f4961997b;hp=919223f063c282b2f5638c1150f4ee86ff8a9a33;hpb=8bf8806bc2c7c58e0871764f3d4c59fbbaa288bb;p=osm%2FSOL005.git diff --git a/osm-openapi.yaml b/osm-openapi.yaml index 919223f..324155c 100644 --- a/osm-openapi.yaml +++ b/osm-openapi.yaml @@ -1407,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" @@ -2085,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 @@ -5486,6 +5660,218 @@ paths: $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: @@ -5765,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: @@ -7134,6 +7529,10 @@ components: type: integer minimum: 0 nullable: false + vca: + type: integer + minimum: 0 + nullable: false k8srepos: type: integer minimum: 0 @@ -7186,6 +7585,10 @@ components: type: integer minimum: 0 nullable: true + vca: + type: integer + minimum: 0 + nullable: true k8srepos: type: integer minimum: 0 @@ -7319,9 +7722,14 @@ components: type: string vim_password: type: string + vca: + type: string + format: uuid config: type: object additionalProperties: true + resources: + type: object ArrayOfVimInfo: type: array items: @@ -7353,9 +7761,14 @@ components: type: string vim_password: type: string + vca: + type: string + format: uuid config: type: object additionalProperties: true + resources: + type: object required: - name - vim_url @@ -7386,6 +7799,9 @@ components: type: string vim_password: type: string + vca: + type: string + format: uuid config: type: object additionalProperties: true @@ -7788,6 +8204,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: @@ -7829,6 +8352,172 @@ components: - 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: @@ -8102,6 +8791,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: @@ -8110,6 +8815,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: