X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm-openapi.yaml;h=a7f57be579afc71e13243e8239abeff35fab62d9;hb=b5a065ff1d8cf5b3f6a2e515a3a242d04a07116e;hp=44789655a9e612ec1d2f81a630c108a74f4ccdd8;hpb=31b3a80ba77bded74b9af8782180f6005f932298;p=osm%2FSOL005.git diff --git a/osm-openapi.yaml b/osm-openapi.yaml index 4478965..a7f57be 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" @@ -1599,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 @@ -2085,7 +2147,7 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - /nslcm/v1/subscriptions: + '/nslcm/v1/subscriptions': get: tags: - NS instances @@ -2255,6 +2317,133 @@ paths: $ref: '#/components/responses/UnexpectedError' # END NS Instances +# BEGIN Alarms + '/nsfm/v1/alarms': + get: + tags: + - "Alarms" + summary: Query information about multiple alarms + description: Query information about multiple alarms + operationId: getAlarms + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfAlarm' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfAlarm' + '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' + '/nsfm/v1/alarms/{uuid}': + parameters: + - name: uuid + in: path + required: true + description: Alarm UUID + schema: + type: string + get: + tags: + - "Alarms" + summary: Read an individual Alarm + description: Read an individual Alarm + operationId: getAlarm + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Alarm' + application/yaml: + schema: + $ref: '#/components/schemas/Alarm' + '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: + - "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: + '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 Alarms + # BEGIN NetSlice Templates '/nst/v1/netslice_templates': get: @@ -5654,6 +5843,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: @@ -5982,6 +6383,20 @@ components: 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 @@ -6498,6 +6913,79 @@ 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 TerminateNsRequest: type: object properties: @@ -6706,6 +7194,45 @@ components: 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: @@ -7311,6 +7838,10 @@ components: type: integer minimum: 0 nullable: false + vca: + type: integer + minimum: 0 + nullable: false k8srepos: type: integer minimum: 0 @@ -7363,6 +7894,10 @@ components: type: integer minimum: 0 nullable: true + vca: + type: integer + minimum: 0 + nullable: true k8srepos: type: integer minimum: 0 @@ -7496,9 +8031,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: @@ -7530,9 +8070,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 @@ -7563,6 +8108,9 @@ components: type: string vim_password: type: string + vca: + type: string + format: uuid config: type: object additionalProperties: true @@ -7965,6 +8513,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: @@ -7985,6 +8640,24 @@ components: 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: @@ -8191,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: @@ -8237,6 +8918,14 @@ components: application/yaml: schema: $ref: '#/components/schemas/InstantiateNsRequest' + HealNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/HealNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/HealNsRequest' ScaleNsRequest: content: application/json: @@ -8445,6 +9134,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: