X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm-openapi.yaml;h=64a3e4cd6d53f5f9d51eb9a550c1ff12e68bfe80;hb=53534b7cd1e279a43fb447591434131125b41634;hp=aaee61603a7181ebbbcbccce011bb4af7a16596b;hpb=4cd9e95b2de965ba0240f5c3c0460f84183d3fc0;p=osm%2FSOL005.git diff --git a/osm-openapi.yaml b/osm-openapi.yaml index aaee616..64a3e4c 100644 --- a/osm-openapi.yaml +++ b/osm-openapi.yaml @@ -1605,6 +1605,118 @@ 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}/migrate': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Migrate VNFs in a NS instance + description: | + Migrate the VNFs and VDUs in 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: migrateNSinstance + requestBody: + $ref: '#/components/requestBodies/NSinstanceMigrateRequest' + 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 @@ -1735,6 +1847,115 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' + '/nslcm/v1/ns_instances/{nsInstanceId}/update': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Update a NS instance + description: | + Update 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: updateNSinstance + requestBody: + $ref: '#/components/requestBodies/UpdateNsRequest' + 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}/verticalscale': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Vertical scale a NS instance + description: + Execute an verticalscale on a NS instance. + The NS instance must have been created and must be in INSTANTIATED state. + operationId: verticalscaleNSinstance + requestBody: + $ref: '#/components/requestBodies/VerticalscaleNsRequest' + 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_content': get: tags: @@ -2091,7 +2312,7 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - /nslcm/v1/subscriptions: + '/nslcm/v1/subscriptions': get: tags: - NS instances @@ -3941,10 +4162,14 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TokenInfo' + oneOf: + - $ref: '#/components/schemas/TokenInfo' + - $ref: '#/components/schemas/PasswordExpiryInfo' application/yaml: schema: - $ref: '#/components/schemas/TokenInfo' + oneOf: + - $ref: '#/components/schemas/TokenInfo' + - $ref: '#/components/schemas/PasswordExpiryInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -6857,6 +7082,101 @@ components: - 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 + NSinstanceMigrateRequest: + description: > + This type represents request parameters for the "Migrate" operation. This operation supports the migration of an NS + instance by migrating one or more of the VDUs that are part of this NS. + type: object + properties: + vnfInstanceId: + type: string + migrateToHost: + type: string + vdu: + type: object + properties: + vduId: + type: string + vduCountIndex: + type: integer + required: + - vduId + required: + - vnfInstanceId + additionalProperties: false TerminateNsRequest: type: object properties: @@ -6903,6 +7223,103 @@ components: - primitive - primitive_params additionalProperties: false + UpdateNsRequest: + description: > + This type represents request parameters for the "Update NS" operation. This operation supports the update of an NS + instance by updating one or more of the VNFs that are part of this NS. + type: object + properties: + updateType: + type: string + enum: + - CHANGE_VNFPKG + - REMOVE_VNF + - MODIFY_VNF_INFORMATION + - OPERATE_VNF + changeVnfPackageData: + type: object + properties: + vnfInstanceId: + type: string + vnfdId: + type: string + required: + - vnfInstanceId + - vnfdId + removeVnfInstanceId: + type: string + modifyVnfInfoData: + type: object + properties: + vnfInstanceId: + type: string + vnfdId: + type: string + required: + - vnfInstanceId + - vnfdId + operateVnfData: + type: object + properties: + vnfInstanceId: + type: string + changeStateTo: + type: string + additionalParam: + type: object + properties: + run-day1: + type: boolean + vdu_id: + type: string + count-index: + type: number + required: + - vdu_id + - count-index + required: + - vnfInstanceId + - changeStateTo + additionalProperties: false + required: + - updateType + additionalProperties: false + VerticalscaleNsRequest: + description: > + This type represents request parameters for the "Vertical Scale NS" operation. + This operation supports the vertical scale of an NS instance by verticalscaling + one or more of the VNFs that are part of this NS. + type: object + properties: + verticalScale: + type: string + changeVnfFlavorData: + type: object + properties: + vnfInstanceId: + type: string + format: uuid + additionalParams: + type: object + properties: + vduid: + type: string + format: uuid + vduCountIndex: + type: integer + virtualMemory: + type: integer + sizeOfStorage: + type: integer + numVirtualCpu: + type: integer + required: + - vnfInstanceId + - additionalParams + additionalProperties: false + required: + - verticalScale + additionalProperties: false # CreateNSinstanceContentRequest: # Substituted by InstantiateNsRequest CreateNSinstanceContentResponse: @@ -7547,6 +7964,16 @@ components: format: uuid name: type: string + PasswordExpiryInfo: + type: object + properties: + id: + type: string + message: + type: string + user_id: + type: string + format: uuid ArrayOfTokenInfo: type: array items: @@ -8289,7 +8716,18 @@ components: type: array items: type: object - additionalProperties: true + additionalProperties: false + K8sClusterDeploymentMethods: + type: object + properties: + helm-chart: + type: boolean + juju-bundle: + type: boolean + helm-chart-v3: + type: boolean + additionalProperties: false + minProperties: 3 K8sClusterInfo: type: object properties: @@ -8315,6 +8753,8 @@ components: type: string nets: $ref: '#/components/schemas/K8sClusterNetList' + deployment_methods: + $ref: '#/components/schemas/K8sClusterDeploymentMethods' namespace: type: string cni: @@ -8789,6 +9229,22 @@ components: application/yaml: schema: $ref: '#/components/schemas/InstantiateNsRequest' + HealNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/HealNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/HealNsRequest' + NSinstanceMigrateRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/NSinstanceMigrateRequest' + application/yaml: + schema: + $ref: '#/components/schemas/NSinstanceMigrateRequest' ScaleNsRequest: content: application/json: @@ -8805,6 +9261,22 @@ components: application/yaml: schema: $ref: '#/components/schemas/TerminateNsRequest' + UpdateNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/UpdateNsRequest' + VerticalscaleNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/VerticalscaleNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/VerticalscaleNsRequest' # CreateNSinstanceContentRequest: # Substituted by InstantiateNsRequest CreateNstInfoRequest: