diff --git a/.jenkins.sh b/.jenkins.sh index a6d31c44f981077609a6fc40e86455051bff2c59..2a971ec49cf841a61473f8ae8f519ba43fc1fc97 100644 --- a/.jenkins.sh +++ b/.jenkins.sh @@ -12,10 +12,8 @@ rm build/*-API.json cd docker ./build-container.sh -./run-container.sh "${run_dir}" - -cd .. -python ./scripts/add_change_comment.py +./run-container.sh "${run_dir}" +OUTCOME=$? -exit $? +exit $OUTCOME diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 81baff6402655170ad279fd083b6dab98a71acea..b0be633980085c86f4d08ed23afac64bdd3ec5e5 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -1,96 +1,177 @@ ---- swagger: "2.0" + info: - description: "DRAFT - SOL005 - NSD Management Interface IMPORTANT: Please note that\ - \ this file might be not aligned to the current version of the ETSI Group Specification\ - \ it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies\ - \ the published ETSI Group Specification takes precedence. Please report bugs\ - \ to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis\n" - version: "2.4.1" - title: "DRAFT - SOL005 - NSD Management Interface" - contact: - name: "NFV-SOL WG" + version: "1.0.0" + title: "SOL005 - NSD Management Interface" + description: > + SOL005 - NSD Management Interface + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to and has not been + approved by the ETSI NFV ISG. In case of discrepancies the published ETSI + Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis license: name: "ETSI Forge copyright notice" - url: "https://forge.etsi.org/etsi-forge-copyright-notice.txt" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" +externalDocs: + description: ETSI GS NFV-SOL 005 V2.4.1 + url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf +basePath: "/nsd/v1" +schemes: + - https consumes: - "application/json" produces: - "application/json" paths: - /ns_descriptors: +############################################################################### +# NS Descriptors # +############################################################################### + '/ns_descriptors': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.2 get: - summary: "Query NSD Info" - description: "The GET method queries information about multiple NS descriptor\ - \ resources. This method shall follow the provisions specified in the Tables\ - \ 5.4.2.3.2-1 and 5.4.2.3.2-2 of GS NFV-SOL 005 for URI query parameters,\ - \ request and response data structures, and response codes." + summary: Query information about multiple NS descriptor resources. + description: > + "The GET method queries information about multiple NS descriptor resources. + This method shall follow the provisions specified in the + Tables 5.4.2.3.2-1 and 5.4.2.3.2-2 for URI query parameters, + request and response data structures, and response codes." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "This header field shall be present if the response is expected\ - \ to have a non-empty message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query + string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the NsdInfo and in data types referenced from + it shall be supported in attribute-based filtering parameters." + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + "Include all complex attributes in the response. See clause 4.3.3 for details. + The NFVO shall support this parameter." + - name: "fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be included into the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be excluded from the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + "Indicates to exclude the following complex attributes from the response. See + clause 4.3.3 for details. The VNFM shall support this parameter. + The following attributes shall be excluded from the NsdInfo structure in the + response body if this parameter is provided, or none of the parameters + "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + userDefinedData." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: "Information about zero or more NS descriptors.\nThe response\ - \ body shall contain a representation of zero or more NS descriptors,\ - \ as defined in clause 5.5.2.2 of GS NFV-SOL 005." - schema: - $ref: "#/definitions/NsdInfo" + description: > + 200 OK + + Information about zero or more NS descriptors. + The response body shall contain a representation of + zero or more NS descriptors, as defined in + clause 5.5.2.2 headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + NsdInfo: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" 400: - description: "There are two possible scenarios listed below.\n\nError: Invalid\ - \ attribute-based filtering parameters. \n\nThe response body shall contain\ - \ a ProblemDetails structure, in which the \"detail\" attribute should\ - \ convey more information about the error.\n\nError: Invalid attribute\ - \ selector. The response body shall contain a ProblemDetails structure,\ - \ in which the \"detail\" attribute should convey more information about\ - \ the error." + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" post: - summary: "Create NSD Info" - description: "The POST method is used to create a new NS descriptor resource.\ - \ This method shall follow the provisions specified in the Tables 5.4.2.3.1-1\ - \ and 5.4.2.3.1-2 of GS NFV-SOL 005 for URI query parameters, request and\ - \ response data structures, and response codes." - consumes: [] - parameters: - - name: "Accept" - in: "header" - required: false - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the\nresponse is expected to have a non-empty\n\ - message body." - - name: "Content-Type" - in: "header" - required: false - type: "string" - description: "The MIME type of the body of the request.\nThis header field\ - \ shall be present if the\nrequest has a non-empty message body." - - name: "Authorization" - in: "header" + summary: Create a new NS descriptor resource. + description: > + The POST method is used to create a new NS descriptor resource or a new version of an on-boarded NS descriptor. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005" + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string - name: "body" in: "body" required: true @@ -100,157 +181,159 @@ paths: - "CreateNsdInfoRequest" properties: CreateNsdInfoRequest: - $ref: "#/definitions/CreateNsdInfoRequest" - description: "The CreateNsdInfoRequest contains parameters for creating\ - \ an NS descriptor resource, as defined in\nclause 5.5.2.4 of GS NFV-SOL\ - \ 005." + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreateNsdInfoRequest" + description: > + Parameters of creating an NS descriptor resource, as defined in clause 5.5.2.3 responses: 201: - description: "Status 201" + description: > + Status 201 + + An NS descriptor resource was created successfully, as a new NS descriptor resource. + The response body shall contain a representation + of the new NS descriptor resource, as defined in clause 5.5.2.3 of GS NFV-SOL 005. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of the + new NS descriptor resource. schema: type: "object" - description: "An NS descriptor resource was created successfully, as a\ - \ new NS descriptor resource. The response body shall contain a representation\ - \ of the new NS descriptor resource, as defined in clause 5.5.2.2 of\ - \ GS NFV-SOL 005." properties: NsdInfo: - $ref: "#/definitions/NsdInfo" + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" headers: - Location: - type: "string" - description: "The HTTP response shall include a \"Location\" HTTP header\ - \ that contains the resource URI of the new NS descriptor resource." Content-Type: type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." - /ns_descriptors/{nsdInfoId}: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual NS Descriptor # +############################################################################### + '/ns_descriptors/{nsdInfoId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.3 + parameters: + - name: "nsdInfoId" + description: > + Identifier of the individual NS descriptor resource. + in: "path" + required: true + type: "string" get: - summary: "Query NSD Info" - description: "The GET method reads information about an individual NS descriptor.\ - \ This method shall follow the provisions specified in GS NFV-SOL 005 Tables\ - \ 5.4.3.3.2-1 and 5.4.3.3.2-2 of GS NFV-SOL 005 for URI query parameters,\ - \ request and response data structures, and response codes." + summary: Read information about an individual NS descriptor resource. + description: > + "The GET method reads information about an individual NS descriptor. + This method shall follow the provisions specified in GS NFV-SOL 005 Tables + 5.4.3.3.2-1 and 5.4.3.3.2-2 of GS NFV-SOL 005 for URI query parameters, + request and response data structures, and response codes." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present \nif the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: "Information about the individual NS descriptor. The response\ - \ body shall contain a representation of the individual NS descriptor,\ - \ as defined in clause 5.5.2.2 of GS NFV-SOL 005." + description: > + 200 OK + + Information about the individual NS descriptor. + The response body shall contain a representation of + the individual NS descriptor. schema: - $ref: "#/definitions/NsdInfo" + type: "object" + properties: + NsdInfo: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" headers: Content-Type: type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." - WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." - delete: - summary: "Delete NSD" - description: "The DELETE method deletes an individual NS descriptor resource.\ - \ An individual NS descriptor resource can only be deleted when there is no\ - \ NS instance using it (i.e. usageState = NOT_IN_USE) and has been disabled\ - \ already (i.e. operationalState = DISABLED). Otherwise, the DELETE method\ - \ shall fail. This method shall follow the provisions specified in the Tables\ - \ 5.4.3.3.5-1 and 5.4.3.3.5-2 of GS NFV-SOL 005 for URI query parameters,\ - \ request and response data structures, and response codes." - parameters: - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." - responses: - 204: - description: "The operation has completed successfully. The response body\ - \ shall be empty." - schema: - type: "object" - description: "The operation has completed successfully. The response body\ - \ shall be empty." - headers: + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Status 409" - schema: - required: - - "ProblemDetails" - type: "object" - description: "Error: The operation cannot be executed currently, due to\ - \ a conflict with the state of the resource. Typically, this is due\ - \ to the fact the NS descriptor resource is in the enabled operational\ - \ state (i.e. operationalState = ENABLED) or there are running NS instances\ - \ using the concerned individual NS descriptor resource (i.e. usageState\ - \ = IN_USE). The response body shall contain a ProblemDetails structure,\ - \ in which the \"detail\" attribute shall convey more information about\ - \ the error." - properties: - ProblemDetails: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" patch: - summary: "Update NSD Info" - description: "The PATCH method modifies the operational state and/or user defined\ - \ data of an individual NS descriptor resource. This method can be used to:\n\ - 1) Enable a previously disabled individual NS descriptor resource, allowing\ - \ again its use for instantiation of new\nnetwork service with this descriptor.\ - \ The usage state (i.e. \"IN_USE/NOT_IN_USE\") shall not change as a\nresult.\n\ - 2) Disable a previously enabled individual NS descriptor resource, preventing\ - \ any further use for instantiation of\nnew network service(s) with this descriptor.\ - \ The usage state (i.e. \"IN_USE/NOT_IN_USE\") shall not change\nas a result.\n\ - 3) Modify the user defined data of an individual NS descriptor resource.\n\ - This method shall follow the provisions specified in the Tables 5.4.3.3.4-1\ - \ and 5.4.3.3.4-2 for URI query parameters,\nrequest and response data structures,\ - \ and response codes." - consumes: [] + summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource. + description: > + The PATCH method modifies the operational state and/or user defined + data of an individual NS descriptor resource. This method can be used to: + 1) Enable a previously disabled individual NS descriptor resource, allowing + again its use for instantiation of new network service with this descriptor. + The usage state (i.e. "IN_USE/NOT_IN_USE") shall not change as result. + 2) Disable a previously enabled individual NS descriptor resource, preventing + any further use for instantiation of new network service(s) with this descriptor. + The usage state (i.e. "IN_USE/NOT_IN_USE") shall not changes a result. + 3) Modify the user defined data of an individual NS descriptor resource. parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Content-Type" - in: "header" - required: true - type: "string" - description: "The MIME type of the body of the request.\nThis header field\ - \ shall be present if the\nrequest has a non-empty message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3." - name: "body" in: "body" required: true @@ -260,1486 +343,1858 @@ paths: - "NsdInfoModifications" properties: NsdInfoModifications: - $ref: "#/definitions/NsdInfoModifications" - description: "The operation was completed successfully. The response body\ - \ shall contain attribute modifications for an 'Individual NS Descriptor'\ - \ resource (see clause 5.5.2.6 of GS NFV SOL-005)." - responses: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + description: > + Parameters for the modification of an individual NS descriptor resource. + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: 200: - description: "Status 200" - schema: - $ref: "#/definitions/NsdInfoModifications" + description: > + 200 OK + + The operation was completed successfully. + The response body shall contain attribute + modifications for an 'Individual NS Descriptor' + resource. headers: Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + NsdInfoModifications: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + delete: + summary: Delete an individual NS descriptor resource. + description: > + The DELETE method deletes an individual NS descriptor resource. + An individual NS descriptor resource can only be deleted when there is no NS instance using it (i.e. usageState = + NOT_IN_USE) and has been disabled already (i.e. operationalState = DISABLED). Otherwise, the DELETE method + shall fail. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The operation has completed successfully. + The response body shall be empty. + headers: WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Status 409" - schema: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" 412: - description: "Status 412" - schema: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + +############################################################################### +# NSD Content # +############################################################################### + '/ns_descriptors/{nsdInfoId}/nsd_content': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4 parameters: - - name: "nsdInfoId" - in: "path" - required: true - type: "string" - /ns_descriptors/{nsdInfoId}/nsd_content: + - name: "nsdInfoId" + in: "path" + required: true + type: "string" get: - summary: "Get NSD Content" - description: "The GET method fetches the content of the NSD.\n\nThe NSD can\ - \ be implemented as a single file or as a collection of multiple files. If\ - \ the NSD is implemented in the form of multiple files, a ZIP file embedding\ - \ these files shall be returned. If the NSD is implemented as a single file,\ - \ either that file or a ZIP file embedding that file shall be returned.\n\n\ - The selection of the format is controlled by the \"Accept\" HTTP header passed\ - \ in the GET request.\n\nNOTE: The structure of the NSD zip file is outside\ - \ the scope of the present document." + summary: Fetch the content of a NSD. + description: > + The GET method fetches the content of the NSD. + The NSD can be implemented as a single file or as a collection of multiple files. + If the NSD is implemented in the form of multiple files, a ZIP file embedding + these files shall be returned. If the NSD is implemented as a single file, + either that file or a ZIP file embedding that file shall be returned. + The selection of the format is controlled by the "Accept" HTTP header passed + in the GET request:• If the "Accept" header contains only "text/plain" + and the NSD is implemented as a single file, the file shall be returned; + otherwise, an error message shall be returned.• If the "Accept" header + contains only "application/zip", the single file or the multiple files + that make up the NSD shall be returned embedded in a ZIP file.• If the + "Accept" header contains both "text/plain" and "application/zip", + it is up to the NFVO to choose the format to return for a single-file NSD; + for a multi-file NSD, a ZIP file shall be returned.NOTE: The structure + of the NSD zip file is outside the scope of the present document. parameters: - - name: "Accept" - in: "header" + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header required: true - type: "string" - description: "String Required\nIf the “Accept” header contains only “text/plain”\ - \ and the NSD is implemented as a single file, the file shall be returned;\ - \ otherwise, an error message shall be returned.\n\nIf the “Accept” header\ - \ contains only “application/zip”, the single file or the multiple files\ - \ that make up the NSD shall be returned embedded in a ZIP file.\n\nIf the\ - \ “Accept” header contains both “text/plain” and “application/zip”, it is\ - \ up to the NFVO to choose the format to return for a single-file NSD; for\ - \ a multi-file NSD, a ZIP file shall be returned." - - name: "Range" - in: "header" + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header required: false - type: "string" - description: "The request may contain a \"Range\" HTTP header to obtain single\ - \ range of bytes from the NSD file. This can be used to continue an aborted\ - \ transmission.\n\nIf the NFVO does not support range requests, the NFVO\ - \ shall ignore the 'Range\" header, process the GET request, and return\ - \ the whole NSD file with a 200 OK response (rather than returning a 4xx\ - \ error status code)." - - name: "Authorization" + type: string + - name: "Range" in: "header" required: false type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + description: > + "The request may contain a "Range" HTTP header to obtain single + range of bytes from the NSD file. This can be used to continue an aborted + transmission.If the NFVO does not support range requests, the NFVO + shall ignore the 'Range" header, process the GET request, and return + the whole NSD file with a 200 OK response (rather than returning a 4xx + error status code)." responses: 200: - description: "On success, the content of the NSD is returned. The payload\ - \ body shall contain a copy of the file representing the NSD or a ZIP\ - \ file that contains the file or multiple files representing the NSD,\ - \ as specified above. The \"Content-Type\" HTTP header shall be set according\ - \ to the format of the returned file, i.e. to \"text/plain\" for a YAML\ - \ file or to \"application/zip\" for a ZIP file." - schema: - type: "object" + description: > + 200 OK + + On success, the content of the NSD is returned. + The payload body shall contain a copy of the file + representing the NSD or a ZIP file that contains the file + or multiple files representing the NSD, as specified + above. + The "Content-Type" HTTP header shall be set + according to the format of the returned file, i.e. to + "text/plain" for a YAML file or to "application/zip" for a + ZIP file. headers: Content-Type: - type: "string" - description: "The \"Content-Type\" HTTP header shall be set according\ - \ to the format of the returned file, i.e. to \"text/plain\" for a\ - \ YAML file or to \"application/zip\" for a ZIP file." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." - Content-Range: - type: "string" - description: "Signals the byte range that is contained in the response,\ - \ and the total length of the file." - Accept-Ranges: - type: "string" - description: "Used by the server to signal whether or ot it supports\ - \ ranges for certain resources." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 206: - description: "On success, if the NFVO supports range requests, a single\ - \ consecutive byte range from the content of the NSD file is returned.\n\ - \nThe response body shall contain the requested part of the NSD file.\n\ - \nThe \"Content-Range\" HTTP header shall be provided according to IETF\ - \ RFC 7233 [23].\n\nThe \"Content-Type\" HTTP header shall be set as defined\ - \ above for the \"200 OK\" response." - headers: - Content-Range: - type: "string" - Content-Type: - type: "string" + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" 406: - description: "Status 406" - schema: - type: "object" - description: "If the \"Accept\" header does not contain at least one name\ - \ of a content type for which the NFVO can provide a representation\ - \ of the NSD, the NFVO shall respond with this response code. The \"\ - ProblemDetails\" structure may be included with the \"detail\" attribute\ - \ providing more information about the error." + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Status 409" - schema: - type: "object" - description: "Error: The operation cannot be executed currently, due to\ - \ a conflict with the state of the resource. Typically, this is due\ - \ to the fact \"nsdOnboardingState\" has a value different from ONBOARDED.\ - \ The response body shall contain a ProblemDetails structure, in which\ - \ the \"detail\" attribute shall convey more information about the error." + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409-nsd-onboarding-state-NOT-ONBOARDED" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" 416: - description: "Status 416" - schema: - type: "object" - description: "The byte range passed in the \"Range\" header did not match\ - \ any available byte range in the NSD file (e.g.\n\"access after end\ - \ of file\"). The response body may contain a ProblemDetails structure." + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + put: - summary: "Upload NSD" - description: "The PUT method is used to upload the content of a NSD. The NSD\ - \ to be uploaded can be implemented as a single file or as a collection of\ - \ multiple files, as defined in clause 5.4.4.3.2 of GS NFV-SOL 005. If the\ - \ NSD is implemented in the form of multiple files, a ZIP file embedding these\ - \ files shall be uploaded. If the NSD is implemented as a single file, either\ - \ that file or a ZIP file embedding that file shall be uploaded. The \"Content-Type\"\ - \ HTTP header in the PUT request shall be set accordingly based on the format\ - \ selection of the NSD. If the NSD to be uploaded is a text file, the \"Content-Type\"\ - \ header is set to \"text/plain\". If the NSD to be uploaded is a zip file,\ - \ the \"Content-Type\" header is set to \"application/zip\". This method shall\ - \ follow the provisions specified in the Tables 5.4.4.3.3-1 and 5.4.4.3.3-2\ - \ of GS-NFV-SOL 005 for URI query parameters, request and response data structures,\ - \ and response codes." - consumes: [] + summary: Upload the content of a NSD. + description: > + "The PUT method is used to upload the content of a NSD. The NSD + to be uploaded can be implemented as a single file or as a collection of + multiple files, as defined in clause 5.4.4.3.2 of GS NFV-SOL 005. + If the NSD is implemented in the form of multiple files, a ZIP file embedding these + files shall be uploaded. + If the NSD is implemented as a single file, either that file or a ZIP file + embedding that file shall be uploaded. The "Content-Type" + HTTP header in the PUT request shall be set accordingly based on the format + selection of the NSD. + If the NSD to be uploaded is a text file, the "Content-Type" + header is set to "text/plain". + If the NSD to be uploaded is a zip file, + the "Content-Type" header is set to "application/zip". + This method shall follow the provisions specified in the Tables 5.4.4.3.3-1 and 5.4.4.3.3-2 + of GS-NFV-SOL 005 for URI query parameters, request and response data structures, + and response codes." parameters: - - name: "Content-Type" - in: "header" - required: false - type: "string" - description: "The payload body contains a copy of the file representing the\ - \ NSD or a ZIP file that contains the file or multiple files representing\ - \ the NSD, as specified above. The request shall set the \"Content-Type\"\ - \ HTTP header as defined\nabove." - - name: "body" - in: "body" + - name: Accept + description: > + Content-Types that are acceptable for the response. + The payload body contains a copy of the file representing the NSD + or a ZIP file that contains the file or multiple files representing the NSD. + in: header required: true - schema: - type: "object" + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 202: - description: "Status 202" - schema: - type: "object" - description: "The NSD content was accepted for uploading, but the processing\ - \ has not been completed. It is expected to take some time for processing\ - \ (asynchronous mode). The response body shall be empty. See note." + description: > + 202 Accepted + + The NSD content was accepted for uploading, but the + processing has not been completed. It is expected to + take some time for processing (asynchronous mode). + + The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 204: - description: "The NSD content was successfully uploaded and validated (synchronous\ - \ mode). The response body shall be empty." + description: > + 204 No Content + + The NSD content was successfully uploaded and validated (synchronous mode). + The response body shall be empty. + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Error: The operation cannot be executed currently, due to\ - \ a conflict with the state of the resource. Typically, this is due to\ - \ the fact that the NsdOnboardingState has a value other than CREATED.\ - \ The response body shall contain a ProblemDetails structure, in which\ - \ the \"detail\" attribute shall convey more information about the error." - schema: - $ref: "#/definitions/ProblemDetails" - parameters: - - name: "nsdInfoId" - in: "path" - required: true - type: "string" - /pnf_descriptors: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409-nsd-onboarding-state-NOT-ONBOARDED" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + +############################################################################### +# PNF Descriptors # +############################################################################### + '/pnf_descriptors': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.5 get: - summary: "Query PFND Info" - description: "The GET method queries information about multiple PNF descriptor\ - \ resources." + summary: Query information about multiple PNF descriptor resources. + description: > + "The GET method queries information about multiple PNF descriptor + resources." parameters: - - name: "exclude_default" + - name: "filter" in: "query" required: false type: "string" - description: "Indicates to exclude the following \n \ncomplex attributes from\ - \ the response. \nSee clause 4.3.3 for details.\n\nThe NFVO shall support\ - \ this parameter.\n\nThe following attributes shall be excluded from the\ - \ PnfdInfo structure in the response body if this parameter is provided,\ - \ or none of the parameters \"all_fields,\" \"fields\", \"exclude_fields\"\ - , \"exclude_default\" are provided: userDefinedData." + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PnfdInfo and in data types referenced + from it shall be supported in attribute-based filtering parameters. - name: "all_fields" in: "query" required: false type: "string" - description: "Include all complex attributes in the response. See clause 4.3.3\ - \ for details. The NFVO shall support this parameter." - - name: "Accept" - in: "header" + description: > + Include all complex attributes in the response. See clause 4.3.3 for details. + The NFVO shall support this parameter. + - name: "fields" + in: "query" required: false type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" + description: > + Complex attributes to be included into the response. See clause 4.3.3 for + details. The NFVO should support this parameter. + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be excluded from the response. See clause 4.3.3 for + details. The NFVO should support this parameter. + - name: "exclude_default" + in: "query" required: false type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + description: > + Indicates to exclude the following complex attributes from the response. See + clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the PnfdInfo structure in the + response body if this parameter is provided, or none of the parameters + "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + userDefinedData. responses: 200: - description: "Status 200" - schema: - type: "object" - description: "Information about zero or more PNF descriptors. The response\ - \ body shall contain a representation of zero or more PNF descriptors,\ - \ as defined in clause 5.5.2.2." + description: > + 200 OK + + Information about zero or more PNF descriptors. + The response body shall contain a representation of + zero or more PNF descriptors, as defined in + clause 5.5.2.2 headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: "array" + items: + properties: + PnfdInfo: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" post: - summary: "Create PNFD Info" - description: "The POST method is used to create a new PNF descriptor resource." - consumes: [] + summary: Create a new PNF descriptor resource. + description: > + The POST method is used to create a new PNF descriptor resource parameters: - - name: "Accept" - in: "header" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS-NFV-SOL 005." + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string - name: "body" in: "body" required: true schema: type: "object" - description: "Parameters of creating a PNF descriptor resource, as defined\ - \ in\nclause 5.5.2.6 of GS NFV-SOL 005." - responses: + required: + - "CreatePnfdInfoRequest" + properties: + CreatePnfdInfoRequest: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreatePnfdInfoRequest" + description: > + Parameters of creating a PNF descriptor resource. + responses: 201: - description: "Status 201" + description: > + 201 Created + + A PNF descriptor resource was created successfully, as a new PNF descriptor resource. + The response body shall contain a representation of + the new PNF descriptor resource, as defined in + clause 5.5.2.5. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the new + PNF descriptor resource. schema: type: "object" - description: "A PNF descriptor resource was created successfully, as a\ - \ new PNF descriptor resource. The response body shall contain a representation\ - \ of the new PNF descriptor resource, as defined in clause 5.5.2.5.\ - \ The HTTP response shall include a \"Location\" HTTP header that contains\ - \ the resource URI of the new PNF descriptor resource." + properties: + PnfdInfo: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" headers: Content-Type: type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." - /pnf_descriptors/{pnfdInfoId}: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Individual PNF Descriptor # +############################################################################### + '/pnf_descriptors/{pnfdInfoId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.6 + parameters: + - name: "pnfdInfoId" + description: > + Identifier of the individual PNF descriptor resource. + in: "path" + required: true + type: "string" get: - summary: "Query PNFD Info" - description: "The GET method reads information about an individual PNF descriptor.\ - \ This method shall follow the provisions specified in the Tables 5.4.6.3.2-1\ - \ and 5.4.6.3.2-2 of GS NFV-SOL 005 for URI query parameters, request and\ - \ response data structures, and response codes." + summary: Read an individual PNFD resource. + description: > + The GET method reads information about an individual PNF descriptor. + This method shall follow the provisions specified in the Tables 5.4.6.3.2-1 + and 5.4.6.3.2-2 of GS NFV-SOL 005 for URI query parameters, request and + response data structures, and response codes. parameters: - name: "Accept" in: "header" required: true type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." + description: > + Content-Types that are acceptable for the response. This header + field shall be present if the response is expected to have a non-empty + message body. - name: "Authorization" in: "header" required: false type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3." + description: > + The authorization token for the request. Details are specified + in clause 4.5.3 of GS NFV-SOL 005. responses: 200: - description: "Information about the individual PNFD descriptor. The response\ - \ body shall contain a representation of the individual PNF descriptor,\ - \ as defined in clause 5.5.2.5 of GS NFV-SOL 005." + description: > + 200 OK + + Information about the individual PNFD descriptor. + The response body shall contain a representation of + the individual PNF descriptor. headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: "object" + properties: + PnfdInfo: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" delete: - summary: "Delete PNFD" - description: "The DELETE method deletes an individual PNF descriptor resource.\ - \ An individual PNF descriptor resource can only be deleted when there is\ - \ no NS instance using it or there is NSD referencing it. To delete all PNFD\ - \ versions identified by a particular value of the \"pnfdInvariantId\" attribute,\ - \ the procedure is to first use the GET method with filter \"pnfdInvariantId\"\ - \ towards the PNF descriptors resource to find all versions of the PNFD. Then,\ - \ the client uses the DELETE method described in this clause to delete each\ - \ PNFD version individually. This method shall follow the provisions specified\ - \ in the Tables 5.4.6.3.5-1 and 5.4.6.3.5-2 of GS NFV-SOL 005 for URI query\ - \ parameters, request and response data structures, and response codes." - parameters: - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3." + summary: Delete an individual PNF descriptor resource. + description: > + The DELETE method deletes an individual PNF descriptor resource. + An individual PNF descriptor resource can only be deleted when there is no NS instance using it or there is NSD + referencing it. + To delete all PNFD versions identified by a particular value of the "pnfdInvariantId" attribute, the procedure is to first + use the GET method with filter "pnfdInvariantId" towards the PNF descriptors resource to find all versions of the + PNFD. Then, the client uses the DELETE method described in this clause to delete each PNFD version individually. responses: 204: - description: "The operation has completed successfully. The response body\ - \ shall be empty." - headers: - WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + 204 No Content + + The operation has completed successfully. + The response body shall be empty. + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" patch: - summary: "Update PNFD Info" - description: "The PATCH method modifies the user defined data of an individual\ - \ PNF descriptor resource. This method shall follow the provisions specified\ - \ in the Tables 5.4.6.3.4-1 and 5.4.6.3.4-2 for URI query parameters, request\ - \ and response data structures, and response codes." - consumes: [] - parameters: + summary: Modify the user defined data of an individual PNF descriptor resource. + description: > + The PATCH method modifies the user defined data of an individual PNF descriptor resource. + parameters: - name: "Accept" in: "header" required: true type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." + description: > + Content-Types that are acceptable for the response. This header + field shall be present if the response is expected to have a non-empty + message body. - name: "Content-Type" in: "header" required: true type: "string" - description: "The MIME type of the body of the request. This header field\ - \ shall be present if the request has a non-empty message body." + description: > + The MIME type of the body of the request. This header field + shall be present if the request has a non-empty message body. - name: "Authorization" in: "header" required: false type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3." + description: > + The authorization token for the request. Details are specified in clause 4.5.3. - name: "body" in: "body" required: true schema: - $ref: "#/definitions/PnfdInfoModifications" + type: "object" + required: + - "PnfdInfoModifications" + properties: + PnfdInfoModifications: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" + description: > + Parameters for the modification of an individual PNF descriptor resource, as defined in clause 5.5.2.4. responses: 200: - description: "Status 200" + description: > + 200 OK + + The operation was completed successfully. + The response body shall contain attribute + modifications for an 'Individual PNF Descriptor' resource. schema: - $ref: "#/definitions/PnfdInfoModifications" + type: "object" + properties: + PnfdInfoModifications: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" headers: Content-Type: type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" 412: - description: "Status 412" - schema: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + +############################################################################### +# PNFD Content # +############################################################################### + '/pnf_descriptors/{pnfdInfoId}/pnfd_content': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7 parameters: - - name: "pnfdInfoId" - in: "path" - required: true - type: "string" - /pnf_descriptors/{pnfdInfoId}/pnfd_content: + - name: "pnfdInfoId" + description: > + Identifier of the individual PNF descriptor. + in: "path" + required: true + type: "string" get: - summary: "Get PNFD Content" - description: "The GET method fetches the content of the PNFD." + summary: Fetch the content of a PNFD. + description: > + The GET method fetches the content of the PNFD. + This method shall follow the provisions specified in the + Table 5.4.7.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - - name: "Accept" - in: "header" + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" + type: string + enum: + - text/plain + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + type: string responses: 200: - description: "On success, the content of the PNFD is returned. The payload\ - \ body shall contain a copy of the file representing the PNFD. The \"\ - Content-Type\" HTTP header shall be set to \"text/plain\"." + description: > + 200 OK + + On success, the content of the PNFD is returned. The payload + body shall contain a copy of the file representing the PNFD. + The Content-Type" HTTP header shall be set to "text/plain". headers: - WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: type: "string" - description: "The \"Content-Type\" HTTP header shall be set to \"text/plain\"\ - ." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409-pnfd-onboarding-state-NOT-ONBOARDED" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" put: - summary: "Upload PNFD" - description: "The PUT method is used to upload the content of a PNFD. This method\ - \ shall follow the provisions specified in the Tables 5.4.7.3.3-1 and 5.4.7.3.3-2\ - \ of GS NFV-SOL 005for URI query parameters, request and response data structures,\ - \ and response codes." - consumes: [] + summary: Upload the content of a PNFD. + description: > + The PUT method is used to upload the content of a PNFD. + This resource represents the content of the individual PNF descriptor, i.e. PNFD content. + The client can use this resource to upload and download the content of the PNFD. parameters: - - name: "Content-Type" - in: "header" - required: false - type: "string" - description: "The request shall set the \"Content-Type\" HTTP header to \"\ - text/plain\"." - - name: "body" - in: "body" + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header required: true - schema: - type: "object" - description: "The payload body contains a copy of the file representing\ - \ the PNFD." + type: string + enum: + - text/plain + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 204: - description: "The PNFD content was successfully uploaded and validated.\ - \ The response body shall be empty." + description: > + 204 No Content + + The PNFD content was successfully uploaded and validated. + The response body shall be empty. + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Status 409" - schema: - $ref: "#/definitions/ProblemDetails" - parameters: - - name: "pnfdInfoId" - in: "path" - required: true - type: "string" - /subscriptions: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409-pnfd-onboarding-state-NOT-CREATED" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.8 get: - summary: "Query Subscription Information" - description: "The GET method queries the list of active subscriptions of the\ - \ functional block that invokes the method. It can be used e.g. for resynchronization\ - \ after error situations. This method shall support the URI query parameters,\ - \ request and response data structures, and response codes, as specified in\ - \ the Tables 5.4.8.3.2-1 and 5.4.8.3.2-2 of GS NFV-SOL 005." + summary: Query multiple subscriptions. + description: > + The GET method queries the list of active subscriptions of the + functional block that invokes the method. It can be used e.g. for resynchronization + after error situations. This method shall support the URI query parameters, + request and response data structures, and response codes. + + This resource represents subscriptions. + The client can use this resource to subscribe to notifications related to NSD + management and to query its subscriptions. parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute filtering parameters according to clause 4.3.2. + The NFVO shall support receiving attribute filter parameters as part of the URI query + string. The OSS/BSS may supply an attribute filter. + All attribute names that appear in the NsdmSubscription and in data types referenced + from it shall be supported in attribute filter parameters. + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: "Status 200" - schema: - type: "array" - description: "The list of subscriptions was queried successfully. The\ - \ response body shall contain the representations of all active subscriptions\ - \ of the functional block that invokes the method." - items: - $ref: "#/definitions/NsdmSubscription" + description: > + 200 OK + + The list of subscriptions was queried successfully. + The response body shall contain the representations of + all active subscriptions of the functional block that + invokes the method. headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: "array" + items: + properties: + NsdmSubscription: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" 303: - description: "A subscription with the same callbackURI and the same filter\ - \ already exits and the policy of the NFVO is to not create redundant\ - \ subscriptions. The response body shall be empty." - headers: - Location: - type: "string" - description: "The HTTP response shall include a \"Location\" HTTP header\ - \ that contains the resource URI of the existing subscription resource." + description: > + 303 See Other. + A subscription with the same callbackURI and the + same filter already exits and the policy of the NFVO is + to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the existing + subscription resource. + The response body shall be empty. + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + post: - summary: "Subscribe" - description: "The POST method creates a new subscription. This method shall\ - \ support the URI query parameters, request and response data structures,\ - \ and response codes, as specified in the Tables 5.4.8.3.1-1 and 5.4.8.3.1-2\ - \ of GS-NFV SOL 005. Creation of two subscription resources with the same\ - \ callbackURI and the same filter can result in performance degradation and\ - \ will provide duplicates of notifications to the OSS, and might make sense\ - \ only in very rare use cases. Consequently, the NFVO may either allow creating\ - \ a subscription resource if another subscription resource with the same filter\ - \ and callbackUri already exists (in which case it shall return the \"201\ - \ Created\" response code), or may decide to not create a duplicate subscription\ - \ resource (in which case it shall return a \"303 See Other\" response code\ - \ referencing the existing subscription resource with the same filter and\ - \ callbackUri)." - consumes: [] - parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." - - name: "Content-Type" - in: "header" + summary: Subscribe to NSD and PNFD change notifications. + description: > + The POST method creates a new subscription. + This method shall support the URI query parameters, request and response data structures, + and response codes, as specified in the Tables 5.4.8.3.1-1 and 5.4.8.3.1-2 + of GS-NFV SOL 005. Creation of two subscription resources with the same + callbackURI and the same filter can result in performance degradation and + will provide duplicates of notifications to the OSS, and might make sense + only in very rare use cases. Consequently, the NFVO may either allow creating + a subscription resource if another subscription resource with the same filter + and callbackUri already exists (in which case it shall return the "201 + Created" response code), or may decide to not create a duplicate subscription + resource (in which case it shall return a "303 See Other" response code + referencing the existing subscription resource with the same filter and + callbackUri). + + This resource represents subscriptions. + The client can use this resource to subscribe to notifications related to NSD + management and to query its subscriptions. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header required: true - type: "string" - description: "The MIME type of the body of the request.\nThis header field\ - \ shall be present if the\nrequest has a non-empty message body." - - name: "Authorization" - in: "header" + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string - name: "body" in: "body" required: true schema: - $ref: "#/definitions/NsdmSubscriptionRequest" + type: "object" + required: + - "NsdmSubscriptionRequest" + properties: + NsdmSubscriptionRequest: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscriptionRequest" + description: > + Details of the subscription to be created, as defined in clause 5.5.2.7. responses: 201: - description: "Status 201" + description: > + 201 Created + + The subscription was created successfully. + The response body shall contain a representation of the created subscription resource. + The HTTP response shall include a "Location:" + HTTP header that points to the created subscription resource. schema: - $ref: "#/definitions/NsdmSubscription" + type: "object" + properties: + NsdmSubscription: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" headers: - Location: - type: "string" - description: "The HTTP response shall include a \"Location:\"\nHTTP\ - \ header that points to the created subscription resource." Content-Type: type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." - /subscriptions/{subscriptionId}: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual Subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.9 + parameters: + - name: "subscriptionId" + description: Identifier of this subscription. + in: "path" + required: true + type: "string" get: - summary: "Query Subscription Information" - description: "The GET method retrieves information about a subscription by reading\ - \ an individual subscription resource. This method shall support the URI query\ - \ parameters, request and response data structures, and response codes, as\ - \ specified in the Tables 5.4.9.3.2-1 and 5.4.9.3.2-2." + summary: Read an individual subscription resource. + description: > + This resource represents an individual subscription. + It can be used by the client to read and to terminate a subscription to + notifications related to NSD management. + + The GET method retrieves information about a subscription by reading + an individual subscription resource. + This resource represents an individual subscription. + It can be used by the client to read and to terminate a subscription to + notifications related to NSD management. parameters: - name: "Accept" in: "header" required: true type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." + description: > + Content-Types that are acceptable for the response. This header + field shall be present if the response is expected to have a non-empty + message body. - name: "Authorization" in: "header" required: false type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + description: > + The authorization token for the request. Details are specified + in clause 4.5.3 of GS NFV-SOL 005. + responses: 200: - description: "Status 200" + description: > + 200 OK + + The operation has completed successfully. + The response body shall contain a representation of + the subscription resource. schema: - $ref: "#/definitions/NsdmSubscription" + type: "object" + properties: + NsdmSubscription: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" headers: Content-Type: type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: > + The MIME type of the body of the response. This header + field shall be present if the response has a non-empty message body. WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" delete: - summary: "Terminate Subscription" - description: "The DELETE method terminates an individual subscription. This\ - \ method shall support the URI query parameters, request and response data\ - \ structures, and response codes, as specified in the Tables 5.4.9.3.5-1 and\ - \ 5.4.9.3.3-2 of GS NFV-SOL 005." + summary: Terminate Subscription + description: > + This resource represents an individual subscription. + It can be used by the client to read and to terminate a subscription to + notifications related to NSD management. + + The DELETE method terminates an individual subscription. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.9.3.3-2. parameters: - name: "Authorization" in: "header" required: false type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + description: > + The authorization token for the request. + Details are specified in clause 4.5.3 of GS NFV-SOL 005. + responses: + 204: + description: > + 204 No Content + + The subscription resource was deleted successfully. + The response body shall be empty. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +################################################################################## +# Notification endpoint # +# Dummy URI is used for testing. # +# In real, resource URI is provided by the client when creating the subscription.# +################################################################################## + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdOnBoardingNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.10 + post: + summary: Notify about NSD and PNFD changes + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.10.3.1-2. + parameters: + - name: NsdOnBoardingNotification + description: > + A notification about the successful on-boarding of an NSD. + in: body + required: true + schema: + properties: + NsdOnBoardingNotification: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdOnBoardingNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string responses: 204: - description: "The subscription resource was deleted successfully. The response\ - \ body shall be empty." + description: > + 204 No Content + + The notification was delivered successfully. headers: WWW-Authenticate: type: "string" - description: "Challenge if the corresponding HTTP request has not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." - parameters: - - name: "subscriptionId" - in: "path" - required: true - type: "string" -definitions: - NsdInfoModifications: - type: "object" - properties: - nsdOperationalState: - $ref: "#/definitions/NsdOperationalStateType" - userDefinedData: - type: "object" - description: "Modifications of the \"userDefinedData\" attribute in \"NsdInfo\"\ - \ data type. See note. If present, these modifications shall be applied\ - \ according to the rules of JSON Merge PATCH (see IETF RFC 7396 [25]). NOTE:\ - \ At least one of the attributes - nsdOperationalState and userDefinedData\ - \ - shall be present." - description: "This type represents attribute modifications for an individual NS\ - \ descriptor resource based on the \"NsdInfo\" data type. The attributes of\ - \ \"NsdInfo\" that can be modified are included in the \"NsdInfoModifications\"\ - \ data type.\n\nNOTE: At least one of the attributes - nsdOperationalState and\ - \ userDefinedData - shall be present." - NsdmSubscription: - type: "object" - required: - - "_links" - - "callbackUri" - - "id" - properties: - id: - type: "string" - description: "Identifier of this subscription resource" - filter: - $ref: "#/definitions/NsdmNotificationsFilter" - callbackUri: - $ref: "#/definitions/Uri" - _links: - type: "object" - description: "Links to resources related to this resource." - properties: - self: - $ref: "#/definitions/Link" - description: "This type represents a subscription related to notifications about\ - \ NSD management." - NsdmSubscriptionRequest: - type: "object" - required: - - "callbackUri" - properties: - filter: - $ref: "#/definitions/NsdmNotificationsFilter" - callbackUri: - type: "string" - description: "The URI of the endpoint to send the notification to." - authentication: - $ref: "#/definitions/SubscriptionAuthentication" - description: "This type represents a subscription request related to notifications\ - \ about NSD management." - NsdmNotificationsFilter: - type: "object" - properties: - notificationTypes: - type: "array" - description: "Match particular notification types. Permitted values: NsdOnBoardingNotification,\ - \ NsdOnboardingFailureNotification, NsdChangeNotification, NsdDeletionNotification\n\ - PnfdOnBoardingNotification, PnfdOnBoardingFailureNotification, PnfdDeletionNotification.\n\ - \nThe permitted values of the \"notificationTypes\" \nattribute are spelled\ - \ exactly as the names of the notification types to facilitate automated\ - \ code generation systems." - items: - type: "string" - enum: - - "NsdOnBoardingNotification" - - "NsdOnboardingFailureNotification" - - "NsdChangeNotification" - - "NsdDeletionNotification" - - "PnfdOnBoardingNotification" - - "PnfdOnBoardingFailureNotification" - - "PnfdDeletionNotification" - nsdInfoId: - type: "array" - description: "Match the NsdInfo identifier which is allocated by the NFVO.\ - \ Note: The attributes \"nsdId\" and \"nsdInfoId\" are alternatives to reference\ - \ to a particular NSD in a filter. They should not be used both in the same\ - \ filter instance, but one alternative should be chosen." - items: - type: "string" - nsdId: - type: "array" - description: "Match the NSD identifier, which is allocated by the NSD designer.\ - \ The attributes \"nsdId\" and \"nsdInfoId\" are alternatives to reference\ - \ to a particular NSD in a filter. They should not be used both in the same\ - \ filter instance, but one alternative should be chosen." - items: - type: "string" - nsdName: - type: "array" - description: "Match the name of the onboarded NSD." - items: - type: "string" - nsdVersion: - type: "array" - description: "Match the NSD version listed as part of this attribute. The\ - \ NSD version is a string of variable length." - items: - type: "string" - nsdDesigner: - type: "array" - description: "Match the NSD designer of the on-boarded NSD." - items: - type: "string" - nsdInvariantId: - type: "array" - description: "Match the NSD invariant identifier which is allocated by the\ - \ NSD designer and identifies an NSD in a version independent manner." - items: - type: "string" - vnfPkgIds: - type: "array" - description: "Match VNF packages with a package identifier listed in the attribute." - items: - type: "string" - pnfdInfoIds: - type: "array" - description: "Match the PnfdInfo identifier for the PNFD\nreferenced by the\ - \ on-boarded NSD. The attributes \"pnfdId\" and \"pnfdInfoId\" are alternatives\ - \ to reference to a particular PNFD in a filter. They should not be used\ - \ both in the same filter instance, but one alternative should be chosen." - items: - type: "string" - nestedNsdInfoIds: - type: "array" - description: "Match the NsdInfo identifier for the nested NSD\nreferenced\ - \ by the on-boarded NSD." - items: - type: "string" - nsdOnboardingState: - type: "array" - items: - $ref: "#/definitions/NsdOnboardingStateType" - nsdOperationalState: - type: "array" - items: - $ref: "#/definitions/NsdOperationalStateType" - nsdUsageState: - type: "array" - items: - $ref: "#/definitions/NsdUsageStateType" - pnfdId: - type: "array" - description: "Match the PNFD identifier which is copied from the PNFD content.\ - \ The attributes \"pnfdId\" and \"pnfdInfoId\" are alternatives to reference\ - \ to a particular PNFD in a filter. They should not be used both in the\ - \ same filter instance, but one alternative should be chosen." - items: - type: "string" - pnfdName: - type: "array" - description: "Match the name of the on-boarded PNFD." - items: - type: "string" - pnfdVersion: - type: "array" - description: "Match the PNFD designer of the on-boarded PNFD. The PNFD version\ - \ is a string of variable length." - items: - type: "string" - pnfdProvider: - type: "array" - description: "Match the provider of the on-boarded PNFD." - items: - type: "string" - pnfdInvariantId: - type: "array" - description: "Match the PNFD in a version independent manner." - items: - type: "string" - pnfdOnboardingState: - type: "array" - items: - $ref: "#/definitions/PnfdOnboardingStateType" - pnfdUsageState: - type: "array" - items: - $ref: "#/definitions/PnfdUsageStateType" - description: "This type represents a subscription filter related to notifications\ - \ about NSD management. It shall comply with the\nprovisions defined in Table\ - \ 5.5.3.2-1 of GS NFV-SOL 005. At a particular nesting level in the filter structure,\ - \ the following applies: All attributes shall match in order for the filter\ - \ to match (logical \"and\" between different filter attributes). If an attribute\ - \ is an array, the attribute shall match if at least one of the values in the\ - \ array matches (logical \"or\" between the values of one filter attribute)." - Uri: - type: "object" - description: "String formatted according to IETF RFC 3986 [10]." - Link: - type: "object" - description: "This type represents a link to a resource. It shall comply with\ - \ the provisions defined in Table 4.4.1.3-1 of GS NFV-SOL 005." - SubscriptionAuthentication: - type: "object" - properties: - authType: - type: "string" - description: "Defines the types of Authentication/ Authorization the API consumer\ - \ is willing to accept when receiving a notification.\n\nPermitted values:\n\ - BASIC: In every HTTP request to the notification endpoint, use HTTP Basic\ - \ authentication with the client credentials.\n\nOAUTH2_CLIENT_CREDENTIALS:\ - \ In every HTTP request to the notification endpoint, use an OAuth 2.0 Bearer\ - \ token, obtained using the client credentials grant type.\n\nTLS_CERT:\ - \ Every HTTP request to the notification endpoint is sent over a mutually\ - \ authenticated TLS session. i.e. not only server is authenticated, but\ - \ also the client is authenticated during the TLS tunnel setup." - enum: - - "BASIC" - - "OAUTH2_CLIENT_CREDENTIALS" - - "TLS_CERT" - paramsBasic: - type: "object" - description: "Parameters for authentication/authorization using BASIC. Shall\ - \ be present if authType is \"BASIC\" and the contained information has\ - \ not been provisioned out of band. Shall be absent otherwise." - properties: - userName: - type: "string" - description: "Username to be used in HTTP Basic authentication. Shall\ - \ be present if it has not been provisioned out of band." - password: - type: "string" - description: "Password to be used in HTTP Basic authentication. Shall\ - \ be present if it has not been provisioned out of band." - paramsOauth2ClientCredentials: - type: "object" - description: "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS.\ - \ Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the\ - \ contained information has not been provisioned out of band. Shall be absent\ - \ otherwise." - properties: - clientId: - type: "string" - description: "Client identifier to be used in the access token request\ - \ of the OAuth 2.0 client credentials grant type. Shall be present if\ - \ it has not been provisioned out of band." - NsdOperationalStateType: - type: "string" - description: "The enumeration NsdOperationalStateType shall comply with the provisions\ - \ defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational\ - \ state of the resource.\n\nENABLED = The operational state of the resource\ - \ is enabled.\nDISABLED = The operational state of the resource is disabled." - enum: - - "ENABLED" - - "DISABLED" - NsdInfo: - type: "object" - required: - - "_links" - - "id" - - "nsdOnboardingState" - - "nsdOperationalState" - - "nsdUsageState" - properties: - id: - type: "string" - description: "Identifier of the onboarded individual NS descriptor resource.\ - \ This identifier is allocated by the NFVO." - nsdId: - type: "object" - description: "This identifier, which is allocated by the NSD designer, identifies\ - \ the NSD in a globally unique way. It is copied from the NSD content and\ - \ shall be present after the NSD content is on-boarded." - nsdName: - type: "string" - description: "Name of the onboarded NSD. This information is copied from the\ - \ NSD content and shall be present after the NSD content is on-boarded." - nsdVersion: - type: "string" - description: "Version of the on-boarded NSD. The NSD version is a string of\ - \ variable length.This information is copied from the NSD content and shall\ - \ be present after the NSD content is on-boarded." - nsdDesigner: - type: "string" - description: "Designer of the on-boarded NSD. This information \nis copied\ - \ from the NSD content and shall be present after the NSD content is on-boarded." - nsdInvariantId: - type: "string" - description: "This identifier, which is allocated by the NSD designer, identifies\ - \ an NSD in a version independent manner. This information is copied from\ - \ the NSD content and shall be present after the NSD content is on-boarded." - vnfPkgIds: - type: "array" - description: "Identifies the VNF package for the VNFD referenced by the on-boarded\ - \ NS descriptor resource." - items: - type: "string" - pnfdInfoIds: - type: "array" - description: "Identifies the PnfdInfo element for the PNFD referenced by the\ - \ on-boarded NS descriptor resource." - items: - type: "string" - nestedNsdInfoIds: - type: "array" - description: "Identifies the NsdInfo element for the nested NSD referenced\ - \ by the on-boarded NS descriptor resource. At least one of the attributes\ - \ – vnfPkgId and nestedNsdInfoId shall be present, after the NSD is on-boarded." - items: - type: "string" - nsdOnboardingState: - $ref: "#/definitions/NsdOnboardingStateType" - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - nsdOperationalState: - $ref: "#/definitions/NsdOperationalStateType" - nsdUsageState: - $ref: "#/definitions/NsdUsageStateType" - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - _links: - type: "object" - description: "Links to resources related to this resource." - properties: - self: - $ref: "#/definitions/Link" - nsd_content: - $ref: "#/definitions/Link" - description: "This type represents a response for the query NSD operation. It\ - \ shall comply with the provisions defined in\nTable 5.5.2.2-1 of GS NFV-SOL\ - \ 005." - NsdOnboardingStateType: - type: "string" - description: "The enumeration NsdOnboardingStateType shall comply with the provisions\ - \ defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the onboarding\ - \ state of the NSD.\n\nCREATED = The NSD information object is created. UPLOADING\ - \ = The associated NSD content is being uploaded. PROCESSING = The associated\ - \ NSD content is being processed, e.g. validation. ONBOARDED = The associated\ - \ NSD content is on-boarded." - enum: - - "CREATED" - - "UPLOADING" - - "PROCESSING" - - "ONBOARDED" - ProblemDetails: - type: "object" - required: - - "detail" - - "status" - properties: - type: - $ref: "#/definitions/Uri" - title: - type: "string" - description: "A short, human-readable summary of the problem type. It should\ - \ not change from occurrence to occurrence of the problem, except for purposes\ - \ of localization. If type is given and other than \"about:blank\", this\ - \ attribute shall also be provided." - status: - type: "integer" - description: "The HTTP status code for this occurrence of the problem." - detail: - type: "string" - description: "A human-readable explanation specific to this occurrence of\ - \ the problem." - instance: - $ref: "#/definitions/Uri" - description: "The definition of the general \"ProblemDetails\" data structure\ - \ from IETF RFC 7807 [27] is reproduced in\nTable 4.3.5.3-1 of GS NFV-SOL 005.\ - \ Compared to the general framework defined in IETF RFC 7807 [27], the \"status\"\ - \ and \"detail\" attributes are mandated to be included by the present document,\ - \ to ensure that the response contains additional textual information about\ - \ an error. IETF RFC 7807 [27] foresees extensibility of the \"ProblemDetails\"\ - \ type. It is possible that particular APIs in the present document, or particular\ - \ implementations, define extensions to define additional attributes that provide\ - \ more information about the error.\n\nThe description column only provides\ - \ some explanation of the meaning to facilitate understanding of the design.\ - \ For a\nfull description, see IETF RFC 7807 [27]." - NsdUsageStateType: - type: "string" - description: "The enumeration NsdUsageStateType shall comply with the provisions\ - \ defined in Table 5.5.4.4-1 of GS NFV-SOL 005. It indicates the usage state\ - \ of the resource.\n\nIN_USE = The resource is in use.\nNOT_IN_USE = The resource\ - \ is not-in-use." - enum: - - "IN_USE" - - "NOT_IN_USE" - KeyValuePairs: - type: "object" - description: "This type represents a list of key-value pairs. The order of the\ - \ pairs in the list is not significant. In JSON, a set of keyvalue\npairs is\ - \ represented as an object. It shall comply with the provisions defined in clause\ - \ 4 of IETF RFC 7159 [20]." - CreateNsdInfoRequest: - type: "object" - properties: - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - description: "This type creates a completely new NS descriptor resource." - PnfdInfoModifications: - type: "object" - required: - - "userDefinedData" - properties: - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - description: "This type represents attribute modifications for an individual PNF\ - \ descriptor resource based on the \"PnfdInfo\" data type. The attributes of\ - \ \"PnfdInfo\" that can be modified are included in the \"PnfdInfoModifications\"\ - \ data type." - PnfdInfo: - type: "object" - required: - - "_links" - - "id" - - "pnfdOnboardingState" - - "pnfdUsageState" - properties: - id: - type: "string" - description: "Identifier of the onboarded individual PNF descriptor resource.\ - \ This identifier is allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the PNFD\ndesigner, identifies\ - \ the PNFD in a globally unique way. It is copied from the PNFD content\ - \ and shall be present after the PNFD content is on-boarded." - pnfdName: - type: "string" - description: "Name of the onboarded PNFD. This information is copied from\ - \ the PNFD content and shall be present after the PNFD content is on-boarded." - pnfdVersion: - type: "string" - description: "Version of the onboarded PNFD. The PNFD version is a string\ - \ of variable length.This information is copied from the PNFD content and\ - \ shall be present after the PNFD content is on-boarded." - pnfdProvider: - type: "string" - description: "Provider of the onboarded PNFD. This information is copied from\ - \ the PNFD content and shall be present after the PNFD content is onboarded." - pnfdInvariantId: - type: "string" - description: "Identifies a PNFD in a version independent manner. This attribute\ - \ is invariant across versions of PNFD." - pnfdOnboardingState: - $ref: "#/definitions/PnfdOnboardingStateType" - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - pnfdUsageState: - $ref: "#/definitions/PnfdUsageStateType" - userDefinedData: - type: "array" - description: "User defined data for the individual PNF descriptor resource.\ - \ This attribute can be modified with the PATCH method." - items: - type: "object" - _links: - required: - - "pnfd_content" - - "self" - type: "object" - description: "Links to resources related to this resource." - properties: - self: - $ref: "#/definitions/Link" - pnfd_content: - $ref: "#/definitions/Link" - description: "This type represents a response for the query PNFD operation." - PnfdOnboardingStateType: - type: "string" - description: "The enumeration PnfdOnboardingStateType shall comply with the provisions\ - \ defined in Table 5.5.4.6-1 of GS-NFV SOL005. It indicates the onboarding state\ - \ of the individual PNF descriptor resource.\n\nCREATED = The PNF descriptor\ - \ resource is created. UPLOADING = The associated PNFD content is being uploaded.\ - \ PROCESSING = The associated PNFD content is being processed, e.g. validation.\ - \ ONBOARDED = The associated PNFD content is on-boarded." - enum: - - "CREATED" - - "UPLOADING" - - "PROCESSING" - - "ONBOARDING" - PnfdUsageStateType: - type: "string" - description: "The enumeration PnfdUsageStateType shall comply with the provisions\ - \ defined in Table 5.5.4.7-1 of GS NFV-SOL005. It indicates the usage state\ - \ of the resource.\n\nIN-USE = The resource is in use.\nNOT_IN_USE = The resource\ - \ is not-in-use." - enum: - - "IN_USE" - - "NOT_IN_USE" - CreatePnfdInfoRequest: - type: "object" - properties: - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - description: "This type creates a new PNF descriptor resource." - NsdmLinks: - type: "object" - required: - - "nsdInfo" - - "subscription" - properties: - nsdInfo: - $ref: "#/definitions/Link" - subscription: - $ref: "#/definitions/Link" - description: "This type represents the links to resources that an NSD management\ - \ notification can contain." - NsdOnboardingNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdId" - - "nsdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdOnboardingNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service\nprovider,\ - \ identifies the NSD in a globally unique way. It is copied from the on-boarded\ - \ NSD." - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of the successful on-boarding of an NSD. It shall comply with\ - \ the provisions defined in Table 5.5.2.9-1 of GS NFV-SOL 005. The support of\ - \ this notification is mandatory. The notification shall be triggered by the\ - \ NFVO when the \"nsdOnboardingState\" attribute of a new NSD has changed to\ - \ \"ONBOARDED\"." - NsdOnboardingFailureNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdInfoId" - - "onboardingFailureDetails" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdOnboardingFailureNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the NSD in a globally unique way." - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of the failure of on-boarding an NSD. It shall comply with the\ - \ provisions defined in Table 5.5.2.10-1. The support of this notification is\ - \ mandatory. The notification shall be triggered by the NFVO when the on-boarding\ - \ of an NSD has failed." - NsdChangeNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdId" - - "nsdInfoId" - - "nsdOperationalState" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdChangeNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the NSD in a globally unique way. It is copied from the on-boarded NSD." - nsdOperationalState: - $ref: "#/definitions/NsdOperationalStateType" - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of a change of the \"nsdOperationalState\" attribute of an on-boarded\ - \ NSD. Changes in the value of the \"nsdUsageState\" and \"nsdOnboardingState\"\ - \ attributes are not reported. The notification shall comply with the provisions\ - \ defined in Table 5.5.2.11-1 of GS NFV-SOL 005. The support of this notification\ - \ is mandatory. The notification shall be triggered by the NFVO when the value\ - \ of the \"nsdOperationalState\" attribute has changed, and the \"nsdOperationalState\"\ - \ attribute has the value \"ONBOARDED\"." - NsdDeletionNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdId" - - "nsdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdDeletionNotification \" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the NSD in a globally unique way. It is copied from the on-boarded NSD." - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of the deletion of an on-boarded NSD. The notification shall\ - \ comply with the provisions defined in Table 5.5.2.12-1. The support of this\ - \ notification is mandatory. The notification shall be triggered by the NFVO\ - \ when it has deleted an on-boarded NSD." - PnfdmLinks: - type: "object" - required: - - "pnfdInfo" - - "subscription" - properties: - pnfdInfo: - $ref: "#/definitions/Link" - subscription: - $ref: "#/definitions/Link" - description: "This type represents the links to resources that a PNFD management\ - \ notification can contain." - PnfdOnboardingNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "pnfdId" - - "pnfdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"PnfdOnboardingNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - pnfdInfoId: - type: "string" - description: "Identifier of the PNFD information object. This identifier is\ - \ allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the service\nprovider,\ - \ identifies the PNFD in a globally unique way. It is copied from the on-boarded\ - \ PNFD." - _links: - $ref: "#/definitions/PnfdmLinks" - description: "This type represents a PNFD management notification, which informs\ - \ the receiver of the successful on-boarding of a\nPNFD. It shall comply with\ - \ the provisions defined in Table 5.5.2.13-1. The support of this notification\ - \ is mandatory. The notification is triggered when a new PNFD is on-boarded." - PnfdOnboardingFailureNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "onboardingFailureDetails" - - "pnfdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"PnfdOnboardingFailureNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - pnfdInfoId: - type: "string" - description: "Identifier of the PNFD information object. This identifier is\ - \ allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the service\nprovider,\ - \ identifies the PNFD in a globally unique way." - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - _links: - $ref: "#/definitions/PnfdmLinks" - description: "This type represents a PNFD management notification, which informs\ - \ the receiver of the failure of on-boarding a\n PNFD. It shall comply with\ - \ the provisions defined in Table 5.5.2.14-1 of GS NFV-SOL 005. The support\ - \ of this notification is mandatory. The notification is triggered when the\ - \ on-boarding of a PNFD fails." - PnfdDeletionNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "pnfdId" - - "pnfdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"PnfdDeletionNotification \" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - pnfdInfoId: - type: "string" - description: "Identifier of the PNFD information object. This identifier is\ - \ allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the PNFD in a globally unique way. It is copied from the on-boarded PNFD." - _links: - $ref: "#/definitions/PnfdmLinks" - description: "This type represents a PNFD management notification, which informs\ - \ the receiver of the deletion of an on-boarded PNFD. The notification shall\ - \ comply with the provisions defined in Table 5.5.2.15-1. The support of this\ - \ notification is mandatory. The notification is triggered when an on-boarded\ - \ PNFD is deleted." + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdOnBoardingFailureNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.10 + post: + summary: Notify about NSD and PNFD changes + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.10.3.1-2. + parameters: + - name: NsdOnBoardingFailureNotification + description: > + A notification about the failure of on-boarding an NSD. + in: body + required: true + schema: + properties: + NsdOnBoardingFailureNotification: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdOnBoardingFailureNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdChangeNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.10 + post: + summary: Notify about NSD and PNFD changes + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.10.3.1-2. + parameters: + - name: NsdChangeNotification + description: > + A notification about the state change of an on-boarded NSD. + in: body + required: true + schema: + properties: + NsdChangeNotification: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdChangeNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdDeletionNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.10 + post: + summary: Notify about NSD and PNFD changes + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.10.3.1-2. + parameters: + - name: NsdDeletionNotification + description: > + A notification about the deletion of an on-boarded NSD. + in: body + required: true + schema: + properties: + NsdDeletionNotification: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdDeletionNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-PnfdOnBoardingNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.10 + post: + summary: Notify about NSD and PNFD changes + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.10.3.1-2. + parameters: + - name: PnfdOnBoardingNotification + description: > + A notification about the successful on-boarding of a PNFD. + in: body + required: true + schema: + properties: + PnfdOnBoardingNotification: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdOnBoardingNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-PnfdOnBoardingFailureNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.10 + post: + summary: Notify about NSD and PNFD changes + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.10.3.1-2. + parameters: + - name: PnfdOnBoardingFailureNotification + description: > + A notification about the failure of on-boarding a PNFD. + in: body + required: true + schema: + properties: + PnfdOnBoardingFailureNotification: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdOnBoardingFailureNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-PnfdDeletionNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.10 + post: + summary: Notify about NSD and PNFD changes + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Table 5.4.10.3.1-2. + parameters: + - name: PnfdDeletionNotification + description: > + A notification about the deletion of an on-boarded PNFD. + in: body + required: true + schema: + properties: + PnfdDeletionNotification: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdDeletionNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + get: + summary: Test the notification endpoint + description: > + This resource represents a notification endpoint. The server can use + this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + + The GET method allows the server to test the notification endpoint + that is provided by the client, e.g. during subscription. + This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The notification endpoint was tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..702a0c71342ffd725ee89fd2b7a281d78f5974fa --- /dev/null +++ b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml @@ -0,0 +1,884 @@ + definitions: + NsdInfo: + type: "object" + required: + - "id" + - "nsdOnboardingState" + - "nsdOperationalState" + - "nsdUsageState" + - "_links" + properties: + id: + description: > + Identifier of the on boarded individual NS descriptor + resource. This identifier is allocated by the NFVO. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdId: + description: > + This identifier, which is allocated by the NSD + designer, identifies the NSD in a globally unique + way. It is copied from the NSD content and shall be + present after the NSD content is on-boarded. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdName: + type: "string" + description: > + "Name of the on boarded NSD. This information is copied from the + NSD content and shall be present after the NSD content is on-boarded." + nsdVersion: + description: > + Version of the on-boarded NSD. This information is + copied from the NSD content and shall be present + after the NSD content is on-boarded. + $ref: "SOL005_def.yaml#/definitions/Version" + nsdDesigner: + type: "string" + description: > + "Designer of the on-boarded NSD. This information is copied + from the NSD content and shall be present after the NSD content is on-boarded." + nsdInvariantId: + description: > + This identifier, which is allocated by the NSD + designer, identifies an NSD in a version independent + manner. This information is copied from the NSD + content and shall be present after the NSD content is + on-boarded. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfPkgIds: + description: > + Identifies the VNF package for the VNFD referenced + by the on-boarded NS descriptor resource. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdInfoIds: + description: > + Identifies the PnfdInfo element for the PNFD + referenced by the on-boarded NS descriptor + resource. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nestedNsdInfoIds: + description: > + Identifies the NsdInfo element for the nested NSD + referenced by the on-boarded NS descriptor + resource. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdOnboardingState: + description: > + On boarding state of the individual NS descriptor resource. + $ref: "#/definitions/NsdOnboardingStateType" + onboardingFailureDetails: + description: > + Failure details of current on boarding procedure. See + clause 4.3.5.3 for the details of "ProblemDetails" + structure. + It shall be present when the "nsdOnboardingState" + attribute is CREATED and the uploading or + processing fails in NFVO. + $ref: "SOL005_def.yaml#/definitions/ProblemDetails" + nsdOperationalState: + description: > + Operational state of the individual NS descriptor + resource. This attribute can be modified with the + PATCH method. + $ref: "#/definitions/NsdOperationalStateType" + nsdUsageState: + description: > + Usage state of the individual NS descriptor resource. + $ref: "#/definitions/NsdUsageStateType" + userDefinedData: + description: > + User defined data for the individual NS descriptor + resource. This attribute can be modified with the + PATCH method. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + _links: + type: "object" + required: + - "self" + - "nsd_content" + description: > + "Links to resources related to this resource." + properties: + self: + description: > + "URI of this resource." + $ref: "SOL005_def.yaml#/definitions/Link" + nsd_content: + description: > + "Link to the NSD content resource" + $ref: "SOL005_def.yaml#/definitions/Link" + description: > + "This type represents a response for the query NSD operation." + + NsdInfoModifications: + type: "object" + description: > + This type represents attribute modifications for an individual NS + descriptor resource based on the NsdInfo data type. The attributes of + NsdInfo that can be modified are included in the NsdInfoModifications + data type.NOTE: At least one of the attributes - nsdOperationalState and + userDefinedData - shall be present. + properties: + nsdOperationalState: + $ref: "#/definitions/NsdOperationalStateType" + userDefinedData: + description: > + Modifications of the userDefinedData attribute in NsdInfo + data type. See note. If present, these modifications shall be applied + according to the rules of JSON Merge PATCH (see IETF RFC 7396 [25]). + NOTE- At least one of the attributes - nsdOperationalState and userDefinedData - shall be present. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + nsdOperationalState: + description: > + "New value of the "nsdOperationalState" attribute in "NsdInfo" + data type. See note.Permitted values: + ENABLED, + DISABLED" + type: "array" + items: + $ref: "#/definitions/NsdInfoModifications" + + NsdmSubscription: + type: "object" + required: + - "id" + - "callbackUri" + - "_links" + properties: + id: + description: > + Identifier of this subscription resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + filter: + description: > + Filter settings for this subscription, to define the subset + of all notifications this subscription relates to. + A particular notification is sent to the subscriber if the filter + matches, or if there is no filter. + $ref: "#/definitions/NsdmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + _links: + type: "object" + description: > + Links to resources related to this resource. + properties: + self: + $ref: "SOL005_def.yaml#/definitions/Link" + description: > + This type represents a subscription related to notifications about NSD management. + + NsdmSubscriptionRequest: + type: "object" + required: + - "callbackUri" + properties: + filter: + $ref: "#/definitions/NsdmNotificationsFilter" + callbackUri: + type: "string" + description: > + The URI of the endpoint to send the notification to. + authentication: + $ref: "#/definitions/SubscriptionAuthentication" + description: > + This type represents a subscription request related to notifications + about NSD management. + NsdmNotificationsFilter: + type: "object" + description: > + "This type represents a subscription filter related to notifications + about NSD management. It shall comply with the provisions defined in Table + 5.5.3.2-1 of GS NFV-SOL 005. At a particular nesting level in the filter structure, + the following applies: All attributes shall match in order for the filter + to match (logical "and" between different filter attributes). If an attribute + is an array, the attribute shall match if at least one of the values in the + array matches (logical "or" between the values of one filter attribute)." + properties: + notificationTypes: + description: > + "Match particular notification types. Permitted values: NsdOnBoardingNotification, + NsdOnboardingFailureNotification, NsdChangeNotification, NsdDeletionNotification + PnfdOnBoardingNotification, PnfdOnBoardingFailureNotification, PnfdDeletionNotification. + The permitted values of the "notificationTypes" ] attribute are spelled + exactly as the names of the notification types to facilitate automated + code generation systems." + type: array + items: + type: string + enum: + - "NsdOnBoardingNotification" + - "NsdOnboardingFailureNotification" + - "NsdChangeNotification" + - "NsdDeletionNotification" + - "PnfdOnBoardingNotification" + - "PnfdOnBoardingFailureNotification" + - "PnfdDeletionNotification" + nsdInfoId: + description: > + Match the NsdInfo identifier which is allocated by the NFVO. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdId: + description: > + Match the NSD identifier, which is allocated by the NSD designer. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdName: + description: > + Match the name of the on boarded NSD. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + nsdVersion: + description: > + Match the NSD version listed as part of this attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Version" + nsdDesigner: + description: > + "Match the NSD designer of the on-boarded NSD." + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + nsdInvariantId: + description: > + Match the NSD invariant identifier which is allocated + by the NSD designer and identifies an NSD in a + version independent manner. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfPkgIds: + description: > + Match VNF packages with a package identifier listed + in the attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdInfoIds: + description: > + Match the PnfdInfo identifier for the PNFD + referenced by the on-boarded NSD. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nestedNsdInfoIds: + description: > + Match the NsdInfo identifier for the nested NSD + referenced by the on-boarded NSD. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdOnboardingState: + description: > + Match particular on-boarding state of the NSD. + type: array + items: + $ref: "#/definitions/NsdOnboardingStateType" + nsdOperationalState: + description: > + Match particular operational state of the on-boarded NSD. + type: array + items: + $ref: "#/definitions/NsdOperationalStateType" + nsdUsageState: + description: > + Match particular usage state of the on-boarded NSD. + type: array + items: + $ref: "#/definitions/NsdUsageStateType" + pnfdId: + description: > + Match the PNFD identifier which is copied from the PNFD content. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdName: + description: > + Match the name of the on-boarded PNFD. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + pnfdVersion: + description: > + Match the PNFD designer of the on-boarded PNFD. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Version" + pnfdProvider: + description: > + Match the provider of the on-boarded PNFD. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + pnfdInvariantId: + description: > + Match the PNFD in a version independent manner. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdOnboardingState: + description: > + Match particular on-boarding state of the PNFD. + type: array + items: + $ref: "#/definitions/PnfdOnboardingStateType" + pnfdUsageState: + description: > + Match the usage state of the individual PNF descriptor resource. + type: array + items: + $ref: "#/definitions/PnfdUsageStateType" + SubscriptionAuthentication: + description: > + The procedure defined in clause 4.5.2 allows an API consumer to + obtain authorization to perform API requests towards + the API producer, including subscription requests. + For sending the actual notifications matching a subscription, the API + producer needs to obtain separate authorization to actually send the notification to the API consumer. + If an API consumer requires the API producer to authorize for sending notifications to that API consumer, it shall + include in the subscription request a data structure that defines the authorization requirements, as defined in + Table 4.5.3.4-1. + type: "object" + required: + - "authType" + properties: + authType: + description: > + Defines the types of Authentication + Authorization the API consumer is willing to + accept when receiving a notification. + + Permitted values: + + BASIC: In every HTTP request to the + notification endpoint, use HTTP Basic + authentication with the client credentials. + + OAUTH2_CLIENT_CREDENTIALS: In every + HTTP request to the notification endpoint, use + an OAuth 2.0 Bearer token, obtained using the + client credentials grant type. + + TLS_CERT: Every HTTP request to the + notification endpoint is sent over a mutually + authenticated TLS session. i.e. not only server + is authenticated, but also the client is + authenticated during the TLS tunnel setup + + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + type: "object" + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and + the contained information has not been + provisioned out of band. Shall be absent otherwise. + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + type: "object" + description: > + Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials + grant type. Shall be present if it has not been + provisioned out of band. + type: string + clientPassword: + description: > + Client password to be used in the access + token request of the OAuth 2.0 client + credentials grant type. Shall be present if it + has not been provisioned out of band. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access + token can be obtained. Shall be present if it + has not been provisioned out of band. + $ref: "SOL005_def.yaml#/definitions/Uri" + + NsdOperationalStateType: + type: "string" + description: > + "The enumeration NsdOperationalStateType shall comply with the provisions + defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational + state of the resource. + ENABLED = The operational state of the resource is enabled. + DISABLED = The operational state of the resource is disabled." + enum: + - "ENABLED" + - "DISABLED" + NsdOnboardingStateType: + type: "string" + description: > + "The enumeration NsdOnboardingStateType shall comply with the provisions + defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the on-boarding + state of the NSD. + CREATED = The NSD information object is created. + UPLOADING = The associated NSD content is being uploaded. + PROCESSING = The associated NSD content is being processed, e.g. validation. + ONBOARDED = The associated NSD content is on-boarded." + enum: + - "CREATED" + - "UPLOADING" + - "PROCESSING" + - "ONBOARDED" + NsdUsageStateType: + type: "string" + description: > + "The enumeration NsdUsageStateType shall comply with the provisions + defined in Table 5.5.4.4-1 of GS NFV-SOL 005. It indicates the usage state + of the resource.IN_USE = The resource is in use.NOT_IN_USE = The resource + is not-in-use." + enum: + - "IN_USE" + - "NOT_IN_USE" + CreateNsdInfoRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "This type creates a completely new NS descriptor resource." + PnfdInfoModifications: + type: "object" + required: + - "userDefinedData" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "This type represents attribute modifications for an individual PNF + descriptor resource based on the "PnfdInfo" data type. The attributes of + "PnfdInfo" that can be modified are included in the "PnfdInfoModifications" + data type." + PnfdInfo: + type: "object" + required: + - "id" + - "pnfdOnboardingState" + - "pnfdUsageState" + - "_links" + properties: + id: + description: > + Identifier of the on-boarded individual PNF + descriptor resource. This identifier is allocated by + the NFVO. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdId: + description: > + This identifier, which is managed by the PNFD + designer, identifies the PNFD in a globally unique way. + It is copied from the PNFD content and shall + be present after the PNFD content is on-boarded. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdName: + description: > + Name of the on-boarded PNFD. This information + is copied from the PNFD content and shall be + present after the PNFD content is on-boarded. + type: "string" + pnfdersion: + $ref: "SOL005_def.yaml#/definitions/Version" + pnfdProvider: + description: > + "Provider of the on-boarded PNFD. This information is copied from + the PNFD content and shall be present after the PNFD content is on-boarded." + type: "string" + pnfdInvariantId: + description: > + Identifies a PNFD in a version independent + manner. This attribute is invariant across versions + of PNFD. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdOnboardingState: + description: > + On-boarding state of the individual PNF descriptor resource. + $ref: "#/definitions/PnfdOnboardingStateType" + onboardingFailureDetails: + description: > + Failure details of current on-boarding procedure. + It shall be present when the + pnfdOnboardingState attribute is CREATED + and the uploading or processing fails in the NFVO. + $ref: "SOL005_def.yaml#/definitions/ProblemDetails" + pnfdUsageState: + description: > + Usage state of the individual PNF descriptor resource. + $ref: "#/definitions/PnfdUsageStateType" + userDefinedData: + type: "array" + description: > + User defined data for the individual PNF descriptor resource. + This attribute can be modified with the PATCH method. + items: + type: "object" + _links: + required: + - "pnfd_content" + - "self" + type: "object" + description: > + "Links to resources related to this resource." + properties: + self: + $ref: "SOL005_def.yaml#/definitions/Link" + pnfd_content: + $ref: "SOL005_def.yaml#/definitions/Link" + description: > + "This type represents a response for the query PNFD operation." + + PnfdOnboardingStateType: + type: "string" + description: > + The enumeration PnfdOnboardingStateType shall comply with the provisions + defined in Table 5.5.4.6-1 of GS-NFV SOL005. It indicates the on-boarding state + of the individual PNF descriptor resource. + CREATED = The PNF descriptor resource is created. + UPLOADING = The associated PNFD content is being uploaded. + PROCESSING = The associated PNFD content is being processed, e.g. validation. + ONBOARDED = The associated PNFD content is on-boarded. + enum: + - "CREATED" + - "UPLOADING" + - "PROCESSING" + - "ONBOARDING" + PnfdUsageStateType: + type: "string" + description: > + "The enumeration PnfdUsageStateType shall comply with the provisions + defined in Table 5.5.4.7-1 of GS NFV-SOL005. It indicates the usage state + of the resource.IN-USE = The resource is in use.NOT_IN_USE = The resource + is not-in-use." + enum: + - "IN_USE" + - "NOT_IN_USE" + CreatePnfdInfoRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + User-defined data for the PNF descriptor resource to be created. + It shall be present when the user defined data is set for + the individual PNF descriptor resource to be created. + NsdmLinks: + type: "object" + required: + - "nsdInfo" + - "subscription" + properties: + nsdInfo: + $ref: "SOL005_def.yaml#/definitions/Link" + subscription: + $ref: "SOL005_def.yaml#/definitions/Link" + description: > + "This type represents the links to resources that an NSD management + notification can contain." + PnfdmLinks: + type: "object" + required: + - "pnfdInfo" + - "subscription" + properties: + pnfdInfo: + $ref: "SOL005_def.yaml#/definitions/Link" + subscription: + $ref: "SOL005_def.yaml#/definitions/Link" + description: > + "This type represents the links to resources that a PNFD management + notification can contain." + NsdOnBoardingNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdId" + - "nsdInfoId" + - "timeStamp" + properties: + id: + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdOnboardingNotification" for this notification type." + subscriptionId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + nsdInfoId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of the successful on-boarding of an NSD. It shall comply with + the provisions defined in Table 5.5.2.9-1. The support of this notification + is mandatory. The notification shall be triggered by the NFVO when the " + nsdOnboardingState" attribute of a new NSD has changed to "ONBOARDED"." + NsdOnBoardingFailureNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdInfoId" + - "onboardingFailureDetails" + - "timeStamp" + properties: + id: + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdOnboardingFailureNotification" for this notification type." + subscriptionId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + nsdInfoId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + onboardingFailureDetails: + $ref: "SOL005_def.yaml#/definitions/ProblemDetails" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of the failure of on-boarding an NSD. It shall comply with the + provisions defined in Table 5.5.2.10-1. The support of this notification is + mandatory. The notification shall be triggered by the NFVO when the on-boarding + of an NSD has failed." + NsdChangeNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdId" + - "nsdInfoId" + - "nsdOperationalState" + - "timeStamp" + properties: + id: + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdChangeNotification" for this notification type." + subscriptionId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + nsdInfoId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdOperationalState: + $ref: "#/definitions/NsdOperationalStateType" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of a change of the "nsdOperationalState" attribute of an on-boarded + NSD. Changes in the value of the "nsdUsageState" and "nsdOnboardingState" + attributes are not reported. The notification shall comply with the provisions + defined in Table 5.5.2.11-1. The support of this notification is mandatory. + The notification shall be triggered by the NFVO when the value of the "nsdOperationalState" + attribute has changed, and the "nsdOperationalState" attribute has the value + "ONBOARDED"." + NsdDeletionNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdId" + - "nsdInfoId" + - "timeStamp" + properties: + id: + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdDeletionNotification " for this notification type." + subscriptionId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + nsdInfoId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of the deletion of an on-boarded NSD. The notification shall + comply with the provisions defined in Table 5.5.2.12-1. The support of this + notification is mandatory. The notification shall be triggered by the NFVO + when it has deleted an on-boarded NSD." + PnfdOnBoardingNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "pnfdId" + - "pnfdInfoId" + - "timeStamp" + properties: + id: + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "PnfdOnboardingNotification" for this notification type." + subscriptionId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + pnfdInfoId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + $ref: "#/definitions/PnfdmLinks" + description: > + "This type represents a PNFD management notification, which informs + the receiver of the successful on-boarding of aPNFD. It shall comply with + the provisions defined in Table 5.5.2.13-1. The support of this notification + is mandatory. The notification is triggered when a new PNFD is on-boarded." + PnfdOnBoardingFailureNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "onboardingFailureDetails" + - "pnfdInfoId" + - "timeStamp" + properties: + id: + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "PnfdOnboardingFailureNotification" for this notification type." + subscriptionId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + pnfdInfoId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + onboardingFailureDetails: + $ref: "SOL005_def.yaml#/definitions/ProblemDetails" + _links: + $ref: "#/definitions/PnfdmLinks" + description: > + "This type represents a PNFD management notification, which informs + the receiver of the failure of on-boarding a PNFD. It shall comply with + the provisions defined in Table 5.5.2.14-1. The support of this notification + is mandatory. The notification is triggered when the on-boarding of a PNFD + fails." + PnfdDeletionNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "pnfdId" + - "pnfdInfoId" + - "timeStamp" + properties: + id: + type: "string" + description: > + "Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value." + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "PnfdDeletionNotification " for this notification type." + subscriptionId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + pnfdInfoId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdId: + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + $ref: "#/definitions/PnfdmLinks" + description: > + "This type represents a PNFD management notification, which informs + the receiver of the deletion of an on-boarded PNFD. The notification shall + comply with the provisions defined in Table 5.5.2.15-1. The support of this + notification is mandatory. The notification is triggered when an on-boarded + PNFD is deleted." \ No newline at end of file diff --git a/src/SOL005/NSDManagement/definitions/SOL005_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..efc9b178e478beae91f2daf7f2368408eccb56b2 --- /dev/null +++ b/src/SOL005/NSDManagement/definitions/SOL005_def.yaml @@ -0,0 +1,102 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. + In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions + defined in clause 4 of IETF RFC 7159. + type: object + String: + description: > + This type represents stack of string values + type: string + + Version: + description: > + A Version. + type: string + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced in this structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - statussss + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI \ No newline at end of file diff --git a/src/SOL005/NSDManagement/responses/NSDescriptorManagement_resp.yaml b/src/SOL005/NSDManagement/responses/NSDescriptorManagement_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..97eaac7c4d049c686c63db1cbfbce8c3286a023d --- /dev/null +++ b/src/SOL005/NSDManagement/responses/NSDescriptorManagement_resp.yaml @@ -0,0 +1,292 @@ + responses: + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. The response body shall be empty. + The HTTP response shall include a "Location" HTTP + header that contains the URI of the newly-created + "NS lifecycle operation occurrence" resource + corresponding to the operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 202-with-Location-empty: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS Descriptor operation occurrence" resource corresponding to the + operation. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 409: + description: > + Conflict + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact the NS descriptor + resource is in the enabled operational state (i.e. + operationalState = ENABLED) or there are running + NS instances using the concerned individual NS + descriptor resource (i.e. usageState = IN_USE). + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-another-nsd-operation-ongoing: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that another Descriptor operation is + ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-inconsistent-state: + description: > + Conflict + + Another request is in progress that prohibits the fulfillment of + the current request, or the current resource state is inconsistent + with the request. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-INSTANTIATED: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + INSTANTIATED state. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-not-FAILED_TEMP: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is + not in FAILED_TEMP state, or another error handling action is starting, + such as rollback or fail. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-NOT-INSTANTIATED: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + NOT-INSTANTIATED state, or that another lifecycle management operation + is ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-nsd-onboarding-state-NOT-ONBOARDED: + description: > + Conflict + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact "nsdOnboardingState" + has a value different from ONBOARDED. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-pnfd-onboarding-state-NOT-ONBOARDED: + description: > + Conflict + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact pnfdOnboardingState + has a value different from ONBOARDED. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-pnfd-onboarding-state-NOT-CREATED: + description: > + Conflict. + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the + PnfdOnboardingState has a value other than CREATED. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSDManagement/responses/SOL005_resp.yaml b/src/SOL005/NSDManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..63de4a652c8fc2b7589f9e5a6ea4eb2cf9ce0a1e --- /dev/null +++ b/src/SOL005/NSDManagement/responses/SOL005_resp.yaml @@ -0,0 +1,417 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 202: + description: > + Accepted + + The request was accepted for processing, but processing has not + been completed. The response shall have an empty payload body. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS LCM operation occurrence" resource corresponding to the + operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 206: + description: > + Partial Content. + + On success, if the NFVO supports range requests, a + single consecutive byte range from the content of the + NSD file is returned. + The response body shall contain the requested part of + the NSD file. + The "Content-Range" HTTP header shall be provided + according to IETF RFC 7233 [23]. + The "Content-Type" HTTP header shall be set as + defined above for the "200 OK" response. + headers: + Content-Range: + type: "string" + Content-Type: + type: "string" + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 303: + description: > + See Other + A subscription with the same callbackURI and the same filter already + exists and the policy of the VNFM is to not create redundant + subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-selector: + description: > + Error: Invalid attribute selector. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source + of the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the NS instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists-NSD: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also be returned if the task is not supported for the NS LCM operation + occurrence represented by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS instance represented by the parent + resource, and that the task resource consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported-NSD: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS LCM operation occurrence + represented by the parent resource, and that the task resource + consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the source of the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + 406 Not Acceptable + + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the NSD, the NFVO shall + respond with this response code. + The "ProblemDetails" structure may be included with + the "detail" attribute providing more information about + the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 412: + description: > + Precondition Failed. + A precondition given in an HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should + contain a ProblemDetails structure, in which the "detail" attribute + should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416: + description: > + The byte range passed in the "Range" header did not + match any available byte range in the NSD file (e.g. access after end of file). + The response body may contain a ProblemDetails structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 422: + description: > + Unprocessable Entity + If the payload body of a request contains syntactically correct + data (e.g. well-formed JSON) but the data cannot be processed + (e.g. because it fails validation against a schema), the API + producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of the + problem. + NOTE 2: This error response code is only applicable for methods + that have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond with this + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index 8d53e2da2ec75bbd9fc896e843928422419d2984..497d6e8d9f41c28189e33c4279b39ae66d75dd45 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -1,10 +1,10 @@ swagger: "2.0" info: - version: "2.4.1" - title: DRAFT - SOL005 - NS Fault Management Interface + version: "1.0.0" + title: SOL005 - NS Fault Management Interface description: > - DRAFT - SOL005 - NS Fault Management Interface + SOL005 - NS Fault Management Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI @@ -19,18 +19,831 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.4.1 url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf basePath: "/nsfm/v1" - schemes: - https - consumes: - "application/json" produces: - "application/json" - paths: - /resource: +############################################################################### +# Alarms # +############################################################################### + '/alarms': + #ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.2 + get: + summary: Query alarms related to NS instances. + description: > + Get Alarm List. + + The client can use this method to retrieve information about the alarm list. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply filtering parameters. + The following attribute names shall be supported in attribute-based + filtering parameters: + - id + - nsInstanceId + - rootCauseFaultyComponent.faultyNestedNsInstanceId + - rootCauseFaultyComponent.faultyNsVirtualLinkInstanceId + - rootCauseFaultyComponent.faultyVnfInstanceId + - rootCauseFaultyResource.faultyResourceType + - eventType + - perceivedSeverity + - probableCause + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + The request has succeeded. + The response body shall contain the list of related alarms. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + Alarm: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual alarm # +############################################################################### + '/alarms/{alarmId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.3 + parameters: + - name: alarmId + description: > + Identifier of the alarm. + This identifier can be retrieved from the "id" attribute of the "alarm" attribute in the AlarmNotification or + AlarmClearedNotification. + It can also be retrieved from the "id" attribute of the applicable array element in the + payload body of the response to a GET request to the "Alarms" resource. + in: path + type: string + required: true + get: + summary: Read individual alarm. + description: > + The client can use this method to read an individual alarm. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + Information about an individual alarm was read successfully. + The response body shall contain a representation of the + individual alarm. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + properties: + Alarm: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + patch: + summary: Acknowledge individual alarm. + description: > + Acknowledge Alarm + + This method modifies an individual alarm resource. + parameters: + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "AlarmModifications" + properties: + AlarmModifications: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications" + description: > + The parameter for the alarm modification, as defined in clause 8.5.2.8. + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The Content-Type header shall be set to + "application/merge-patch+json" according to + IETF RFC 7396. + in: header + required: true + type: string + enum: ["application/merge-patch+json"] + responses: + 200: + description: > + 200 OK + + The request was accepted and completed. + The response body shall contain attribute modifications + for an 'Individual alarm' resource (see clause 8.5.2.4). + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + properties: + AlarmModifications: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSFManagement_resp.yaml#/responses/409-alarm-state-conflict" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################## +#Subscriptions # +############################################################################## + '/subscriptions': + #ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.4 + post: + summary: Subscribe to alarms related to NSs. + description: > + The POST method creates a new subscription. + This method shall follow the provisions specified in the Tables 8.4.4.3.1-1 and 8.4.4.3.1-2 for URI query parameters, + request and response data structures, and response codes. + Creation of two subscription resources with the same callbackURI and the same filter can result in performance + degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the + same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide + to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing + the existing subscription resource with the same filter and callbackUri). + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "FmSubscriptionRequest" + properties: + FmSubscriptionRequest: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" + description: > + Details of the subscription to be created, as defined in clause 8.5.2.2. + + responses: + 201: + description: > + 201 Created + + The subscription was created successfully. + The response body shall contain a representation of the + created subscription resource. + The HTTP response shall include a "Location:" HTTP + header that points to the created subscription resource. + schema: + type: "object" + properties: + FmSubscription: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 303: + $ref: "responses/SOL005_resp.yaml#/responses/303" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" get: + summary: Query multiple subscriptions. + description: > + Query Subscription Information + + The client can use this method to retrieve the list of active subscriptions + for alarms related to a NS subscribed by the client. + It can be used e.g. for resynchronization after error situations. + + This method shall follow the provisions specified in the Tables 8.4.4.3.2-1 and 8.4.4.3.2-2 for URI query parameters, + request and response data structures, and response codes. + Table 8.4.4.3.2-1: URI query parameters supported. + + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the FmSubscription and in data types + referenced from it shall be supported in attribute-based filtering parameters. + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + The list of subscriptions was queried successfully. + The response body shall contain the representations of + all active subscriptions of the functional block that + invokes the method. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + FmSubscription: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.5 + parameters: + - name: subscriptionId + description: > + Identifier of this subscription. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new subscription resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + type: string + required: true + get: + summary: Read an individual subscription. + description: > + Query Subscription Information + + The client can use this method for reading an individual subscription for alarms related to NSs subscribed by the client. + This method shall follow the provisions specified in the Tables 8.4.5.3.2-1 and 8.4.5.3.2-2 for URI query parameters, + request and response data structures, and response codes + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string responses: 200: - description: Success \ No newline at end of file + description: > + 200 OK + + The operation has completed successfully. + The response body shall contain a representation of the + subscription resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + properties: + FmSubscription: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Terminate a subscription. + description: > + Terminate Subscription + + This method terminates an individual subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 - No Content + + The subscription resource was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +################################################################################## +# Notification endpoint # +# Dummy URI is used for testing. # +# In real, resource URI is provided by the client when creating the subscription.# +################################################################################## + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.6 + post: + summary: Notify about NS alarms + description: > + The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. + + parameters: + - name: alarmNotification + description: > + Information of a NS alarm. + in: body + required: true + schema: + properties: + AlarmNotification: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.6 + post: + summary: Notify about NS alarms + description: > + The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. + parameters: + - name: alarmClearedNotification + description: > + Information of the clearance of a NS alarm. + in: body + required: true + schema: + properties: + AlarmClearedNotification: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmClearedNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.6 + post: + summary: Notify about NS alarms + description: > + The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. + parameters: + - name: AlarmListRebuiltNotification + description: > + Information that the alarm list has been rebuilt by the NFVO. + in: body + required: true + schema: + properties: + AlarmListRebuiltNotification: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + get: + summary: Test the notification endpoint + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during + subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The notification endpoint was tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2feda900ddcb9695c2da74d8ca22b08515818452 --- /dev/null +++ b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml @@ -0,0 +1,541 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt +definitions: + Alarm: + description: > + The alarm data type encapsulates information about an alarm. + It shall comply with the provisions defined in Table 8.5.2.4-1 + type: object + required: + - id + - managedObjectId + - alarmRaisedTime + - rootCauseFaultyComponent + - ackState + - perceivedSeverity + - eventTime + - eventType + - probableCause + - isRootCause + - _links + properties: + id: + description: > + Identifier of this Alarm information element. + $ref: "SOL005_def.yaml#/definitions/Identifier" + managedObjectId: + description: > + Identifier of the affected NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + rootCauseFaultyComponent: + description: > + The NS components that are causing the NS fault. + $ref: "#/definitions/FaultyComponentInfo" + rootCauseFaultyResource: + description: > + The virtualised resources that are causing the NS + fault. It shall be present when the faulty component + is "NS Virtual Link" or "VNF". + $ref: "#/definitions/FaultyResourceInfo" + alarmRaisedTime: + description: > + Alarm identifier. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarmChangedTime: + description: > + The time stamp indicating when the alarm was cleared. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarmClearedTime: + description: > + Links to resources related to this notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + ackState: + description: > + Acknowledgment state of the alarm. + Permitted values: + UNACKNOWLEDGED + ACKNOWLEDGED + type: string + enum: + - UNACKNOWLEDGED + - ACKNOWLEDGED + perceivedSeverity: + description: > + Perceived severity of the managed object failure. + $ref: "#/definitions/PerceivedSeverityType" + eventTime: + description: > + Time stamp indicating when the fault was observed. + $ref: "SOL005_def.yaml#/definitions/DateTime" + eventType: + description: > + Type of event. + $ref: "#/definitions/EventType" + faultType: + description: > + Additional information to clarify the type of the fault. + type: string + probableCause: + description: > + Information about the probable cause of the fault. + type: string + isRootCause: + description: > + Attribute indicating if this fault is the root for other + correlated alarms. If TRUE, then the alarms listed in + the attribute CorrelatedAlarmId are caused by this fault. + type: boolean + correlatedAlarmIds: + description: > + List of identifiers of other alarms correlated to this fault. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + faultDetails: + description: > + Provides additional information about the fault.. + type: string + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + objectInstance: + description: > + Link to the resource representing the NS instance to + which the notified alarm is correlated. Shall be + present if the NS instance information is accessible + as a resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + AlarmClearedNotification: + description: > + This type represents an alarm cleared notification about VNF faults. + The notification shall be triggered by the VNFM when an alarm has been + cleared. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - alarmId + - alarmClearedTime + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "AlarmClearedNotification" for this notification type. + type: string + enum: + - AlarmClearedNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarmId: + description: > + Alarm identifier. + $ref: "SOL005_def.yaml#/definitions/Identifier" + alarmClearedTime: + description: > + The time stamp indicating when the alarm was cleared. + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarm + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + alarm: + description: > + Link to the resource that represents the related alarm. + $ref: "SOL005_def.yaml#/definitions/Link" + + AlarmListRebuiltNotification: + description: > + This type represents a notification that the alarm list has been + rebuilt, e.g. if the VNFM detects its storage holding the alarm + list is corrupted. + The notification shall be triggered by the VNFM when the alarm list has + been rebuilt. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "AlarmListRebuiltNotification" for this notification type. + type: string + enum: + - AlarmListRebuiltNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarms + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + alarms: + description: > + Link to the alarm list, i.e. the "Alarms" resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + AlarmModifications: + description: > + This type represents attribute modifications for an "Individual alarm" resource, i.e. modifications to a resource + representation based on the "Alarm" data type. The attributes of "Alarm" that can be modified according to the + provisions in clause 8.5.2.4 are included in the "AlarmModifications" data type. + The "AlarmModifications" data type shall comply with the provisions defined in Table 8.5.2.8-1. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". + Permitted values: + - ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + EventType: + description: > + The enumeration EventType represents those types of events that trigger + an alarm. + - COMMUNICATIONS_ALARM: An alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + - PROCESSING_ERROR_ALARM: An alarm of this type is associated with a + software or processing fault (ITU-T Recommendation X.733). + - ENVIRONMENTAL_ALARM: An alarm of this type is associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + - QOS_ALARM: An alarm of this type is associated with degradation in the + quality of a service (ITU-T Recommendation X.733). + - EQUIPMENT_ALARM: An alarm of this type is associated with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + + FaultyResourceInfo: + description: > + This type represents the faulty virtual resources that have a negative impact on a NS. + type: object + required: + - faultyResource + - faultyResourceType + properties: + faultyResource: + description: > + Information that identifies the faulty resource instance and + its managing entity. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + faultyResourceType: + description: > + Type of the faulty resource. + $ref: "#/definitions/FaultyResourceType" + + FaultyResourceType: + description: > + The enumeration FaultyResourceType represents those types of faulty + resource. + Acceptable values are: + - COMPUTE - Virtual compute resource. + - STORAGE - Virtual storage resource. + - NETWORK - Virtual network resource. + type: string + enum: + - COMPUTE + - STORAGE + - NETWORK + + FmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications about NS faults. + It shall comply with the provisions + defined in Table 8.5.3.2-1. + At a particular nesting level in the filter structure, the following applies: + All attributes shall match in order for the filter + to match (logical "and" between different filter attributes). + If an attribute is an array, the attribute shall match if at least + one of the values in the array matches (logical "or" between the values of one filter attribute).. + type: object + properties: + nsInstanceSubscriptionFilter: + description: > + Filter criteria to select NS instances about which to notify. + $ref: "SOL005_def.yaml#/definitions/NsInstanceSubscriptionFilter" + notificationTypes: + description: > + Match particular notification types. + Permitted values: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + faultyResourceTypes: + description: > + Match alarms related to NSs with a faulty resource type listed in this attribute. + type: array + items: + $ref: "#/definitions/FaultyResourceType" + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this attribute. + type: array + items: + $ref: "#/definitions/PerceivedSeverityType" + eventTypes: + description: > + Match VNF alarms with an event type listed in this attribute. + type: array + items: + $ref: "#/definitions/EventType" + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this attribute. + type: array + items: + type: string + + FmSubscription: + description: > + This type represents a subscription related to notifications about VNF + faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier of this subscription resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + filter: + description: > + Filter settings for this subscription, to define the subset of all + notifications this subscription relates to. A particular + notification is sent to the subscriber if the filter matches, or if + there is no filter. + $ref: "#/definitions/FmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + type: string + format: url + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + FmSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about VNF faults. + type: object + required: + - callbackUri + properties: + filter: + description: > + Filter settings for this subscription, to define the subset of all + notifications this subscription relates to. A particular + notification is sent to the subscriber if the filter matches, or if + there is no filter. + $ref: "#/definitions/FmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + type: string + format: url + authentication: + description: > + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this subscription. + This attribute shall only be present if the subscriber requires + authorization of notifications. + $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" + + PerceivedSeverityType: + description: > + Indicates the relative level of urgency for operator attention. + * CRITICAL: The Critical severity level indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + + FaultyComponentInfo: + description: > + This type represents the faulty component that has a negative impact on an NS. + It shall comply with the provisions + defined in Table 8.5.3.4-1. + type: object + properties: + faultyNestedNsInstanceId: + description: > + Identifier of the faulty nested NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + faultyResourceType: + description: > + Identifier of the faulty NS virtual link instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + faultyNsVirtualLinkInstanceId: + description: > + Identifier of the faulty VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + + AlarmNotification: + description: > + This type represents an alarm notification about NS faults. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - alarm + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent + multiple times due to multiple subscriptions, the "id" + attribute of all these notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "AlarmNotification" for this notification type. + type: string + enum: + - AlarmClearedNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarm: + description: > + Information about an alarm including AlarmId, affected + NS identifier, and FaultDetails. + $ref: "#/definitions/Alarm" + alarmClearedTime: + description: > + The time stamp indicating when the alarm was cleared. + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarm + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + alarm: + description: > + Link to the resource that represents the related alarm. + $ref: "SOL005_def.yaml#/definitions/Link" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/definitions/SOL005_def.yaml b/src/SOL005/NSFaultManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..333b278b42fed168e075b0d02b413c6c40e94354 --- /dev/null +++ b/src/SOL005/NSFaultManagement/definitions/SOL005_def.yaml @@ -0,0 +1,269 @@ + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced in this structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - statussss + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + ResourceHandle: + required: + - resourceId + type: object + description: > + This type represents the information that allows addressing a virtualised resource that is used by a VNF instance or by + an NS instance. Information about the resource is available from the VIM. The ResourceHandle type shall comply with + the provisions defined in Table 6.5.3.54-1.. + properties: + vimId: + description: > + Identifier of the VIM under whose control this resource is placed. + This attribute shall be present if VNF-related resource + management in direct mode is applicable. It shall also + be present for resources that are part of an NS instance + such as virtual link resources. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifier of the entity responsible for the management of + the resource. + This attribute shall only be supported and present when + VNF-related resource management in indirect mode is + applicable. The identification scheme is outside the + scope of the present document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + Identifier of the resource in the scope of the VIM or the + resource provider. + $ref: "#/definitions/IdentifierInVim" + vimLevelResourceType: + description: > + Type of the resource in the scope of the VIM or the resource provider. + type: string + + IdentifierInVim: + description: > + An identifier maintained by the VIM or other resource provider. It is + expected to be unique within the VIM instance. + type: string + + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + + SubscriptionAuthentication: + description: > + Authentication parameters to conFigure the use of + Authorization when sendingnotifications corresponding to + this subscription, as defined in clause 4.5.3.4. + This attribute shall only be present if the subscriber + requires authorization of notifications. + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + * BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + Shall be present if it has not been provisioned out of band. + $ref: "#/definitions/Uri" + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + String: + description: > + This type represents stack of string values + type: string + + NsInstanceSubscriptionFilter: + required: + - nsdIds + - vnfdIds + - pnfdIds + - nsInstanceIds + type: object + description: > + This type represents subscription filter criteria to match NS instances. + It shall comply with the provisions defined in Table 4.4.1.5-1. + properties: + nsdIds: + description: > + If present, match NS instances that were created + based on a NSD identified by one of the nsdId + values listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + vnfdIds: + description: > + If present, match NS instances that contain VNF + instances that were created based on a VNFD + identified by one of the vnfdId values listed in + this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + pnfdIds: + description: > + If present, match NS instances that contain + PNFs that are represented by a PNFD identified + by one of the pnfdId values listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceIds: + description: > + If present, match NS instances with an instance + dentifier listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceNames: + description: > + If present, match NS instances with a NS + Instance Name listed in this attribute. + type: array + items: + $ref: "#/definitions/String" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/responses/NSFManagement_resp.yaml b/src/SOL005/NSFaultManagement/responses/NSFManagement_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5bb238ad03360c21208096a91d800310c4a2015b --- /dev/null +++ b/src/SOL005/NSFaultManagement/responses/NSFManagement_resp.yaml @@ -0,0 +1,29 @@ +responses: + 409-alarm-state-conflict: + description: > + Conflict + + Error: The operation cannot be executed currently, due + to a conflict with the state of the "Individual alarm" resource. + Typically, this is due to the fact that the alarm is already + in the state that is requested to be set (such as trying to + acknowledge an already-acknowledged alarm). + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/responses/SOL005_resp.yaml b/src/SOL005/NSFaultManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..30ea9e98adf0a65f1dc3cb83888ae8eb8e7644ed --- /dev/null +++ b/src/SOL005/NSFaultManagement/responses/SOL005_resp.yaml @@ -0,0 +1,195 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 303: + description: > + See Other + + A subscription with the same callbackURI and the same + filter already exits and the policy of the NFVO is to not + create redundant subscriptions. + The HTTP response shall include a "Location" HTTP + eader that contains the resource URI of the existing + subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized. + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the NSD, the NFVO shall + respond with this response code. + The "ProblemDetails" structure may be included with + the "detail" attribute providing more information about + the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 412: + description: > + Precondition Failed. + + Error: A precondition given in an HTTP request header + is not fulfilled. + Typically, this is due to an ETag mismatch, indicating + that the resource was modified by another entity. + The response body should contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond withthis + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index 6b7fd8f17887e983af7ebf8771633219811f3fbd..c0f218eb8c41ea99b4924f172d2fd28c02fb7a6b 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -1,10 +1,10 @@ swagger: "2.0" info: - version: "2.4.1" - title: DRAFT - SOL005 - NS Lifecycle Management Interface + version: "1.0.0" + title: SOL005 - NS Lifecycle Management Interface description: > - DRAFT - SOL005 - NS Lifecycle Management Interface + SOL005 - NS Lifecycle Management Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI @@ -19,18 +19,1931 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.4.1 url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf basePath: "/nslcm/v1" - schemes: - https - consumes: - "application/json" produces: - - "application/json" - + - "application/json" paths: - /resource: +############################################################################### +# NSInstances # +############################################################################### + '/ns_instances': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.2 + post: + summary: Create a NS instance resource. + description: > + The POST method creates a new NS instance resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "CreateNsRequest" + properties: + CreateNsRequest: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CreateNsRequest" + description: > + The NS creation parameters, as defined in clause 6.5.2.7. + responses: + 201: + description: > + 201 Created + + A NS Instance identifier was created successfully. + The response body shall contain a representation of + the created NS instance, as defined in clause 6.5.2.8. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the created + NS instance. + schema: + type: "object" + properties: + NsInstance: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Query multiple NS instances. + description: > + Query NS Instances. + + The GET method queries information about multiple NS instances. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the NsInstance and in data types + referenced from it shall be supported in attribute-based filtering parameters" + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + "Include all complex attributes in the response. See clause 4.3.3 for details. + The NFVO shall support this parameter." + - name: "fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be included into the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be excluded from the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + "Indicates to exclude the following complex attributes from the response. + See clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the NsInstance structure in + the response body if this parameter is provided, or none of the parameters + "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + - vnfInstances + - pnfInfo + - virtualLinkInfo + - vnffgInfo + - sapInfo + - nsScaleStatus + - additionalAffinityOrAntiAffinityRules" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + Information about zero or more NS instances was + queried successfully. + The response body shall contain representations of + zero or more NS instances, as defined in + clause 6.5.2.8. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + NsInstance: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual NS instance # +############################################################################### + '/ns_instances/{nsInstanceId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.3 + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance. + in: path + type: string + required: true + get: + summary: Read an individual NS instance resource. + description: > + The GET method retrieves information about a NS instance by + reading an individual NS instance resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Information about an individual NS instance was queried successfully. + The response body shall contain a representation of the NS instance. + schema: + type: "object" + properties: + NsInstance: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + delete: + summary: Delete NS instance resource. + description: > + Delete NS Identifier + + This method deletes an individual NS instance resource. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The NS instance resource and the associated NS + identifier were deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Instantiate NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/instantiate': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.4 + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be instantiated. + in: path + type: string + required: true + post: + summary: Instantiate a NS. + description: > + The POST method requests to instantiate a NS instance resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "InstantiateNsRequest" + properties: + InstantiateNsRequest: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest" + description: > + Parameters for the instantiate NS operation, as defined in clause 6.5.2.10. + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Scale NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/scale': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.5 + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be scaled. + in: path + type: string + required: true + post: + summary: Scale a NS instance. + description: > + The POST method requests to scale a NS instance resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "ScaleNsRequest" + properties: + ScaleNsRequest: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest" + description: > + Parameters for the scale NS operation, as defined in clause 6.5.2.13. + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Update NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/update': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.6 + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be updated. + in: path + type: string + required: true + post: + summary: Updates a NS instance. + description: > + Scale NS instance. + The POST method requests to scale a NS instance resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "UpdateNsRequest" + properties: + UpdateNsRequest: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest" + description: > + Parameters for the update NS operation, as defined in clause 6.5.2.11. + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Heal NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/heal': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.7 + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be healed. + in: path + type: string + required: true + post: + summary: Heal a NS instance. + description: > + The POST method requests to heal a NS instance resource. + This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and + 6.4.7.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "HealNsRequest" + properties: + HealNsRequest: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/HealNsRequest" + description: > + Parameters for the heal NS operation, as defined in clause 6.5.2.12. + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Terminate NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/terminate': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.8 + parameters: + - name: nsInstanceId + description: > + The identifier of the NS instance to be terminated. + in: path + type: string + required: true + post: + summary: Terminate a NS instance. + description: > + Terminate NS task. + The POST method terminates a NS instance. This method can only be + used with a NS instance in the INSTANTIATED + state. Terminating a NS instance does not delete the NS instance identifier, + but rather transitions the NS into the NOT_INSTANTIATED state. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Tables 6.4.8.3.1-1 and 6.8.8.3.1-2. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "TerminateNsRequest" + properties: + TerminateNsRequest: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest" + description: > + The terminate NS request parameters, as defined in clause 6.5.2.14. + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# NS LCM operation occurrences # +############################################################################### + '/ns_lcm_op_occs': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.9 get: + summary: Query multiple NS LCM operation occurrences. + description: > + Get Operation Status. + The client can use this method to query status information about multiple NS lifecycle management operation + occurrences. + This method shall follow the provisions specified in the Tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply an attribute filter. + All attribute names that appear in the NsLcmOpOcc and in data types referenced + from it shall be supported in filtering parameters. + - name: "fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be included into the response. See clause 4.3.3 for details. The + NFVO should support this parameter. + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be excluded from the response. See clause 4.3.3 for details. + The NFVO should support this parameter. + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + Indicates to exclude the following complex attributes from the response. See + clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the NsLcmOpOcc structure in the + response body if this parameter is provided: + - operationParams + - changedVnfInfo + - error + - resourceChanges + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: Success \ No newline at end of file + description: > + 200 OK + + Status information for zero or more NS lifecycle + management operation occurrences was queried successfully. + The response body shall contain representations of + zero or more NS instances, as defined in + clause 5.5.2.13. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + NsLcmOpOcc: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual NS lifecycle operation occurrence # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.10 + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence. + in: path + type: string + required: true + get: + summary: Read an individual NS LCM operation occurrence resource. + description: > + The client can use this method to retrieve status information about + a NS lifecycle management operation occurrence by + reading an individual "NS LCM operation occurrence" resource. + This method shall follow the provisions specified in the + Tables 6.4.10.3.2-1 and 6.4.10.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Information about an individual NS instance was queried successfully. + The response body shall contain status information + about a NS lifecycle management operation + occurrence (see clause 6.5.2.3). + schema: + type: "object" + properties: + NsLcmOpOcc: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Retry operation task # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}/retry': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.11 + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be retried. + + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. + in: path + type: string + required: true + post: + summary: Retry a NS lifecycle management operation occurrence. + description: > + The POST method initiates retrying a NS lifecycle management operation + if that operation has experienced a temporary + failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the + Tables 6.4.11.3.1-1 and 6.4.11.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Rollback a NS lifecycle management operation occurrence. # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}/rollback': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.12 + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be rolled back. + + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + summary: Rollback a NS lifecycle management operation occurrence. + description: > + The POST method initiates rolling back a NS lifecycle operation + if that operation has experienced a temporary failure, + i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the + Tables 6.4.12.3.1-1 and 6.4.12.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Continue a NS lifecycle management operation occurrence. # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}/continue': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.13 + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be continued. + in: path + required: true + type: string + post: + summary: Continue a NS lifecycle management operation occurrence. + description: > + The POST method initiates continuing an NS lifecycle operation if that operation has experienced a temporary failure, + i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the Tables 6.4.13.3.1-1 and 6.4.13.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Fail operation task # +############################################################################### + '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.14 + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be marked as "failed". + + This identifier can be retrieved from the resource referenced by + he "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. + It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + summary: Mark a NS lifecycle management operation occurrence as failed. + description: > + The POST method marks a NS lifecycle management operation + occurrence as "finally failed" if that operation + occurrence is in "FAILED_TEMP" state. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: 200 OK + schema: + type: "object" + description: > + The state of the NS lifecycle management operation + occurrence was changed successfully. + The response shall include a representation of the NS + lifecycle management operation occurrence resource. + properties: + NsLcmOpOcc: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Cancel operation task # +############################################################################### + '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.15 + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be canceled. + + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + summary: Cancel a NS lifecycle management operation occurrence. + description: > + The POST method initiates canceling an ongoing NS lifecycle + management operation while it is being executed or + rolled back, i.e. the related "NS LCM operation occurrence" is + either in "PROCESSING" or "ROLLING_BACK" state. + This method shall follow the provisions specified in the + Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "CancelMode" + properties: + CancelMode: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/CancelMode" + description: > + The POST request to this resource shall include a CancelMode + structure in the payload body to choose between "graceful" and + "forceful" cancellation. + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + description: > + 409 Conflict. + + Error: The operation cannot be executed currently, due + to a conflict with the state of the NS LCM operation + occurrence resource. + Typically, this is due to the fact that the operation + occurrence is not in STARTING, PROCESSING or + ROLLING_BACK state. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.16 + post: + summary: Subscribe to NS lifecycle change notifications. + description: > + The POST method creates a new subscription. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.16.3.1-1 and 6.4.16.3.1-2. + Creation of two subscription resources with the same callbackURI and the same filter can result in performance + degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the + same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide + to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing + the existing subscription resource with the same filter and callbackUri). + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "LccnSubscriptionRequest" + properties: + LccnSubscriptionRequest: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest" + description: > + Details of the subscription to be created, as defined in clause 6.5.2.2. + responses: + 201: + description: > + 201 Created + + The subscription was created successfully. + The response body shall contain a representation of + the created subscription resource. + The HTTP response shall include a "Location:" + HTTP header that points to the created subscription resource. + schema: + type: "object" + properties: + LccnSubscription: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 303: + description: > + See Other. + + A subscription with the same callbackURI and the + same filter already exits and the policy of the NFVO + is to not create redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of the + existing subscription resource. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Query multiple subscriptions. + description: > + Query Subscription Information. + + The GET method queries the list of active subscriptions of the + functional block that invokes the method. It can be used e.g. for + resynchronization after error situations. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + The list of subscriptions was queried successfully. + The response body shall contain the representations of + all active subscriptions of the functional block that + invokes the method. + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + + schema: + type: array + items: + properties: + LccnSubscription: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 400: + description: > + Bad Request. + + Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.17 + parameters: + - name: subscriptionId + description: > + Identifier of this subscription. + in: path + type: string + required: true + get: + summary: Read an individual subscription resource. + description: > + The GET method retrieves information about a subscription by reading an individual subscription resource. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.17.3.2-1 and 6.4.17.3.2-2 + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + The operation has completed successfully. + The response body shall contain a representation of + the subscription resource. + schema: + type: "object" + properties: + LccnSubscription: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Terminate a subscription. + description: > + The DELETE method terminates an individual subscription. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.17.3.5-1 and 6.4.17.3.5-2. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The subscription resource was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +################################################################################## +# Notification endpoint # +# Dummy URI is used for testing. # +# In real, resource URI is provided by the client when creating the subscription.# +################################################################################## + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.18 + post: + summary: Notify about NS lifecycle change + description: > + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + + parameters: + - name: NsLcmOperationOccurrenceNotification + description: > + A notification about lifecycle changes triggered by a NS LCM. + operation occurrence. + in: body + required: true + schema: + properties: + NsLcmOperationOccurrenceNotification: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOperationOccurrenceNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.18 + post: + summary: Notify about NS lifecycle change + description: > + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + + parameters: + - name: NsIdentifierCreationNotification + description: > + A notification about the creation of a NS identifier and the related + NS instance resource. + in: body + required: true + schema: + properties: + NsIdentifierCreationNotification: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierCreationNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.18 + post: + summary: Notify about NS lifecycle change + description: > + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + + parameters: + - name: NsIdentifierDeletionNotification + description: > + A notification about the deletion of a NS identifier and the related + NS instance resource. + in: body + required: true + schema: + properties: + NsIdentifierDeletionNotification: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierDeletionNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + get: + summary: Test the notification endpoint. + description: > + Query NS Instances. + + The GET method queries information about multiple NS instances. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The notification endpoint was tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..633135a4549193957e4cce3e7472eccc7aa8d395 --- /dev/null +++ b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml @@ -0,0 +1,394 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt +definitions: + HealNsRequest: + description: > + This operation supports the healing of an NS instance, + either by healing the complete NS instance or by healing one of + more of the VNF instances that are part of this NS. + It shall comply with the provisions defined in Table 6.5.2.13-1. + type: object + properties: + healNsData: + description: > + Indicates the reason why a healing procedure is required. + $ref: "#/definitions/HealNsData" + healVnfData: + description: > + Additional parameters passed by the NFVO as input to the healing + process, specific to the VNF being healed, as declared in the VNFD + as part of "HealVnfOpConfig". + type: array + items: + $ref: "#/definitions/HealVnfData" + + NsLcmOpOcc: + description: > + This type represents a request a NS lifecycle operation occurrence. + It shall comply with the provisions defined in Table 6.5.2.3-1. + type: object + required: + - id + - operationState + - stateEnteredTime + - nsInstanceId + - lcmOperationType + - startTime + - isAutomaticInvocation + - operationParams + - isCancelPending + - _links + properties: + id: + description: > + Identifier of this NS lifecycle operation occurrence. + $ref: "SOL005_def.yaml#/definitions/Identifier" + operationState: + description: > + The state of the NS LCM operation. + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOperationStateType" + stateEnteredTime: + description: > + Date-time when the current state was entered. + type: string + format: date-time + nsInstanceId: + description: > + Identifier of the NS instance to which the operation applies. + $ref: "SOL005_def.yaml#/definitions/Identifier" + lcmOperationType: + description: > + Type of the actual LCM operation represented by this + lcm operation occurrence. + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpType" + startTime: + description: > + Date-time of the start of the operation. + type: string + format: date-time + isAutomaticInvocation: + description: > + Set to true if this NS LCM operation occurrence has + been automatically triggered by the NFVO. This occurs + in the case of auto-scaling, auto-healing and when a + nested NS is modified as a result of an operation on its + composite NS. Set to false otherwise. + type: boolean + operationParams: + description: > + Input parameters of the LCM operation. This attribute + shall be formatted according to the request data type of + the related LCM operation. + The following mapping between lcmOperationType and + the data type of this attribute shall apply: + - INSTANTIATE: InstantiateNsRequest + - SCALE: ScaleNsRequest + - UPDATE: UpdateNsRequest + - HEAL: HealNsRequest + - TERMINATE: TerminateNsRequest + type: string + enum: + - INSTANTIATE + - SCALE + - UPDATE + - HEAL + - TERMINATE + isCancelPending: + description: > + If the LCM operation occurrence is in "PROCESSING" + or "ROLLING_BACK" state and the operation is being + cancelled, this attribute shall be set to true. Otherwise, it + shall be set to false. + type: boolean + cancelMode: + description: > + The mode of an ongoing cancellation. Shall be present + when isCancelPending=true, and shall be absent otherwise. + $ref: "#/definitions/CancelModeType" + error: + description: > + If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState" + is "PROCESSING" or "ROLLING_BACK" and previous value of + "operationState" was "FAILED_TEMP", this attribute shall be present + and contain error information, unless it has been requested to be + excluded via an attribute selector. + $ref: "#/definitions/ProblemDetails" + resourceChanges: + description: > + This attribute contains information about the cumulative + changes to virtualised resources that were performed so + far by the LCM operation since its start, if applicable + type: object + properties: + affectedVnfs: + description: > + Information about the VNF instances that were affected + during the lifecycle operation, if this notification + represents the result of a lifecycle operation. + type: array + items: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf" + affectedPnfs: + description: > + Information about the PNF instances that were affected + during the lifecycle operation, if this notification + represents the result of a lifecycle operation. + type: array + items: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedPnf" + affectedVls: + description: > + Information about the VL instances that were affected + during the lifecycle operation, if this notification + represents the result of a lifecycle operation. + type: array + items: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVl" + affectedVnffgs: + description: > + Information about the VNFFG instances that were + affected during the lifecycle operation, if this notification + represents the result of a lifecycle operation. See note + type: array + items: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnffg" + affectedNss: + description: > + Information about the nested NS instances that were + affected during the lifecycle operation, if this notification + represents the result of a lifecycle operation. See note. + type: array + items: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedNs" + affectedSaps: + description: > + Information about the nested NS instances that were + affected during the lifecycle operation, if this notification + represents the result of a lifecycle operation. See note. + type: array + items: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedSap" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + - nsInstance + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + nsInstance: + description: > + Link to the NS instance that the operation applies to. + $ref: "SOL005_def.yaml#/definitions/Link" + cancel: + description: > + Link to the task resource that represents the "cancel" + operation for this LCM operation occurrence, if + cancelling is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + retry: + description: > + Link to the task resource that represents the "cancel" + operation for this LCM operation occurrence, + if cancelling is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + rollback: + description: > + Link to the task resource that represents the "rollback" + operation for this LCM operation occurrence, if rolling + back is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + continue: + description: > + Link to the task resource that represents the "continue" + operation for this LCM operation occurrence, if rolling + back is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + fail: + description: > + Link to the task resource that represents the "fail" + operation for this LCM operation occurrence, if rolling + back is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + CancelMode: + description: > + This type represents a parameter to select the mode of canceling an ongoing NS LCM operation occurrence. + It shall comply with the provisions defined in Table 6.5.2.16-1.. + type: object + required: + - cancelMode + properties: + cancelMode: + description: > + Cancellation mode to apply. + $ref: "#/definitions/CancelModeType" + + CancelModeType: + description: > + Cancellation mode. + + The NFVO shall not start any new VNF lifecycle management and resource + management operation, and shall wait for the ongoing VNF lifecycle management + and resource management operations in the underlying system, typically the VNFM + and VIM, to finish execution or to time out. After that, the NFVO shall put the + operation occurrence into the FAILED_TEMP state. + + The NFVO shall not start any new VNF lifecycle management and resource + management operation, shall cancel the ongoing VNF lifecycle management and + resource management operations in the underlying system, typically the VNFM and + VIM, and shall wait for the cancellation to finish or to time out. After that, the NFVO + shall put the operation occurrence into the FAILED_TEMP state. + type: string + enum: + - GRACEFUL + - FORCEFUL + + HealNsData: + description: > + This type represents the information used to heal a NS. + It shall comply with the provisions defined in Table 6.5.3.43-1. + type: object + required: + - degreeHealing + properties: + degreeHealing: + description: > + Indicates the degree of healing. Possible values + include: + - HEAL_RESTORE: Complete the healing of + the NS restoring the state of the NS before + the failure occurred + - HEAL_QOS: Complete the healing of the NS + based on the newest QoS values + - HEAL_RESET: Complete the healing of the + NS resetting to the original instantiation state of the NS + - PARTIAL_HEALING + type: string + enum: + - HEAL_RESTORE + - HEAL_QOS + - HEAL_RESET + - PARTIAL_HEALING + actionsHealing: + description: > + Used to specify dedicated healing actions in a + particular order (e.g. as a script). The actionsHealing + attribute can be used to provide a specific script whose + content and actions might only be possible to be + derived during runtime. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + healScript: + description: > + Reference to a script from the NSD that shall be used + to execute dedicated healing actions in a particular + order. The healScript, since it refers to a script in the + NSD, can be used to execute healing actions which + are defined during NS design time. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + additionalParamsforNs: + description: > + Allows the OSS/BSS to provide additional + parameter(s) to the healing process at the NS level. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + HealVnfData: + description: > + This type represents the information to heal a VNF that is part of an NS. + The NFVO shall then invoke the HealVNF + operation towards the appropriate VNFM. + It shall comply with the provisions defined in Table 6.5.3.44-1. + type: object + required: + - vnfInstanceId + properties: + vnfInstanceId: + description: > + Identifies the VNF instance, part of the NS, requiring a + healing action. + $ref: "SOL005_def.yaml#/definitions/Identifier" + 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. + EXAMPLE: Input parameters to VNF-specific healing procedures. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + TerminateNsRequest: + description: > + This type represents a NS termination request. + It shall comply with the provisions defined in Table 6.5.2.15-1. + 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 + $ref: "SOL005_def.yaml#/definitions/DateTime" + + ProblemDetails: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2c2aea5c38a3969b69e31e40b7b304eb0b4181e4 --- /dev/null +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -0,0 +1,3406 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt +definitions: + CreateNsRequest: + type: object + required: + - nsdId + - nsName + - nsDescription + properties: + nsdId: + description: > + Identifier of the NSD that defines the NS instance to be + created. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsName: + description: > + Human-readable name of the NS instance to be created. + type: string + nsDescription: + description: > + Human-readable description of the NS instance to be created. + type: string + + NsInstance: + description: > + This type represents a response for Query NS operation. + It shall comply with the provisions defined in Table 6.5.2.10-1. + type: object + required: + - id + - nsInstanceName + - nsInstanceDescription + - nsdId + - nsdInfoId + - nsState + properties: + id: + description: > + Identifier of the NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsInstanceName: + description: > + Human readable name of the NS instance. + type: string + nsInstanceDescription: + description: > + Human readable description of the NS instance. + type: string + nsdId: + description: > + Identifier of the NSD on which the NS instance is based. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdInfoId: + description: > + Identifier of the NSD information object on which the + NS instance is based. This identifier was allocated by the NFVO. + $ref: "SOL005_def.yaml#/definitions/Identifier" + flavourId: + description: > + Identifier of the NS deployment flavor applied to + the NS instance. This attribute shall be present if the nsState attribute + value is INSTANTIATED. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + vnfInstance: + description: > + Information on constituent VNF(s) of the NS instance. + type: array + items: + $ref: "#/definitions/VnfInstance" + pnfInfo: + description: > + Information on the PNF(s) that are part of the NS instance. + type: array + items: + $ref: "#/definitions/PnfInfo" + virtualLinkInfo: + description: > + Information on the VL(s) of the NS instance. + This attribute shall be present if the nsState attribute + value is INSTANTIATED and if the NS instance has + specified connectivity. + type: array + items: + $ref: "#/definitions/NsVirtualLinkInfo" + vnffgInfo: + description: > + Information on the VNFFG(s) of the NS instance. + type: array + items: + $ref: "#/definitions/VnffgInfo" + sapInfo: + description: > + Information on the SAP(s) of the NS instance. + type: array + items: + $ref: "#/definitions/SapInfo" + nestedNsInstanceId: + description: > + Identifier of the nested NS(s) of the NS instance. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsState: + description: > + The state of the NS instance. + Permitted values: + NOT_INSTANTIATED: The NS instance is + terminated or not instantiated. + INSTANTIATED: The NS instance is instantiated. + type: string + enum: + - NOT_INSTANTIATED + - INSTANTIATED + nsScaleStatus: + description: > + Status of each NS scaling aspect declared in the + applicable DF, how "big" the NS instance has been + scaled w.r.t. that aspect. + This attribute shall be present if the nsState attribute + value is INSTANTIATED. + type: array + items: + $ref: "#/definitions/NsScaleInfo" + additionalAffinityOrAntiAffinityRule: + description: > + Information on the additional affinity or anti-affinity + rule from NS instantiation operation. Shall not + conflict with rules already specified in the NSD. + type: array + items: + $ref: "#/definitions/AffinityOrAntiAffinityRule" + _links: + type: object + description: Links to resources related to this resource. + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + nestedNsInstances: + description: > + Links to resources related to this notification. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Link" + instantiate: + description: > + Link to the "instantiate" task resource, if the related + operation is possible based on the current status of + this NS instance resource (i.e. NS instance in + NOT_INSTANTIATED state). + $ref: "SOL005_def.yaml#/definitions/Link" + terminate: + description: > + Link to the "terminate" task resource, if the related + operation is possible based on the current status of + this NS instance resource (i.e. NS instance is in + INSTANTIATED state). + $ref: "SOL005_def.yaml#/definitions/Link" + update: + description: > + Link to the "update" task resource, if the related + operation is possible based on the current status of + this NS instance resource (i.e. NS instance is in + INSTANTIATED state). + $ref: "SOL005_def.yaml#/definitions/Link" + scale: + description: > + Link to the "scale" task resource, if the related + operation is supported for this NS instance, and is + possible based on the current status of this NS + instance resource (i.e. NS instance is in + INSTANTIATED state). + $ref: "SOL005_def.yaml#/definitions/Link" + heal: + description: > + Link to the "heal" task resource, if the related + operation is supported for this NS instance, and is + possible based on the current status of this NS + instance resource (i.e. NS instance is in + INSTANTIATED state). + $ref: "SOL005_def.yaml#/definitions/Link" + + VnfInstance: + description: > + This type represents a VNF instance. + type: object + required: + - id + - vnfdId + - vnfProvider + - vnfProductName + - vnfSoftwareVersion + - vnfdVersion + - vnfPkgId + - instantiationState + properties: + id: + description: > + Identifier of the VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfInstanceName: + description: > + Name of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfInstanceDescription: + description: > + Human-readable description of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfdId: + description: > + Identifier of the VNFD on which the VNF instance is based. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + Provider of the VNF and the VNFD. The value is copied from the VNFD. + type: string + vnfProductName: + description: > + Name to identify the VNF Product. The value is copied from the VNFD. + type: string + vnfSoftwareVersion: + description: > + Software version of the VNF. The value is copied from the VNFD. + $ref: "#/definitions/Version" + vnfdVersion: + description: > + Identifies the version of the VNFD. The value is copied from the VNFD. + $ref: "#/definitions/Version" + vnfPkgId: + description: > + Identifier of information held by the NFVO about + the specific VNF package on which the VNF is + based. This identifier was allocated by the NFVO. + This attribute can be modified with the PATCH + method. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Current values of the configurable properties of the VNF instance. + Configurable properties referred in this attribute are declared in + the VNFD. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD + based on TOSCA specifications. + VNF configurable properties are sometimes also referred to as + configuration parameters applicable to a VNF. Some of these are set + prior to instantiation and cannot be modified if the VNF is + instantiated, some are set prior to instantiation (are part of + initial configuration) and can be modified later, and others can be + set only after instantiation. The applicability of certain + configuration may depend on the VNF and the required operation of + the VNF at a certain point in time. + These configurable properties include the following standard + attributes, which are declared in the VNFD if auto-scaling and/or + auto-healing are supported by the VNF: + * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If + set to true, auto-scaling is currently enabled. If set to false, + auto-scaling is currently disabled. + * isAutohealEnabled: If present, the VNF supports auto-healing. If + set to true, auto-healing is currently enabled. If set to false, + auto-healing is currently disabled. + This attribute can be modified with the PATCH method. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + vimId: + description: > + Identifier of a VIM that manages resources for the VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + instantiationState: + description: > + The instantiation state of the VNF. + type: string + enum: + - NOT_INSTANTIATED + - INSTANTIATED + instantiatedVnfInfo: + description: > + Information specific to an instantiated VNF instance. This attribute + shall be present if the instantiateState attribute value is INSTANTIATED. + type: object + required: + - flavourId + - vnfState + properties: + flavourId: + description: > + Identifier of the VNF deployment flavor applied to this VNF instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfState: + description: > + The state of the VNF instance. + $ref: "#/definitions/VnfOperationalStateType" + scaleStatus: + description: > + Scale status of the VNF, one entry per aspect. Represents for every + scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + type: array + items: + $ref: "#/definitions/VnfScaleInfo" + extCpInfo: + description: > + Information about the external CPs exposed by the VNF instance. + type: array + minItems: 1 + items: + type: object + required: + - id + - cpdId + properties: + id: + description: > + Identifier of the external CP instance and the related information instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the external CPD, VnfExtCpd, in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + cpProtocolInfo: + description: > + Network protocol information for this CP. + type: array + items: + $ref: "#/definitions/CpProtocolInfo" + extLinkPortId: + description: > + Identifier of the "extLinkPortInfo" structure inside the the + "extVirtualLinkInfo" structure. Shall be present if the CP is + associated to a link port. + $ref: "SOL005_def.yaml#/definitions/Identifier" + + extVirtualLinkInfo: + description: > + Information about the external VLs the VNF instance is connected to. + type: array + items: + $ref: "#/definitions/ExtVirtualLinkInfo" + extManagedVirtualLinkInfo: + description: > + External virtual links the VNF instance is connected to. + type: array + items: + $ref: "#/definitions/ExtManagedVirtualLinkInfo" + monitoringParameters: + description: > + Active monitoring parameters. + type: array + items: + $ref: "#/definitions/MonitoringParameter" + localizationLanguage: + description: > + Information about localization language of the VNF (includes e.g. + strings in the VNFD). The localization languages supported by a VNF + can be declared in the VNFD, and localization language selection can + take place at instantiation time. + The value shall comply with the format defined in IETF RFC 5646. + type: string + vnfcResourceInfo: + description: > + Information about the virtualised compute and storage resources used + by the VNFCs of the VNF instance. + type: array + items: + $ref: "#/definitions/VnfcResourceInfo" + virtualLinkResourceInfo: + description: > + Information about the virtualised network resources used by the VLs + of the VNF instance. + type: array + items: + $ref: "#/definitions/VnfVirtualLinkResourceInfo" + virtualStorageResourceInfo: + description: > + Information on the virtualised storage resource(s) used as storage for the VNF instance. + type: array + items: + $ref: "#/definitions/VirtualStorageResourceInfo" + metadata: + description: > + Additional VNF-specific metadata describing the VNF instance. + Metadata that are writeable are declared in the VNFD. + This attribute can be modified with the PATCH method. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + VNF-specific attributes that affect the lifecycle management of this + VNF instance by the VNFM, or the lifecycle management scripts. + Extensions that are writeable are declared in the VNFD. + This attribute can be modified with the PATCH method. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + LccnLinks: + description: > + This type represents the links to resources that a notification can contain. + type: object + required: + - nsInstance + properties: + nsInstance: + description: > + Link to the resource representing the NS instance to + which the notified change applies.. + $ref: "SOL005_def.yaml#/definitions/Link" + subscription: + description: > + Link to the subscription that triggered this notification. + $ref: "SOL005_def.yaml#/definitions/Link" + lcOpOcc: + description: > + Link to the lifecycle operation occurrence that this + notification is related to. Shall be present if there is a + related lifecycle operation occurrence + $ref: "SOL005_def.yaml#/definitions/Link" + + Version: + description: > + A Version. + type: string + + VnfOperationalStateType: + type: string + enum: + - STARTED + - STOPPED + + VnfScaleInfo: + required: + - aspectId + - scaleLevel + type: object + properties: + aspectId: + description: > + Identifier of the scaling aspect. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + scaleLevel: + description: > + Indicates the scale level. The minimum value shall be 0 and the + maximum value shall be <= maxScaleLevel as described in the VNFD. + type: integer + + PnfInfo: + description: > + This type represents the information about a PNF that is part of an NS instance. + It shall comply with the provisions + defined in Table 6.5.3.13-1. + type: object + required: + - pnfId + - pnfdId + - pnfdInfoId + - pnfProfileId + properties: + pnfId: + description: > + Identifier of the PNF. This identifier is allocated by the OSS/BSS. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfName: + description: > + Name of the PNF. + type: string + pnfdId: + description: > + Identifier of the PNFD on which the PNF is based. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdInfoId: + description: > + Identifier of the PNFD information onject related to this + PNF. This identifier is allocated by the NFVO + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfProfileId: + description: > + Identifier of the related PnfProfile in the NSD on which + the PNF is based. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + cpInfo: + description: > + Information on the external CP of the PNF. + $ref: "#/definitions/PnfExtCpInfo" + + PnfExtCpInfo: + description: > + This type represents the information about the external CP of the PNF. + It shall comply with the provisions defined in + Table 6.5.3.17-1. + type: object + required: + - cpInstanceId + - cpdId + properties: + cpInstanceId: + description: > + Identifier of the CP in the scope of the PNF. + $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" + cpdId: + description: > + Identifier of (reference to) the Connection Point + Descriptor (CPD) for this CP. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + cpProtocolData: + description: > + Parameters for configuring the network protocols on the CP. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/CpProtocolData" + + NsVirtualLinkInfo: + description: > + This type specifies the information about an NS VL instance. + It shall comply with the provisions defined in + Table 6.5.3.53-1 + type: object + required: + - id + - nsVirtualLinkDescId + properties: + id: + description: > + Identifier of the VL instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + nsVirtualLinkDescId: + description: > + Identifier of the VLD in the NSD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + resourceHandle: + description: > + Identifier(s) of the virtualised network resource(s) + realizing the VL instance. See note. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + linkPort: + description: > + Link ports of the VL instance. + Cardinality of zero indicates that no port has yet been + created for the VL instance. + type: array + items: + $ref: "#/definitions/NsLinkPortInfo" + + VnffgInfo: + description: > + Information on the VNFFG(s) of the NS instance. + type: object + required: + - id + - vnffgdId + - vnfInstanceId + - pnfInfoId + properties: + id: + description: > + Identifier of this VNFFG instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnffgdId: + description: > + Identifier of the VNFFGD in the NSD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + vnfInstanceId: + description: > + Identifier(s) of the constituent VNF instance(s) of this VNFFG instance. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdInfoId: + description: > + Identifier(s) of the constituent PNF instance(s) of this + VNFFG instance. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsVirtualLinkInfoId: + description: > + Identifier(s) of the constituent VL instance(s) of this + VNFFG instance. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + nsCpHandle: + description: > + Identifiers of the CP instances attached to the + constituent VNFs and PNFs or the SAP instances of the + VNFFG. See note. + type: array + items: + $ref: "#/definitions/NsCpHandle" + + NsCpHandle: + description: > + This type represents an identifier of the CP or SAP instance. + It shall comply with the provisions defined in + Table 6.5.3.56-1. + type: object + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance associated to the CP instance. + This attribute shall be present if the CP instance is VNF external CP. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfExtCpInstanceId: + description: > + Identifier of the VNF external CP instance in the scope + of the VNF instance. This attribute shall be present if the CP instance is VNF + external CP. See notes 1 and 4. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + pnfInfoId: + description: > + Identifier of the PNF instance associated to the CP + instance. This attribute shall be present if the CP instance is PNF + external CP. See notes 2 and 4. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfExtCpInstanceId: + description: > + Identifier of the PNF external CP instance in the scope + of the PNF. This attribute shall be present if the CP instance is PNF + external CP. See notes 2 and 4. + $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" + nsInstanceId: + description: > + Identifier of the NS instance associated to the SAP + instance. This attribute shall be present if the CP instance is NS + SAP. See notes 3 and 4. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsSapInstanceId: + description: > + Identifier of the SAP instance in the scope of the NS + instance. This attribute shall be present if the CP instance is NS + SAP. See notes 3 and 4. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + + SapInfo: + description: > + This type represents an SAP instance. It shall comply with the provisions defined in Table 6.5.3.67-1. + type: object + required: + - id + - sapdId + - sapName + - sapProtocolInfo + properties: + id: + description: > + Identifier of the SAP instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + sapdId: + description: > + Identifier of the SAPD in the NSD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + sapName: + description: > + Human readable name for the SAP instance. + type: string + description: + description: > + Human readable description for the SAP instance. + type: string + sapProtocolInfo: + description: > + Network protocol information for this SAP. + type: array + items: + $ref: "#/definitions/CpProtocolInfo" + + CpProtocolInfo: + description: > + This type describes the protocol layer(s) that a CP or SAP uses together with protocol-related information, like + addresses. It shall comply with the provisions defined in Table 6.5.3.58-1. + type: object + required: + - layerProtocol + - ipOverEthernet + properties: + layerProtocol: + description: > + The identifier of layer(s) and protocol(s) + associated to the network address information. + Permitted values: IP_OVER_ETHERNET See note. + type: string + enum: + - IP_OVER_ETHERNET + ipOverEthernet: + description: > + IP addresses over Ethernet to assign to the CP + or SAP instance. Shall be present if + layerProtocol is equal to " + IP_OVER_ETHERNET", and shall be absent otherwise. + $ref: "#/definitions/IpOverEthernetAddressInfo" + + IpOverEthernetAddressInfo: + description: > + This type represents information about a network address that has been assigned. + It shall comply with the provisions defined in Table 6.5.3.18-1. + type: object + required: + - macAddress + - ipAddresses + - subnetId + - addresses + - addressRange + properties: + macAddress: + description: > + Assigned MAC address. + $ref: "SOL005_def.yaml#/definitions/MacAddress" + ipAddresses: + description: > + Addresses assigned to the CP instance. Each entry represents IP + addresses assigned by fixed or dynamic IP address assignment per + subnet. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + addresses: + description: > + Fixed addresses assigned (from the subnet defined by + "subnetId" if provided). + type: array + items: + $ref: "SOL005_def.yaml#/definitions/IpAddress" + isDynamic: + description: > + Indicates whether this set of addresses was assigned + dynamically (true) or based on address information provided as + input from the API consumer (false). Shall be present if + "addresses" is present and shall be absent otherwise. + type: boolean + addressRange: + description: > + An IP address range used, e.g., in case of egress connections. + Exactly one of "addresses" or "addressRange" shall be present. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "SOL005_def.yaml#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range + $ref: "SOL005_def.yaml#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in + the VIM. + In case this attribute is present, IP addresses are bound + to that subnet. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVim" + + + type: + description: > + The type of the IP addresses + type: string + enum: + - PV4 + - PV6 + addresses: + description: > + Fixed addresses assigned (from the subnet + defined by "subnetId" if provided). See note. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/IpAddress" + isDynamic: + description: > + Indicates whether this set of addresses was + assigned dynamically (true) or based on address + information provided as input from the API + consumer (false). Shall be present if "addresses" + is present and shall be absent otherwise. + type: boolean + addressRange: + description: > + An IP address range used, e.g. in case of egress + connections. See note. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "SOL005_def.yaml#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range + $ref: "SOL005_def.yaml#/definitions/IpAddress" + minAddress: + description: > + Lowest IP address belonging to the range + $ref: "SOL005_def.yaml#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range. + $ref: "SOL005_def.yaml#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet + resource in the VIM. + In case this attribute is present, IP addresses + are bound to that subnet. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVim" + + ExtVirtualLinkInfo: + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + Identifier of the external VL and the related external VL + information instance. + The identifier is assigned by the NFV-MANO entity that manages this + VL instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + resourceHandle: + description: > + Reference to the resource realizing this VL. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + extLinkPorts: + description: > + Link ports of this VL. + type: array + items: + $ref: "#/definitions/ExtLinkPortInfo" + + ExtLinkPortInfo: + description: > + This type represents information about a link port of an external VL, + i.e. a port providing connectivity for the VNF to an NS VL. + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + Identifier of this link port as provided by the entity that has + created the link port. + $ref: "SOL005_def.yaml#/definitions/Identifier" + resourceHandle: + description: > + Reference to the virtualised resource realizing this link port. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + cpInstanceId: + description: > + Identifier of the external CP of the VNF connected to this link + port. There shall be at most one link port associated with any + external connection point instance. The value refers to an + "extCpInfo" item in the VnfInstance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + + ExtManagedVirtualLinkInfo: + type: object + required: + - id + - vnfVirtualLinkDescId + properties: + id: + description: > + Identifier of the externally-managed internal VL and the related + externally-managed VL information instance. + The identifier is assigned by the NFV-MANO entity that manages this + VL instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfVirtualLinkDescId: + description: > + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + networkResource: + description: > + Reference to the VirtualNetwork resource. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + vnfLinkPorts: + description: > + Link ports of this VL. + type: array + items: + $ref: "#/definitions/VnfLinkPortInfo" + + VnfLinkPortInfo: + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + Identifier of this link port as provided by the entity that has created the link port. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: + description: > + Reference to the virtualised network resource realizing this link port. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + cpInstanceId: + description: > + When the link port is used for external connectivity by the VNF, + this attribute represents the identifier of the external CP of the + VNF to be connected to this link port. + When the link port is used for internal connectivity in the VNF, + this attribute represents the VNFC CP to be connected to this link + port. + Shall be present when the link port is used for external + connectivity by the VNF. + may be present if used to reference a VNFC CP instance. + There shall be at most one link port associated with any external + connection point instance or internal connection point + (i.e. VNFC CP) instance. + The value refers to an "extCpInfo" item in the VnfInstance or a + "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + + MonitoringParameter: + type: object + required: + - id + - value + - timeStamp + properties: + id: + description: > + Identifier of the monitoring parameter defined in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + name: + description: > + Human readable name of the monitoring parameter, as defined in the VNFD. + type: string + value: + description: > + Value of the monitoring parameter known to the VNFM (e.g. obtained + for auto-scaling purposes). + The type of the "value" attribute (i.e. scalar, structure (Object in + JSON), or array (of scalars, arrays or structures/Objects)) is + assumed to be defined in an external measurement specification. + type: object + timeStamp: + description: > + Represents the point in time when the measurement has been performed, + as known to the VNFM. + Should be formatted according to ETF RFC 3339. + type: string + + VnfcResourceInfo: + description: > + This type represents the information on virtualised compute and storage + resources used by a VNFC in a VNF instance. + type: object + required: + - id + - vduId + - computeResource + properties: + id: + description: > + Identifier of this VnfcResourceInfo instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Reference to the applicable VDU in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + computeResource: + description: > + Reference to the VirtualCompute resource. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + storageResourceIds: + description: > + References to the VirtualStorage resources. The value refers to a + VirtualStorageResourceInfo item in the VnfInstance. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfcCpInfo: + description: > + CPs of the VNFC instance. + Shall be present when that particular CP of the VNFC instance is + associated to an external CP of the VNF instance. + May be present otherwise. + type: array + items: + type: object + required: + - id + - cpdId + properties: + id: + description: > + Identifier of this VNFC CP instance and the associated array + entry. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the VDU CPD, cpdId, in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfExtCpId: + description: > + When the VNFC CP is exposed as external CP of the VNF, the + identifier of this external VNF CP. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + cpProtocolInfo: + description: > + Network protocol information for this CP. + type: array + items: + $ref: "#/definitions/CpProtocolInfo" + vnfLinkPortId: + description: > + Identifier of the "vnfLinkPorts" structure in the + "vnfVirtualLinkResourceInfo" structure. Shall be present if + the CP is associated to a link port. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + metadata: + description: > + Metadata about this resource. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + VnfVirtualLinkResourceInfo: + description: > + This type represents the information that allows addressing a virtualised + resource that is used by an internal VL instance in a VNF instance. + type: object + required: + - id + - vnfVirtualLinkDescId + - networkResource + properties: + id: + description: > + Identifier of this VnfVirtualLinkResourceInfo instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + vnfVirtualLinkDescId: + description: > + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + networkResource: + description: > + Reference to the VirtualNetwork resource. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfLinkPorts: + description: > + Links ports of this VL. + Shall be present when the linkPort is used for external connectivity + by the VNF (refer to VnfLinkPortInfo). + May be present otherwise. + type: array + items: + $ref: "#/definitions/VnfLinkPortInfo" + metadata: + description: > + Metadata about this resource. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + VirtualStorageResourceInfo: + description: > + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. + type: object + required: + - id + - virtualStorageDescId + - storageResource + properties: + id: + description: > + Identifier of this VirtualStorageResourceInfo instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + virtualStorageDescId: + description: > + Identifier of the VirtualStorageDesc in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + storageResource: + description: > + Reference to the VirtualStorage resource. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL005_def.yaml#/definitions/Identifier" + metadata: + description: > + Metadata about this resource. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + NsLinkPortInfo: + description: > + This type represents information about a link port of a VL instance. + It shall comply with the provisions defined in Table 6.5.3.55-1. + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + Identifier of this link port as provided by the entity that + has created the link port. + $ref: "SOL005_def.yaml#/definitions/Identifier" + resourceHandle: + description: > + Identifier of the virtualised network resource realizing + this link port. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + nsCpHandle: + description: > + Identifier of the CP/SAP instance to be connected to this + link port. The value refers to a vnfExtCpInfo item in the + VnfInstance, or a pnfExtCpInfo item in the PnfInfo, or a + sapInfo item in the NS instance. + There shall be at most one link port associated with any + connection point instance. + type: array + items: + $ref: "#/definitions/NsCpHandle" + + AffinityOrAntiAffinityRule: + description: > + This type describes the additional affinity or anti-affinity rule + applicable between the VNF instances to be instantiated + in the NS instantiation operation request or between the VNF instances + to be instantiated in the NS instantiation + operation request and the existing VNF instances.. + type: object + required: + - affinityOrAntiAffiinty + - scope + properties: + vnfdId: + description: > + Reference to a VNFD. + When the VNFD which is not used to instantiate VNF, it + presents all VNF instances of this type as the subjects + of the affinity or anti-affinity rule. The VNF instance + which the VNFD presents is not necessary as a part of + the NS to be instantiated. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfProfileId: + description: > + Reference to a vnfProfile defined in the NSD. + At least one VnfProfile which is used to instantiate VNF + for the NS to be instantiated as the subject of the affinity + or anti-affinity rule shall be present. When the VnfProfile + which is not used to instantiate VNF, it presents all VNF + instances of this type as the subjects of the affinity or + anti-affinity rule. The VNF instance which the VnfProfile + presents is not necessary as a part of the NS to be instantiated. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + vnfInstanceId: + description: > + Reference to the existing VNF instance as the subject of + the affinity or anti-affinity rule. The existing VNF instance + is not necessary as a part of the NS to be instantiated. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + affinityOrAntiAffiinty: + description: > + The type of the constraint. + Permitted values: + AFFINITY + ANTI_AFFINITY. + type: string + enum: + - AFFINITY + - ANTI_AFFINITY + scope: + description: > + Specifies the scope of the rule where the placement + constraint applies. + Permitted values: + NFVI_POP + ZONE + ZONE_GROUP + NFVI_NODE. + type: string + enum: + - NFVI_POP + - ZONE + - ZONE_GROUP + - NFVI_NODE + + InstantiateNsRequest: + type: object + required: + - nsFlavourId + properties: + nsFlavourId: + description: > + Identifier of the NS deployment flavor to be instantiated. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + sapData: + description: > + Create data concerning the SAPs of this NS. + type: array + items: + $ref: "#/definitions/SapData" + addpnfData: + description: > + Information on the PNF(s) that are part of this NS. + type: array + items: + $ref: "#/definitions/AddPnfData" + vnfInstanceData: + description: > + Specify an existing VNF instance to be used in the NS. + If needed, the VNF Profile to be used for this VNF + instance is also provided. + type: array + items: + $ref: "#/definitions/VnfInstanceData" + nestedNsInstanceId: + description: > + Specify an existing NS instance to be used as a nested + NS within the NS. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + localizationLanguage: + description: > + Defines the location constraints for the VNF to be + instantiated as part of the NS instantiation. + An example can be a constraint for the VNF to be in a + specific geographic location.. + type: array + items: + $ref: "#/definitions/VnfLocationConstraint" + additionalParamsForNs: + description: > + Allows the OSS/BSS to provide additional parameter(s) + at the NS level (as opposed to the VNF level, which is + covered in additionalParamsForVnf).. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + additionalParamsForVnf: + description: > + Allows the OSS/BSS to provide additional parameter(s) + per VNF instance (as opposed to the NS level, which is + covered in additionalParamsForNs). This is for VNFs + that are to be created by the NFVO as part of the NS + instantiation and not for existing VNF that are + referenced for reuse.. + type: array + items: + $ref: "#/definitions/ParamsForVnf" + startTime: + description: > + Timestamp indicating the earliest time to instantiate the NS. + Cardinality "0" indicates the NS instantiation takes place immediately. + $ref: "SOL005_def.yaml#/definitions/DateTime" + nsInstantiationLevelId: + description: > + Identifies one of the NS instantiation levels declared in + the DF applicable to this NS instance. If not present, the + default NS instantiation level as declared in the NSD + shall be used. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + additionalAffinityOrAntiAffiniityRule: + description: > + Specifies additional affinity or anti-affinity constraint for + the VNF instances to be instantiated as part of the NS + instantiation. + Shall not conflict with rules already specified in the NSD. + type: array + items: + $ref: "#/definitions/AffinityOrAntiAffinityRule" + + ParamsForVnf: + description: > + This type defines the additional parameters for the VNF instance + to be created associated with an NS instance. + It shall comply with the provisions defined in Table 6.5.3.22-1. + type: object + required: + - vnfProfileId + properties: + vnfProfileId: + description: > + Identifier of (reference to) a vnfProfile to which the + additional parameters apply. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + additionalParams: + description: > + Additional parameters that are applied for the VNF + instance to be created. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + LocationConstraints: + description: > + This type represents location constraints for a VNF to be instantiated. + The location constraints shall be presented as a + country code, optionally followed by a civic address based on + the format defined by IETF RFC 4776 [13]. + type: object + required: + - countryCode + properties: + countryCode: + description: > + The two-letter ISO 3166 [29] country code in capital letters. + type: string + civicAddressElement: + description: > + Zero or more elements comprising the civic address. + type: array + items: + type: object + required: + - caType + - caValue + properties: + caType: + description: > + Describe the content type of caValue. The value of + caType shall comply with Section 3.4 of IETF + RFC 4776 [13]. + type: integer + caValue: + description: > + Content of civic address element corresponding to the + caType. The format caValue shall comply with + Section 3.4 of IETF RFC 4776 [13]. + type: string + + VnfLocationConstraint: + description: > + This type represents the association of location constraints to a VNF instance + to be created according to a specific VNF profile. + It shall comply with the provisions defined in Table 6.5.3.20-1. + type: object + required: + - vnfProfileId + properties: + vnfProfileId: + description: > + Identifier of (reference to) a vnfProfile to which the + additional parameters apply. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + locationConstraints: + description: > + Defines the location constraints for the VNF instance to + be created based on the VNF profile. + $ref: "#/definitions/LocationConstraints" + + VnfInstanceData: + description: > + This type specifies an existing VNF instance to be used in the NS instance and + if needed, the VNF Profile to use for this VNF instance. + It shall comply with the provisions defined in Table 6.5.3.19-1. + type: object + required: + - vnfInstanceId + - vnfProfileId + properties: + vnfInstanceId: + description: > + Identifier of the existing VNF instance to be used in the NS. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfProfileId: + description: > + Identifier of (Reference to) a vnfProfile defined in the + NSD which the existing VNF instance shall be matched + with. If not present, the NFVO will select the VnfProfile + matching the information in the VNF instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + + SapData: + description: > + This type represents the information related to a SAP of a NS. + It shall comply with the provisions defined in Table 6.5.3.10-1. + type: object + required: + - sapdId + - sapName + - description + properties: + sapdId: + description: > + Reference to the SAPD for this SAP. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + sapName: + description: > + Human readable name for the SAP. + type: string + description: + description: > + Human readable description for the SAP. + type: string + sapProtocolData: + description: > + Parameters for configuring the network protocols on the SAP. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/CpProtocolData" + + ScaleNsRequest: + description: > + This type represents a request for the scale NS operation. + type: object + required: + - scaleType + properties: + scaleType: + description: > + Indicates the type of scaling to be performed. + Possible values: + - SCALE_NS + - SCALE_VNF + type: string + enum: + - SCALE_NS + - SCALE_VNF + scaleNsData: + description: > + The necessary information to scale the referenced NS instance. + It shall be present when scaleType = SCALE_NS. + $ref: "#/definitions/ScaleNsData" + scaleVnfData: + description: > + The necessary information to scale the referenced NS instance. + It shall be present when scaleType = SCALE_VNF. + type: array + items: + $ref: "#/definitions/ScaleVnfData" + scaleTime: + description: > + Timestamp indicating the scale time of the NS, i.e. the + NS will be scaled at this timestamp. Cardinality "0" + indicates the NS scaling takes place immediately". + $ref: "SOL005_def.yaml#/definitions/DateTime" + + UpdateNsRequest: + description: > + This operation supports the update of a NS instance, + It shall comply with the provisions defined in Table 6.5.2.12-1. + type: object + required: + - updateType + properties: + updateType: + description: > + The type of update. It determines also which one of the + following parameters is present in the operation. + Possible values include: + * ADD_VNF: Adding existing VNF instance(s) + * REMOVE_VNF: Removing VNF instance(s) + * INSTANTIATE_VNF: Instantiating new VNF(s) + * CHANGE_VNF_DF: Changing VNF DF + * OPERATE_VNF: Changing VNF state, + * MODIFY_VNF_INFORMATION: Modifying + VNF information and/or the configurable + properties of VNF instance(s) + * CHANGE_EXTERNAL_VNF_CONNECTIVITY: + Changing the external connectivity of VNF + instance(s)ADD_SAP: Adding SAP(s) + * REMOVE_SAP: Removing SAP(s) + * ADD_NESTED_NS: Adding existing NS + instance(s) as nested NS(s) + * REMOVE_NESTED_NS: Removing existing + nested NS instance(s) + * ASSOC_NEW_NSD_VERSION: Associating a + new NSD version to the NS instance + * MOVE_VNF: Moving VNF instance(s) from one + origin NS instance to another target NS + instance + * ADD_VNFFG: Adding VNFFG(s) + * REMOVE_VNFFG: Removing VNFFG(s) + * UPDATE_VNFFG: Updating VNFFG(s) + * CHANGE_NS_DF: Changing NS DF + * ADD_PNF: Adding PNF + * MODIFY_PNF: Modifying PNF + * REMOVE_PNF: Removing PNF + type: string + enum: + - ADD_VNF + - REMOVE_VNF + - INSTANTIATE_VNF + - CHANGE_VNF_DF + - OPERATE_VNF + - MODIFY_VNF_INFORMATION + - CHANGE_EXTERNAL_VNF_CONNECTIVITY + - REMOVE_SAP + - ADD_NESTED_NS + - REMOVE_NESTED_NS + - ASSOC_NEW_NSD_VERSION + - MOVE_VNF + - ADD_VNFFG + - REMOVE_VNFFG + - UPDATE_VNFFG + - CHANGE_NS_DF + - ADD_PNF + - MODIFY_PNF + - REMOVE_PNF + addVnfIstance: + description: > + Identifies an existing VNF instance to be added to the + NS instance. It shall be present only if updateType = "ADD_VNF". + type: array + items: + $ref: "#/definitions/VnfInstanceData" + removeVnfInstanceId: + description: > + Identifies an existing VNF instance to be removed from + the NS instance. It contains the identifier(s) of the VNF + instances to be removed. It shall be present only if + updateType = "REMOVE_VNF." Note: If a VNF instance + is removed from a NS and this NS was the last one for + which this VNF instance was a part, the VNF instance is + terminated by the NFVO. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + instantiateVnfData: + description: > + Identifies the new VNF to be instantiated. It can be used + e.g. for the bottom-up NS creation. It shall be present + only if updateType = "INSTANTIATE_VNF". + type: array + items: + $ref: "#/definitions/InstantiateVnfData" + changeVnfFlavourData: + description: > + Identifies the new DF of the VNF instance to be + changed to. It shall be present only if updateType = "CHANGE_VNF_DF". + type: array + items: + $ref: "#/definitions/ChangeVnfFlavourData" + operateVnfData: + description: > + Identifies the state of the VNF instance to be changed. + It shall be present only if updateType = "OPERATE_VNF". + type: array + items: + $ref: "#/definitions/OperateVnfData" + modifyVnfInfoData: + description: > + Identifies the VNF information parameters and/or the + configurable properties of VNF instance to be modified. + It shall be present only if updateType = "MODIFY_VNF_INFORMATION". + type: array + items: + $ref: "#/definitions/ModifyVnfInfoData" + changeExtVnfConnectivityData: + description: > + Specifies the new external connectivity data of the VNF + instance to be changed. It shall be present only if + updateType = "CHANGE_EXTERNAL_VNF_CONNECTIVITY". + type: array + items: + $ref: "#/definitions/ChangeExtVnfConnectivityData" + addSap: + description: > + Identifies a new SAP to be added to the NS instance. + It shall be present only if updateType = "ADD_SAP." + type: array + items: + $ref: "#/definitions/SapData" + removeSapId: + description: > + The identifier an existing SAP to be removed from the + NS instance. It shall be present only if updateType = "REMOVE_SAP." + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + addNestedNsId: + description: > + The identifier of an existing nested NS instance to be + added to (nested within) the NS instance. It shall be + present only if updateType = "ADD_NESTED_NS". + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + removeNestedNsId: + description: > + The identifier of an existing nested NS instance to be + removed from the NS instance. It shall be present only if + updateType = "REMOVE_NESTED_NS". + type: array + items: + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + assocNewNsdVersionData: + description: > + Specify the new NSD to be used for the NS instance. It + shall be present only if updateType = + ASSOC_NEW_NSD_VERSION". + $ref: "#/definitions/AssocNewNsdVersionData" + moveVnfInstanceData: + description: > + Specify existing VNF instance to be moved from one NS + instance to another NS instance. It shall be present only + if updateType = MOVE_VNF". + type: array + items: + $ref: "#/definitions/MoveVnfInstanceData" + addVnffg: + description: > + Specify the new VNFFG to be created to the NS + Instance. It shall be present only if updateType = + "ADD_VNFFG". + type: array + items: + $ref: "#/definitions/AddVnffgData" + removeVnffgId: + description: > + Identifier of an existing VNFFG to be removed from the + NS Instance. It shall be present only if updateType = + "REMOVE_VNFFG". + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + updateVnffg: + description: > + Specify the new VNFFG Information data to be updated + for a VNFFG of the NS Instance. It shall be present only + if updateType = "UPDATE_VNFFG". + type: array + items: + $ref: "#/definitions/UpdateVnffgData" + changeNsFlavourData: + description: > + Specifies the new DF to be applied to the NS instance. It + shall be present only if updateType = + "CHANGE_NS_DF". + $ref: "#/definitions/ChangeNsFlavourData" + addPnfData: + description: > + specifies the PNF to be added into the NS instance. + It shall be present only if updateType = "ADD_PNF". + type: array + items: + $ref: "#/definitions/AddPnfData" + modifyPnfData: + description: > + Specifies the PNF to be modified in the NS instance. + It shall be present only if updateType = "MODIFY_PNF". + type: array + items: + $ref: "#/definitions/ModifyPnfData" + removePnfId: + description: > + Identifier of the PNF to be deleted from the NS instance. + It shall be present only if updateType = "REMOVE_PNF". + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + updateTime: + description: > + Timestamp indicating the update time of the NS, i.e. the + NS will be updated at this timestamp. Cardinality "0" + indicates the NS update takes place immediately. + $ref: "SOL005_def.yaml#/definitions/DateTime" + InstantiateVnfData: + description: > + This type represents the information related to a SAP of a NS. The InstantiateVnfData data type specifies the + parameters that are needed for VNF instantiation. This information element is used for the bottom-up NS creation when + the OSS/BSS explicitly requests VNF instantiation for a given NS. When the NFVO invokes the Instantiate VNF + update operation, a set of these parameters are then passed by the NFVO to the VNFM. It shall comply with the + provisions defined in Table 6.5.3.24-1. + type: object + required: + - vnfdId + - vnfFlavourId + properties: + vnfdId: + description: > + Information sufficient to identify the VNFD which defines + the VNF to be instantiated. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfFlavourId: + description: > + Identifier of the VNF deployment flavor to be instantiated. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfInstantiationLevelId: + description: > + Identifier of the instantiation level of the deployment + flavor to be instantiated. If not present, the default + instantiation level as declared in the VNFD is + instantiated. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfInstanceName: + description: > + Human-readable name of the VNF instance to be created. + type: string + vnfInstanceDescription: + description: > + Human-readable description of the VNF instance to be created. + type: string + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about internal VLs that are managed by other entities than the VNFM. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/ExtManagedVirtualLinkData" + localizationLanguage: + description: > + Localization language of the VNF to be instantiated. + The value shall comply with the format defined in IETF RFC 5646 [16]. + type: string + additionalParams: + description: > + Additional input parameters for the instantiation process, + specific to the VNF being instantiated. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + ChangeVnfFlavourData: + description: > + The type represents the information that is requested to be changed + deployment flavor for an existing VNF instance. + It shall comply with the provisions defined in Table 6.5.3.25-1. + type: object + required: + - vnfInstanceId + - newFlavourId + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance to be modified. + $ref: "SOL005_def.yaml#/definitions/Identifier" + newFlavourId: + description: > + Identifier of the VNF deployment flavor to be instantiated. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + instantiationLevelId: + description: > + Identifier of the instantiation level of the deployment + flavor to be instantiated. If not present, the default + instantiation level as declared in the VNFD is + instantiated. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + information about internal VLs that are managed by NFVO. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/ExtManagedVirtualLinkData" + additionalParams: + description: > + Additional input parameters for the flavor change + process, specific to the VNF being modified, as declared + in the VNFD as part of "ChangeVnfFlavourOpConfig". + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + OperateVnfData: + description: > + This type represents a VNF instance for which the operational state + needs to be changed and the requested new state. It + shall comply with the provisions defined in Table 6.5.3.31-1. + type: object + required: + - vnfInstanceId + - changeStateTo + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + changeStateTo: + description: > + The desired operational state (i.e. started or stopped) + to change the VNF to. + $ref: "#/definitions/OperationalStates" + stopType: + description: > + It signals whether forceful or graceful stop is requested. + $ref: "#/definitions/StopType" + gracefulStopTimeout: + description: > + The time interval (in seconds) to wait for the VNF to be + taken out of service during graceful stop, before + stopping the VNF. + type: integer + + OperationalStates: + description: > + STARTED - The VNF instance is up and running. + STOPPED - The VNF instance has been shut down. + type: string + enum: + - STARTED + - STOPPED + StopType: + description: > + * FORCEFUL: The VNFM will stop the VNF immediately after accepting the + request. + * GRACEFUL: The VNFM will first arrange to take the VNF out of service + after accepting the request. Once that operation is successful or once + the timer value specified in the "gracefulStopTimeout" attribute + expires, the VNFM will stop the VNF. + type: string + enum: + - FORCEFUL + - GRACEFUL + + ModifyVnfInfoData: + description: > + This type represents the information that is requested to be modified for a VNF instance. The information to be + modified shall comply with the associated NSD. + EXAMPLE. The vnfPkgId attribute value for a particular VNF instance can only be updated with a value that + matches the identifier value of a VNF package whose vnfdId is present in the associated profile of the NSD. + type: object + required: + - vnfInstanceId + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfInstanceName: + description: > + New value of the "vnfInstanceName" attribute in + "VnfInstance", or "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in "VnfInstance", + or "null" to remove the attribute. + type: string + vnfPkgId: + description: > + New value of the "vnfPkgId" attribute in "VnfInstance". + The value "null" is not permitted + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications to entries in the + "vnfConfigurableProperties" list, as defined below this Table. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + Metadata: + description: > + Modifications to entries in the "metadata" list, as + defined below this Table. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + Extensions: + description: > + Modifications to entries in the "extensions" list, as + defined below this Table. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + ChangeExtVnfConnectivityData: + description: > + This type describes the information invoked by the NFVO to change the external VNF connectivity information + maintained by the VNFM. The types of changes that this operation supports are: + 1) Disconnect the external CPs that are connected to a particular external VL, and connect them to a different + external VL. + 2) Change the connectivity parameters of the existing external CPs, including changing addresses. + NOTE: Depending on the capabilities of the underlying VIM resources, certain changes (e.g. modifying the IP + address assignment) might not be supported without deleting the resource and creating another one with + the modified configuration. + This type shall comply with the provisions defined in Table 6.5.3.33-1. + type: object + required: + - vnfInstanceId + - extVirtualLink + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + extVirtualLink: + description: > + Information about external VLs to change (e.g. connect the VNF to). + type: array + items: + $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData" + additionalParams: + description: > + Additional parameters passed by the OSS as input to + the external connectivity change process, specific to the + VNF instance being changed. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + AssocNewNsdVersionData: + description: > + This type specifies a new NSD version that is associated to the NS instance. After issuing the Update NS operation with + updateType = "AssocNewNsdVersion", the NFVO shall use the referred NSD as a basis for the given NS instance. + Different versions of the same NSD have same nsdInvariantId, but different nsdId attributes, therefore if the + nsdInvariantId of the NSD version that is to be associated to this NS instance is different from the one used before, the + NFVO shall reject the request. Only new versions of the same NSD can be associated to an existing NS instance. This + data type shall comply with the provisions defined in Table 6.5.3.34-1. + type: object + required: + - newNsdId + properties: + newNsdId: + description: > + Identifier of the new NSD version that is to be + associated to the NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + sync: + description: > + Specify whether the NS instance shall be automatically + synchronized to the new NSD by the NFVO (in case of + true value) or the NFVO shall not do any action (in case + of a false value) and wait for further guidance from + OSS/BSS (i.e. waiting for OSS/BSS to issue NS + lifecycle management operation to explicitly add/remove + VNFs and modify information of VNF instances + according to the new NSD). + The synchronization to the new NSD means e.g. + instantiating/adding those VNFs whose VNFD is + referenced by the new NSD version but not referenced + by the old one, terminating/removing those VNFs whose + VNFD is referenced by the old NSD version but not + referenced by the new NSD version, modifying + information of VNF instances to the new applicable + VNFD provided in the new NSD version. + A cardinality of 0 indicates that synchronization shall not be done. + type: boolean + + MoveVnfInstanceData: + description: > + This type specifies existing VNF instances to be moved from one NS instance (source) to another NS instance + (destination). The NS instance defined in the Update NS operation indicates the source NS instance and the destination + NS instance is specified in this data type (referred to targetNsInstanceId). + It shall comply with the provisions defined in Table 6.5.3.35-1. + type: object + required: + - targetNsInstanceId + properties: + targetNsInstanceId: + description: > + Specify the target NS instance where the VNF instances + are moved to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfInstanceId: + description: > + Specify the VNF instance that is moved. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + + AddVnffgData: + description: > + This type specifies the parameters used for the creation of a new VNFFG instance. + It shall comply with the provisions defined in Table 6.5.3.36-1. + type: object + required: + - vnffgdId + - vnffgName + - description + properties: + targetNsInstanceId: + description: > + Identifier of the VNFFGD used to create this VNFFG + instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + vnffgName: + description: > + Human readable name for the VNFFG. + type: string + description: + description: > + Human readable description for the VNFFG. + type: string + + UpdateVnffgData: + description: > + This type specifies the parameters used for the update of an existing VNFFG instance. + It shall comply with the provisions defined in Table 6.5.3.37-1. + type: object + required: + - vnffgInfoId + properties: + vnffgInfoId: + description: > + Identifier of an existing VNFFG to be updated for the NS Instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + nfp: + description: > + Indicate the desired new NFP(s) for a given VNFFG + after the operations of addition/removal of NS + components (e.g. VNFs, VLs, etc.) have been + completed, or indicate the updated or newly created + NFP classification and selection rule which applied to an existing NFP. + type: array + items: + $ref: "#/definitions/NfpData" + nfpInfoId: + description: > + Identifier(s) of the NFP to be deleted from a given VNFFG. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + + NfpData: + description: > + This type contains information used to create or modify NFP instance parameters + for the update of an existing VNFFG instance. + It shall comply with the provisions defined in Table 6.5.3.38-1. + type: object + properties: + nfpInfoId: + description: > + Identifier of the NFP to be modified. It shall be present + for modified NFPs and shall be absent for the new NFP. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + nfpName: + description: > + Human readable name for the NFP. It shall be present + for the new NFP, and it may be present otherwise. + type: string + description: + description: > + Human readable description for the NFP. It shall be + present for the new NFP, and it may be present otherwise. + type: string + nsCpHandle: + description: > + Identifier(s) of the CPs and SAPs which the NFP passes by. + Cardinality can be 0 if only updated or newly created + NFP classification and selection rule which applied to an + existing NFP is provided. + type: array + items: + $ref: "#/definitions/NsCpHandle" + nfpRule: + description: > + NFP classification and selection rule. See note 1. + $ref: "#/definitions/NfpRule" + + NfpRule: + description: > + The NfpRule data type is an expression of the conditions that shall be met + in order for the NFP to be applicable to the packet. The condition acts as a flow classifier and + it is met only if all the values expressed in the condition are matched + by those in the packet. It shall comply with the provisions defined in Table 6.5.3.40-1. + type: object + properties: + etherDestinationAddress: + description: > + Indicates a destination Mac address. + $ref: "SOL005_def.yaml#/definitions/MacAddress" + etherSourceAddress: + description: > + Indicates a source Mac address. + $ref: "SOL005_def.yaml#/definitions/MacAddress" + etherType: + description: > + Human readable description for the VNFFG. + type: string + enum: + - IPV4 + - IPV6 + vlanTag: + description: > + Indicates a VLAN identifier in an IEEE 802.1Q-2014 + tag [6] Multiple tags can be included for QinQ stacking. See note. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + protocol: + description: > + Indicates the L4 protocol, For IPv4 [7] this + corresponds to the field called "Protocol" to identify + the next level protocol. For IPv6 [28] this + corresponds to the field is called the "Next Header" field. + Permitted values: Any keyword defined in the IANA + protocol registry [1], e.g.: + TCP + UDP + ICMP + type: string + enum: + - TCP + - UDP + - ICMP + dscp: + description: > + For IPv4 [7] a string of "0" and "1" digits that + corresponds to the 6-bit Differentiated Services + Code Point (DSCP) field of the IP header. + For IPv6 [28] a string of "0" and "1" digits that + corresponds to the 6 differentiated services bits of + the traffic class header field + type: string + sourcePortRange: + description: > + Indicates a range of source ports + $ref: "SOL005_def.yaml#/definitions/PortRange" + destinationPortRange: + description: > + Indicates a range of destination ports. + $ref: "SOL005_def.yaml#/definitions/PortRange" + sourceIpAddressPrefix: + description: > + Indicates the source IP address range in CIDR format. + $ref: "SOL005_def.yaml#/definitions/IpAddressPrefix" + destinationIpAddressPrefix: + description: > + Indicates the destination IP address range in CIDR format. + $ref: "SOL005_def.yaml#/definitions/IpAddressPrefix" + extendedCriteria: + description: > + Indicates values of specific bits in a frame. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Mask" + + ChangeNsFlavourData: + description: > + This type specifies an existing NS instance for which the DF needs to be changed. + This specifies the new DF, the instantiationLevel of the new DF that may be used and + the additional parameters as input for the flavour change. + It shall comply with the provisions defined in Table 6.5.3.39-1. + type: object + required: + - newNsFlavourId + properties: + newNsFlavourId: + description: > + Identifier of an existing VNFFG to be updated for the NS Instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + instantiationLevelId: + description: > + Identifier of the instantiation level of the deployment flavour to be instantiated. + If not present, the default instantiation level as declared in the NSD is instantiated. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + + AddPnfData: + description: > + This type specifies an PNF to be added to the NS instance and the PNF Profile + to use for this PNF. It shall comply with the provisions defined in Table 6.5.3.14-1. + type: object + required: + - pnfId + - pnfName + - pnfdId + - pnfProfileId + properties: + pnfId: + description: > + Identifier of the PNF. This identifier is allocated by the OSS/BSS. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfName: + description: > + Name of the PNF + type: string + pnfdId: + description: > + Identifier of the PNFD on which the PNF is based. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfProfileId: + description: > + Identifier of related PnfProfile in the NSD on which the PNF is based. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + cpData: + description: > + Address assigned for the PNF external CP(s). + type: array + items: + $ref: "#/definitions/PnfExtCpData" + + PnfExtCpData: + description: > + This type represents the configuration data on the external CP of the PNF. + It shall comply with the provisions defined in + Table 6.5.3.16-1. + type: object + required: + - cpProtocolData + properties: + cpInstanceI16: + description: > + Identifier of the CP. Shall be present for existing CP. + $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" + cpdId: + description: > + Identifier of the Connection Point Descriptor (CPD) for this CP. Shall be present for new CP. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + cpProtocolData: + description: > + Address assigned for this CP. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/CpProtocolData" + + ModifyPnfData: + description: > + This type specifies an PNF to be modified in the NS instance. + It shall comply with the provisions defined in + Table 6.5.3.15-1. + type: object + required: + - pnfId + properties: + pnfId: + description: > + Identifier of the PNF. This identifier is allocated by the OSS/BSS. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfName: + description: > + Name of the PNF. + type: string + cpData: + description: > + Address assigned for the PNF external CP(s). + type: array + items: + $ref: "#/definitions/PnfExtCpData" + + AffectedVirtualLink: + description: > + This type provides information about added, deleted, modified and + temporary VLs. + type: object + required: + - id + - virtualLinkDescId + - changeType + - networkResource + properties: + id: + description: > + Identifier of the virtual link instance, identifying the applicable + "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + virtualLinkDescId: + description: > + Identifier of the related VLD in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + changeType: + description: > + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + * LINK_PORT_ADDED + * LINK_PORT_REMOVED + For a temporary resource, an AffectedVirtualLink structure exists as + long as the temporary resource exists. + type: string + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + - LINK_PORT_ADDED + - LINK_PORT_REMOVED + networkResource: + description: > + Reference to the VirtualNetwork resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + metadata: + description: > + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VnfVirtualLinkResourceInfo structure. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + AffectedVirtualStorage: + description: > + This type provides information about added, deleted, modified and + temporary virtual storage resources. + type: object + required: + - id + - virtualStorageDescId + - changeType + - storageResource + properties: + id: + description: > + Identifier of the storage instance, identifying the applicable + "virtualStorageResourceInfo" entry in the "VnfInstance" data type. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" + virtualStorageDescId: + description: > + Identifier of the related VirtualStorage descriptor in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + changeType: + description: > + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + For a temporary resource, an AffectedVirtualStorage structure exists + as long as the temporary resource exists. + type: string + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + storageResource: + description: > + Reference to the VirtualStorage resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + metadata: + description: > + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VirtualStorageResourceInfo structure. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + AffectedVnf: + description: > + This type provides information about added, deleted and modified VNFs. + It shall comply with the provisions in Table 6.5.3.2-1. + type: object + required: + - vnfInstanceId + - vnfdId + - vnfProfileId + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + Identifier of the VNFD of the VNF Instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfProfileId: + description: > + Identifier of the VNF profile of the NSD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + vnfName: + description: > + Name of the VNF Instance. + type: string + changeType: + description: > + Signals the type of change + Permitted values: + - ADD + - REMOVE + - INSTANTIATE + - TERMINATE + - SCALE + - CHANGE_FLAVOUR + - HEAL + - OPERATE + - MODIFY_INFORMATION + - CHANGE_EXTERNAL_VNF_CONNECTIVITY + type: string + enum: + - ADD + - REMOVE + - INSTANTIATE + - TERMINATE + - SCALE + - CHANGE_FLAVOUR + - HEAL + - OPERATE + - MODIFY_INFORMATION + - CHANGE_EXTERNAL_VNF_CONNECTIVITY + changeResult: + description: > + Signals the result of change identified by the + "changeType" attribute. + Permitted values: + - COMPLETED + - ROLLED_BACK + - FAILED + type: string + enum: + - COMPLETED + - ROLLED_BACK + - FAILED + changedInfo: + description: > + Information about the changed VNF instance + information, including VNF configurable properties,if applicable. + When the "changedInfo" attribute is present, + either the "changedVnfInfo" attribute or the + "changedExtConnectivity" attribute or both shall be present. + type: object + required: + - self + properties: + changedVnfInfo: + description: > + Information about the changed VNF instance + information, including configurable properties, + if applicable. + $ref: "#/definitions/ModifyVnfInfoData" + changedExtConnectivity: + description: > + Information about changed external connectivity, + if applicable. + $ref: "#/definitions/ExtVirtualLinkInfo" + + AffectedPnf: + description: > + This type provides information about added, deleted and modified PNFs. + It shall comply with the provisions in Table 6.5.3.3-1. + type: object + required: + - pnfId + - pnfdId + - pnfProfileId + - cpInstanceId + properties: + pnfId: + description: > + Identifier of the affected PNF. This identifier is + allocated by the OSS/BSS. + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdId: + description: > + Identifier of the PNFD on which the PNF is based. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + pnfProfileId: + description: > + Identifier of the VNF profile of the NSD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + pnfName: + description: > + Name of the PNF. + type: string + cpInstanceId: + description: > + Identifier of the CP in the scope of the PNF. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" + changeType: + description: > + Signals the type of change. + Permitted values: + - ADD + - REMOVE + - MODIFY + type: string + enum: + - ADD + - REMOVE + - MODIFY + changeResult: + description: > + Signals the result of change identified by the + "changeType" attribute. + Permitted values: + - COMPLETED + - ROLLED_BACK + - FAILED + type: string + enum: + - COMPLETED + - ROLLED_BACK + - FAILED + + AffectedVl: + description: > + This type provides information about added, deleted and modified VLs. + It shall comply with the provisions in Table 6.5.3.4-1. + type: object + required: + - nsVirtualLinkInstanceId + - nsVirtualLinkDescId + - vlProfileId + properties: + nsVirtualLinkInstanceId: + description: > + Identifier of the VL Instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + nsVirtualLinkDescId: + description: > + Identifier of the VLD in the NSD for this VL. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + vlProfileId: + description: > + Identifier of the VLD in the NSD for this VL. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + changeType: + description: > + Signals the type of change. + Permitted values: + - ADD + - DELETE + - MODIFY + - ADD_LINK_PORT + - REMOVE_LINK_PORT + type: string + enum: + - ADD + - DELETE + - MODIFY + - ADD_LINK_PORT + - REMOVE_LINK_PORT + changeResult: + description: > + Signals the result of change identified by the + "changeType" attribute. + Permitted values: + - COMPLETED + - ROLLED_BACK + - FAILED + type: string + enum: + - COMPLETED + - ROLLED_BACK + - FAILED + + AffectedVnffg: + description: > + This type provides information about added, deleted and modified VNFFG instances. + It shall comply with the + provisions in Table 6.5.3.5-1. + type: object + required: + - vnffgInstanceId + - vnffgdId + properties: + vnffgInstanceId: + description: > + Identifier of the VNFFG instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" + vnffgdId: + description: > + Identifier of the VNFFGD of the VNFFG instance. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + changeType: + description: > + Signals the type of change. + Permitted values: + - ADD + - DELETE + - MODIFY + type: string + enum: + - ADD + - DELETE + - MODIFY + changeResult: + description: > + Signals the result of change identified by the + "changeType" attribute. + Permitted values: + - COMPLETED + - ROLLED_BACK + - FAILED + type: string + enum: + - COMPLETED + - ROLLED_BACK + - FAILED + + AffectedNs: + description: > + This type provides information about added, deleted and modified nested NSs. + It shall comply with the provisions in Table 6.5.3.6-1. + type: object + required: + - nsInstanceId + - nsdId + properties: + nsInstanceId: + description: > + Identifier of the nested NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsdId: + description: > + Identifier of the NSD of the nested NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + changeType: + description: > + Signals the type of lifecycle change. + Permitted values: + - ADD + - REMOVE + - INSTANTIATE + - SCALE + - UPDATE + - HEAL + - TERMINATE + type: string + enum: + - ADD + - REMOVE + - INSTANTIATE + - SCALE + - UPDATE + - HEAL + - TERMINATE + changeResult: + description: > + Signals the result of change identified by the + "changeType" attribute. + Permitted values: + - COMPLETED + - ROLLED_BACK + - FAILED + - PARTIALLY_COMPLETED + type: string + enum: + - COMPLETED + - ROLLED_BACK + - FAILED + - PARTIALLY_COMPLETED + + AffectedSap: + description: > + This type provides information about added, deleted and modified SAP of a NS. + It shall comply with the provisions in Table 6.5.3.7-1. + type: object + required: + - sapInstanceId + - sapdId + properties: + sapInstanceId: + description: > + Identifier of the nested NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + sapdId: + description: > + Identifier of the NSD of the nested NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + sapName: + description: > + Human readable name for the SAP. + type: string + changeType: + description: > + Signals the type of lifecycle change. + Permitted values: + - ADD + - REMOVE + - MODIFY + type: string + enum: + - ADD + - REMOVE + - MODIFY + changeResult: + description: > + Signals the result of change identified by the + "changeType" attribute. + Permitted values: + - COMPLETED + - ROLLED_BACK + - FAILED + type: string + enum: + - COMPLETED + - ROLLED_BACK + - FAILED + + NsLcmOperationStateType: + description: > + The enumeration NsLcmOperationStateType shall comply with the provisions defined in Table 6.5.4.4-1. + Value | Description + ------|------------ + PROCESSING | The LCM operation is currently in execution. + COMPLETED | The LCM operation has been completed successfully. + PARTIALLY_COMPLETED | The LCM operation has been partially completed with accepTable errors. + FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. + FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. + OLLING_BACK | The LCM operation is currently being rolled back. + ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. + type: string + enum: + - PROCESSING + - COMPLETED + - FAILED_TEMP + - FAILED + - ROLLING_BACK + - ROLLED_BACK + NsLcmOpType: + description: > + The enumeration NsLcmOpType represents those lifecycle operations that trigger a NS lifecycle management operation + occurrence notification. + Value | Description + ------|------------ + INSTANTIATE | Represents the "Instantiate NS" LCM operation. + SCALE | Represents the "Scale NS" LCM operation. + UPDATE | Represents the "Update NS" LCM operation. + TERMINATE | Represents the "Terminate NS" LCM operation. + HEAL | Represents the "Heal NS" LCM operation. + type: string + enum: + - INSTANTIATE + - SCALE + - UPDATE + - TERMINATE + - HEAL + LccnSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about NS lifecycle changes. It shall comply with the + provisions defined in Table 6.5.2.2-1.. + type: object + required: + - callbackUri + properties: + filter: + description: > + Filter settings for this subscription, to define the subset + of all notifications this subscription relates to. A + particular notification is sent to the subscriber if the filter + matches, or if there is no filter. + $ref: "#/definitions/LifecycleChangeNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + authentication: + description: > + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this subscription, as defined + in clause 4.5.3.4. + This attribute shall only be present if the subscriber requires + authorization of notifications. + $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" + + LccnSubscription: + description: > + This type represents a subscription related to notifications about NS lifecycle changes. + It shall comply with the provisions defined in Table 6.5.2.4-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier of this subscription resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + filter: + description: > + Filter settings for this subscription, to define the subset of all + notifications this subscription relates to. A particular + notification is sent to the subscriber if the filter matches, or if + there is no filter. + $ref: "#/definitions/LifecycleChangeNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + LifecycleChangeNotificationsFilter: + description: > + This type represents a subscription filter related to notifications about + NS lifecycle changes. It shall comply with the + provisions defined in Table 6.5.3.8-1. + At a particular nesting level in the filter structure, the following applies: + All attributes shall match in order for the filter + to match (logical "and" between different filter attributes). + If an attribute is an array, the attribute shall match if at least + one of the values in the array matches (logical "or" between the values of one filter attribute). + type: object + properties: + nsInstanceSubscriptionFilter: + description: > + Filter criteria to select NS instances about which to notify. + $ref: "#/definitions/NsInstanceSubscriptionFilter" + notificationTypes: + description: > + Match particular notification types. + Permitted values: + - NsLcmOperationOccurenceNotification + - NsIdentifierCreationNotification + - NsIdentifierDeletionNotification + - NsChangeNotification + type: array + items: + type: string + enum: + - NsLcmOperationOccurenceNotification + - NsIdentifierCreationNotification + - NsIdentifierDeletionNotification + - NsChangeNotification + operationTypes: + description: > + Match particular NS lifecycle operation types + for the notification of type + NsLcmOperationOccurrenceNotification. + May be present if the "notificationTypes" + attribute contains the value + "NsLcmOperationOccurrenceNotification", and + shall be absent otherwise. + type: array + items: + $ref: "#/definitions/NsLcmOpType" + operationStates: + description: > + Match particular LCM operation state values as + reported in notifications of type + NsLcmOperationOccurrenceNotification. + May be present if the "notificationTypes" + attribute contains the value + "NsLcmOperationOccurrenceNotification", and + shall be absent otherwise. + type: array + items: + $ref: "#/definitions/LcmOperationStateType" + nsComponentTypes: + description: > + Match particular NS component types for the + notification of type NsChangeNotification. + May be present if the "notificationTypes" + attribute contains the value "NsChang. + type: array + items: + $ref: "#/definitions/NsComponentType" + lcmOpNameImpactingNsComponent: + description: > + Match particular LCM operation names for the + notification of type NsChangeNotification. + May be present if the "notificationTypes" + attribute contains the value + "NsChangeNotification", and shall be absent otherwise. + type: array + items: + $ref: "#/definitions/LcmOpNameForChangeNotificationType" + lcmOpOccStatusImpactingNsComponent: + description: > + Match particular LCM operation status values + as reported in notifications of type + NsChangeNotification. + May be present if the "notificationTypes" + attribute contains the value + "NsChangeNotification", and shall be absent otherwise. + type: array + items: + $ref: "#/definitions/LcmOpOccStatusForChangeNotificationType" + + NsLcmOperationOccurrenceNotification: + type: object + required: + - id + - nsInstanceId + - nsLcmOpOccId + - subscriptionId + properties: + id: + description: > + Identifier of this notification. If a notification is sent + multiple times due to multiple subscriptions, the "id" + attribute of all these notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsInstanceId: + description: > + The identifier of the NS instance affected. + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsLcmOpOccId: + description: > + The identifier of the NS lifecycle operation occurrence + associated to the notification. + $ref: "SOL005_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle operation. + $ref: "#/definitions/NsLcmOpType" + notificationType: + description: > + Discriminator for the different notification types. Shall be + set to "NsLcmOperationOccurrenceNotification" for this + notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timestamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + notificationStatus: + description: > + Indicates whether this notification reports about the start + of a NS lifecycle operation or the result of a NS lifecycle + operation. + Permitted values: + - START: Informs about the start of the NS LCM + operation occurrence. + - RESULT: Informs about the final or intermediate + result of the NS LCM operation occurrence. + type: string + enum: + - START + - RESULT + operationState: + description: > + The state of the NS lifecycle operation occurrence. + $ref: "#/definitions/NsLcmOperationStateType" + isAutomaticInvocation: + description: > + Set to true if this NS LCM operation occurrence has + been automatically triggered by the NFVO. This occurs + in case of auto-scaling, auto-healing and when a nested + NS is modified as a result of an operation on its + composite NS. Set to false otherwise. + type: boolean + affectedVnf: + description: > + Information about the VNF instances that were affected + during the lifecycle operation. + $ref: "#/definitions/AffectedVnf" + affectedPnf: + description: > + Information about the PNF instances that were affected + during the lifecycle operation. + $ref: "#/definitions/AffectedPnf" + affectedVl: + description: > + Information about the VL instances that were affected + during the lifecycle operation. + type: array + items: + $ref: "#/definitions/AffectedVirtualLink" + affectedVnffg: + description: > + Information about the VNFFG instances that were + affected during the lifecycle operation. + type: array + items: + $ref: "#/definitions/AffectedVnffg" + affectedNs: + description: > + Information about the SAP instances that were affected + during the lifecycle operation. See note. + type: array + items: + $ref: "#/definitions/AffectedSap" + affectedSap: + description: > + The lifecycle operation. + $ref: "#/definitions/NsLcmOpType" + error: + description: > + Details of the latest error, if one has occurred during + executing the LCM operation (see clause 4.3.5). Shall + be present if operationState is "FAILED_TEMP" or + "FAILED", and shall be absent otherwise. + $ref: "SOL005_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" + + NsIdentifierCreationNotification: + type: object + required: + - subscriptionId + - nsInstanceId + properties: + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "NsIdentifierDeletionNotification" for this + notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timestamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + nsInstanceId: + description: > + The created NS instance identifier + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" + + NsIdentifierDeletionNotification: + type: object + required: + - subscriptionId + - nsInstanceId + properties: + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "NsIdentifierDeletionNotification" for this + notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timestamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + nsInstanceId: + description: > + The created NS instance identifier + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" + + NsScaleInfo: + description: > + This type represents the target NS Scale level for each NS scaling aspect of the current deployment flavor. + type: object + required: + - nsScalingAspectId + - nsScaleLevelId + properties: + nsScalingAspectId: + description: > + Identifier of the NS scaling aspect. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + nsScaleLevelId: + description: > + Identifier of the NS scale level. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + ScaleNsData: + description: > + This type represents the information to scale a NS. + type: object + properties: + vnfInstanceToBeAdded: + description: > + An existing VNF instance to be added to the NS + instance as part of the scaling operation. If + needed, the VNF Profile to be used for this VNF + instance may also be provided. + type: array + items: + $ref: "#/definitions/VnfInstanceData" + vnfInstanceToBeRemoved: + description: > + The VNF instance to be removed from the NS + instance as part of the scaling operation. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + scaleNsByStepsData: + description: > + The information used to scale an NS instance by + one or more scaling steps. + $ref: "#/definitions/ScaleNsByStepsData" + scaleNsToLevelData: + description: > + The information used to scale an NS instance to a target size. + $ref: "#/definitions/ScaleNsToLevelData" + additionalParamsForNs: + description: > + Allows the OSS/BSS to provide additional + parameter(s) at the NS level necessary for the + NS scaling (as opposed to the VNF level, which is + covered in additionalParamForVnf). + $ref: "#/definitions/ParamsForVnf" + additionalParamsForVnf: + description: > + Allows the OSS/BSS to provide additional + parameter(s) per VNF instance (as opposed to + the NS level, which is covered in + additionalParamforNs). This is for VNFs that are + to be created by the NFVO as part of the NS + scaling and not for existing VNF that are covered + by the scaleVnfData. + type: array + items: + $ref: "#/definitions/ParamsForVnf" + locationConstraints: + description: > + The location constraints for the VNF to be + instantiated as part of the NS scaling. + An example can be a constraint for the VNF to be + in a specific geographic location. + type: array + items: + $ref: "#/definitions/VnfLocationConstraint" + + ScaleVnfData: + description: > + This type represents defines the information to scale a VNF instance + to a given level, or to scale a VNF instance by steps. + type: object + required: + - vnfInstanceid + - scaleVnfType + properties: + vnfInstanceid: + description: > + Identifier of the VNF instance being scaled. + $ref: "SOL005_def.yaml#/definitions/Identifier" + scaleVnfType: + description: > + Type of the scale VNF operation requested. + Allowed values are: + - SCALE_OUT + - SCALE_IN + - SCALE_TO_INSTANTIATION_LEVEL + - SCALE_TO_SCALE_LEVEL(S) + The set of types actually supported depends on the + capabilities of the VNF being managed. + type: string + enum: + - SCALE_OUT + - SCALE_IN + - SCALE_TO_INSTANTIATION_LEVEL + - SCALE_TO_SCALE_LEVEL(S) + scaleToLevelData: + description: > + The information used for scaling to a given level. + $ref: "#/definitions/ScaleToLevelData" + scaleByStepData: + description: > + The information used for scaling by steps. + $ref: "#/definitions/ScaleByStepData" + + ScaleNsByStepsData: + description: > + This type represents the information used to scale an NS instance by one or more scaling steps, with respect to a + particular NS scaling aspect. Performing a scaling step means increasing/decreasing the capacity of an NS instance in a + discrete manner, i.e. moving from one NS scale level to another. The NS scaling aspects and their corresponding NS + scale levels applicable to the NS instance are declared in the NSD. + type: object + required: + - scalingDirection + - aspectId + properties: + scalingDirection: + description: > + The scaling direction. Possible values are: + - SCALE_IN + - SCALE_OUT. + type: string + enum: + - SCALE_IN + - SCALE_OUT + aspectId: + description: > + The aspect of the NS that is requested to be scaled, as + declared in the NSD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + numberOfSteps: + description: > + The number of scaling steps to be performed. Defaults to 1. + type: integer + default: 1 + + ScaleNsToLevelData: + description: > + This type represents the information used to scale an NS instance to a target size. The target size is either expressed as + an NS instantiation level or as a list of NS scale levels, one per NS scaling aspect, of the current DF. The NS + instantiation levels, the NS scaling aspects and their corresponding NS scale levels applicable to the NS instance are + declared in the NSD. + type: object + properties: + nsInstantiationLevel: + description: > + Identifier of the target NS instantiation level of the + current DF to which the NS instance is requested to be scaled. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + nsScaleInfo: + description: > + For each NS scaling aspect of the current DF, defines + the target NS scale level to which the NS instance is to be scaled. + type: array + items: + $ref: "#/definitions/NsScaleInfo" + + ScaleToLevelData: + description: > + This type describes the information used to scale a VNF instance to a target size. The target size is either expressed as + an instantiation level of that DF as defined in the VNFD, or given as a list of scale levels, one per scaling aspect of that + DF. Instantiation levels and scaling aspects are declared in the VNFD. The NFVO shall then invoke the + ScaleVnfToLevel operation towards the appropriate VNFM.. + type: object + properties: + vnfInstantiationLevelId: + description: > + Identifier of the target instantiation level of the current + deployment flavor to which the VNF is requested to be scaled. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfScaleInfo: + description: > + For each scaling aspect of the current deployment + flavor, indicates the target scale level to which the VNF + is to be scaled. + type: array + items: + $ref: "#/definitions/VnfScaleInfo" + additionalParams: + description: > + Additional parameters passed by the NFVO as input to + the scaling process, specific to the VNF being scaled. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + ScaleByStepData: + description: > + This type describes the information to scale a VNF instance by steps. + The NFVO shall then invoke the Scale VNF + operation towards the appropriate VNFM. + type: object + required: + - aspectId + properties: + aspectId: + description: > + Identifier of (reference to) the aspect of the VNF that is + requested to be scaled, as declared in the VNFD. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + numberOfSteps: + description: > + Number of scaling steps. It shall be a positive number. + Defaults to 1. + The VNF provider defines in the VNFD whether or not a + particular VNF supports performing more than one step + at a time. Such a property in the VNFD applies for all + instances of a particular VNF. + type: integer + default: 1 + additionalParams: + description: > + Additional parameters passed by the NFVO as input to + the scaling process, specific to the VNF instance being scaled. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + NsInstanceSubscriptionFilter: + description: > + This type represents subscription filter criteria to match NS instances. + It shall comply with the provisions defined in + Table 4.4.1.5-1. + type: object + properties: + nsdIds: + description: > + If present, match NS instances that were created + based on a NSD identified by one of the nsdId + values listed in this attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdIds: + description: > + If present, match NS instances that contain VNF + instances that were created based on a VNFD + identified by one of the vnfdId values listed in + this attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + pnfdIds: + description: > + If present, match NS instances that contain + PNFs that are represented by a PNFD identified + by one of the pnfdId values listed in this attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsInstanceIds: + description: > + If present, match NS instances with an instance + identifier listed in this attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + nsInstanceNames: + description: > + If present, match NS instances with a NS + Instance Name listed in this attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + + LcmOperationStateType: + description: > + Value | Description + ------|------------ + PROCESSING | The LCM operation is currently in execution. + COMPLETED | The LCM operation has been completed successfully. + PARTIALLY_COMPLETED | The LCM operation has been partially completed with accepTable errors. + FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. + FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action will not succeed. + OLLING_BACK | The LCM operation is currently being rolled back. + ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the NS prior to the original operation invocation has been restored as closely as possible. + type: string + enum: + - PROCESSING + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED_TEMP + - FAILED + - ROLLING_BACK + - ROLLED_BACK + + NsComponentType: + description: > + The enumeration NsComponentType represents the NS component type. It shall comply with the provisions defined in Table 6.5.4.5-1. + Value | Description + ------|------------ + VNF | Represents the impacted NS component is a VNF. + PNF | Represents the impacted NS component is a PNF. + NS | Represents the impacted NS component is a nested NS. + type: string + enum: + - VNF + - PNF + - NS + LcmOpNameForChangeNotificationType: + description: > + The enumeration LcmOpNameForChangeNotificationType represents the name of the lifecycle operation that impacts the NS component and trigger an NS change notification. It shall comply with the provisions defined in Table 6.5.4.6-1. + Value | Description + ------|------------ + VNF_INSTANTIATE | Represents the "Instantiate VNF" LCM operation. + VNF_SCALE | Represents the "Scale VNF" LCM operation. + VNF_SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. + VNF_CHANGE_FLAVOUR | Represents the "Change VNF Flavor" LCM operation. + VNF_TERMINATE | Represents the "Terminate VNF" LCM operation. + VNF_HEAL | Represents the "Heal VNF" LCM operation. + VNF_OPERATE | Represents the "Operate VNF" LCM operation. + VNF_CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. + VNF_MODIFY_INFO | Represents the "Modify VNF Information" LCM operation. + NS_INSTANTIATE | Represents the "Instantiate NS" LCM operation + NS_SCALE | Represents the "Scale NS" LCM operation. + NS_UPDATE | Represents the "Update NS" LCM operation. + NS_TERMINATE | Represents the "Terminate NS" LCM operation. + NS_HEAL | Represents the "Heal NS" LCM operation. + 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 + LcmOpOccStatusForChangeNotificationType: + description: > + The enumeration LcmOpOccStatusForChangeNotificationType represents the status of the lifecycle management + operation occurrence that impacts the NS component and triggers an NS change notification. It shall comply with the + provisions defined in Table 6.5.4.7-1. + Value | Description + ------|------------ + START | The impact on the NS component is identified. + COMPLETED | The impact on the NS component stops and related lifecycle operation completes successfully. + PARTIALLY_COMPLETED | The impact on the NS component stops and related lifecycle operation partially completes. Inconsistency state may exist on the NS component. + FAILED | The impact on the NS component stops and related lifecycle operation fails. Inconsistency state may exist for the NS component. + ROLLED_BACK | The impact on the NS component stops and related lifecycle operation is rolled back. + type: string + enum: + - START + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED + - ROLLED_BACK \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5e4c1952a545d5d3267e65bc643d397326624bb7 --- /dev/null +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml @@ -0,0 +1,614 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + type: string + + nsInstanceId: + description: > + The deleted NS instance identifier. + type: string + + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + + String: + description: > + This type represents stack of string values + type: string + + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. + In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions + defined in clause 4 of IETF RFC 7159. + type: object + + IdentifierInVnfd: + description: > + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + type: string + + IdentifierInVnf: + description: > + An identifier that is unique for the respective type within a VNF + instance, but may not be globally unique. + type: string + + IdentifierInNsd: + description: > + An identifier that is unique within a NS descriptor. Representation: string of variable + length. + type: string + + IdentifierInPnf: + description: > + Identifier of the CP in the scope of the PNF. + type: string + + IdentifierInNs: + description: > + An identifier that is unique with respect to a NS. + Representation: string of variable length. + type: string + + MacAddress: + description: > + A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons. + type: string + format: MAC + + IpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, separated by colons. + type: string + format: IP + + IpAddressPrefix: + description: > + An IPV4 or IPV6 address range in CIDR format. For IPV4 address range, refer to IETF + RFC 4632 [12]. For IPV6 address range, refer to IETF RFC 4291 [11]. + type: string + format: CIDR + + IdentifierInVim: + description: > + An identifier maintained by the VIM or other resource provider. It is + expected to be unique within the VIM instance. + type: string + + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + #TODO: How to express "any additional attributes"? + + ResourceHandle: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. Information about the resource + is available from the VIM. + properties: + vimConnectionId: + description: > + Identifier of the VIM connection to manage the resource. This + attribute shall only be supported and present if VNF-related resource + management in direct mode is applicable. The applicable + "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the "vimConnectionInfo" + attribute of the "VnfInstance" structure. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifier of the entity responsible for the management of the + resource. This attribute shall only be supported and present when + VNF-related resource management in indirect mode is applicable. The + identification scheme is outside the scope of the present document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + Identifier of the resource in the scope of the VIM or the resource + provider. + $ref: "#/definitions/IdentifierInVim" + vimLevelResourceType: + description: > + Type of the resource in the scope of the VIM or the resource + provider. + type: string + #TODO: Note of Table 4.4.1.7-1 + + CpProtocolData: + description: > + This type represents network protocol data. + type: object + required: + - layerProtocol + properties: + layerProtocol: + description: > + Identifier of layer(s) and protocol(s). + Permitted values: IP_OVER_ETHERNET. + type: string + enum: + - IP_OVER_ETHERNET + ipOverEthernet: + description: > + Network address data for IP over Ethernet to + assign to the extCP instance. Shall be + present if layerProtocol is equal to + "IP_OVER_ETHERNET", and shall be absent otherwise. + $ref: "#/definitions/IpOverEthernetAddressData" + + IpOverEthernetAddressData: + description: > + This type represents network address data for IP over Ethernet. + type: object + properties: + macAddress: + description: > + MAC address. If this attribute is not present, it shall be chosen by the NFV MANO. + $ref: "#/definitions/MacAddress" + ipAddresses: + description: > + List of IP addresses to assign to the CP instance. Each entry + represents IP address data for fixed or dynamic IP address + assignment per subnet. + If this attribute is not present, no IP address shall be assigned. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + fixedAddresses: + description: > + Fixed addresses to assign (from the subnet defined by + "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: array + items: + $ref: "#/definitions/IpAddress" + numDynamicAddresses: + description: > + Number of dynamic addresses to assign (from the subnet defined + by "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: integer + addressRange: + description: > + An IP address range to be used, e.g. in case of egress + connections. + In case this attribute is present, IP addresses from the range + will be used. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in the + VIM. + In case this attribute is present, IP addresses from that + subnet will be assigned; otherwise, IP addresses not bound to + a subnet will be assigned. + $ref: "#/definitions/IdentifierInVim" + + ExtVirtualLinkData: + description: > + This type represents an external VL. It shall comply with the provisions defined in Table 6.5.3.26-1. + type: object + required: + - resourceId + - extCps + properties: + extVirtualLinkId: + description: > + The identifier of the external VL instance, if provided. + $ref: "#/definitions/Identifier" + vimId: + description: > + Identifier of the VIM that manages this resource. This + attribute shall only be supported and present if VNFrelated + resource management in direct mode is applicable. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management of + this resource. + This attribute shall only be supported and present if + VNF-related resource management in indirect mode is + applicable. The identification scheme is outside the + scope of the present document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + The identifier of the resource in the scope of the VIM or + the resource provider. + $ref: "#/definitions/IdentifierInVim" + extCps: + description: > + External CPs of the VNF to be connected to this external VL. + type: array + items: + $ref: "#/definitions/VnfExtCpData" + extLinkPorts: + description: > + Externally provided link ports to be used to connect + external connection points to this external VL. + type: array + items: + $ref: "#/definitions/ExtLinkPortData" + + ExtManagedVirtualLinkData: + description: > + This type represents an externally-managed internal VL. + It shall comply with the provisions defined in Table 6.5.3.27-1. + type: object + required: + - virtualLinkDescId + - resourceId + properties: + extManagedVirtualLinkId: + description: > + The identifier of the externally-managed internal VL + instance, if provided. + $ref: "#/definitions/Identifier" + virtualLinkDescId: + description: > + The identifier of the VLD in the VNFD for this VL. + $ref: "#/definitions/IdentifierInVnfd" + vimId: + description: > + Identifier of the VIMthat manage this resource. This + attribute shall only be supported and present if VNFrelated + resource management in direct mode is applicable. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management of + this resource. This attribute shall only be supported and present if + VNF-related resource management in indirect mode is + applicable. The identification scheme is outside the + scope of the present document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + The identifier of the resource in the scope of the VIM or + the resource provider. + $ref: "#/definitions/IdentifierInVim" + + VnfExtCpData: + description: > + This type represents configuration information for external CPs created + from a CPD. + type: object + required: + - cpdId + properties: + cpdId: + description: > + The identifier of the CPD in the VNFD. + $ref: "#/definitions/IdentifierInVnfd" + cpConfig: + description: > + List of instance data that need to be configured on the CP instances + created from the respective CPD. + type: array + items: + $ref: "#/definitions/VnfExtCpConfig" + + ExtLinkPortData: + description: > + This type represents an externally provided link port to be used to + connect an external connection point to an external VL. + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + Identifier of this link port as provided by the entity that has + created the link port. + $ref: "#/definitions/Identifier" + resourceHandle: + description: > + Reference to the virtualised resource realizing this link port. + $ref: "#/definitions/ResourceHandle" + + VnfExtCpConfig: + description: > + This type represents an externally provided link port or network address + information per instance of an external connection point. In case a link + port is provided, the VNFM shall use that link port when connecting the + external CP to the external VL. In a link port is not provided, the VNFM + shall create a link port on the external VL, and use that link port to + connect the external CP to the external VL. + type: object + properties: + cpInstanceId: + description: > + Identifier of the external CP instance to which this set of + configuration parameters is requested to be applied. + Shall be present if this instance has already been created. + $ref: "#/definitions/IdentifierInVnf" + linkPortId: + description: > + Identifier of a pre-configured link port to which the external CP + will be associated. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + * The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + * At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + * If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + * If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + * If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + $ref: "#/definitions/Identifier" + cpProtocolData: + description: > + Parameters for configuring the network protocols on the link port + that connects the CP to a VL. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + * The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + * At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + * If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + * If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + * If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + type: array + items: + $ref: "#/definitions/CpProtocolData" + + PortRange: + description: > + The PortRange data type provides the lower and upper bounds of a range of Internet ports. + It shall comply with the provisions defined in Table 6.5.3.42-1. + type: object + required: + - lowerPort + - upperPort + properties: + lowerPort: + description: > + Identifies the lower bound of the port range. upperPort Integer + type: integer + upperPort: + description: > + Identifies the upper bound of the port range. + type: integer + + Mask: + description: > + The Mask data type identifies the value to be matched for a sequence of + bits at a particular location in a frame. It shall + comply with the provisions defined in Table 6.5.3.41-1. + type: object + required: + - startingPoint + - length + - value + properties: + startingPoint: + description: > + Indicates the offset between the last bit of the source + mac address and the first bit of the sequence of bits + to be matched. + type: integer + length: + description: > + Indicates the number of bits to be matched. + type: integer + value: + description: > + Provide the sequence of bit values to be matched. + type: string + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + SubscriptionAuthentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + * BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + Shall be present if it has not been provisioned out of band. + $ref: "#/definitions/Uri" \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6737bf1dc418d85699a0eb64304c5d3e4c6d000c --- /dev/null +++ b/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml @@ -0,0 +1,190 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + + responses: + 202-with-Location: + description: > + 202 Accepted + + The request was accepted for processing, but the processing has not + been completed. + + The response body shall be empty. + + The HTTP response shall include a "Location" HTTP + header that contains the URI of the newly-created + "NS lifecycle operation occurrence" resource + corresponding to the operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 202-with-Location-empty: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS LCM operation occurrence" resource corresponding to the + operation. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 409-another-lcm-operation-ongoing: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that another LCM operation is + ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-inconsistent-state: + description: > + Conflict + + Another request is in progress that prohibits the fulfilment of + the current request, or the current resource state is inconsistent + with the request. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-INSTANTIATED: + description: > + Conflict + + Error: The operation cannot be executed currently, due + to a conflict with the state of the NS LCM operation + occurrence resource. + Typically, this is due to the fact that the NS LCM + operation occurrence is not in FAILED_TEMP state, or + another error handling action is starting, such as retry or fail. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-not-FAILED_TEMP: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is + not in FAILED_TEMP state, or another error handling action is starting, + such as rollback or fail. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-NOT-INSTANTIATED: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + NOT-INSTANTIATED state, or that another lifecycle management operation + is ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cbcd81ac476facc7ee94d2fb7cd99befbe1a6dd0 --- /dev/null +++ b/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml @@ -0,0 +1,416 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 202: + description: > + Accepted + + The request was accepted for processing, but processing has not + been completed. The response shall have an empty payload body. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS LCM operation occurrence" resource corresponding to the + operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 303: + description: > + See Other + A subscription with the same callbackURI and the same filter already + exists and the policy of the VNFM is to not create redundant + subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It fhe request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-selector: + description: > + Error: Invalid attribute selector. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source + of the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the NS instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists-NS-LCM: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also be returned if the task is not supported for the NS LCM operation + occurrence represented by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS instance represented by the parent + resource, and that the task resource consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported-NS-LCM: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS LCM operation occurrence + represented by the parent resource, and that the task resource + consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the source of the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-not-found: + description: > + Not Found + Error: The API producer did not find a current + representation for the target resource or is not willing to + disclose that one exists. + The general cause for this error and its handling is + specified in clause 4.3.5.4, including rules for the + presence of the response body. + Specifically, in case of this task resource, the reason + can also be that the task is not supported for the NS + LCM operation occurrence represented by the parent + source, and that the task resource consequently + does not exist. + In this case, the response body shall be present, and + shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about + the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + Not Acceptable + If the Accept HTTP header does not contain at least one name of + a content type that is acceptable to the API producer, the API + producer shall respond with this response code. The + ProblemDetails structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 412: + description: > + Precondition Failed + A precondition given in an HTTP request header is not fulfilled. + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. The response body should + contain a ProblemDetails structure, in which the "detail" attribute + should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416: + description: > + Requested Range Not Satisfiable + This code is returned if the requested byte range in the + Range HTTP header is not present in the requested resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 422: + description: > + Unprocessable Entity + If the payload body of a request contains syntactically correct + data (e.g. well-formed JSON) but the data cannot be processed + (e.g. because it fails validation against a schema), the API + producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of the + problem. + NOTE 2: This error response code is only applicable for methods + that have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond withthis + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml index f043ac9bad8b778c509930fa14b95cf72d09b4a1..bea3ace7bfdd2bf300d183d05147f6d4c144e329 100644 --- a/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml @@ -1,10 +1,10 @@ swagger: "2.0" info: - version: "2.4.1" - title: DRAFT - SOL005 - NS Performance Management Interface + version: "1.0.0" + title: SOL005 - NS Performance Management Interface description: > - DRAFT - SOL005 - NS Performance Management Interface + SOL005 - NS Performance Management Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI @@ -17,20 +17,1203 @@ info: name: "NFV-SOL WG" externalDocs: description: ETSI GS NFV-SOL 005 V2.4.1 - url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf + url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf basePath: "/nspm/v1" - schemes: - https - consumes: - "application/json" produces: - - "application/json" - + - "application/json" paths: - /resource: +############################################################################### +# PM Jobs # +############################################################################### + '/pm_jobs': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.2 + post: + summary: Create a PM job. + description: > + The POST method creates a PM job. + This method shall follow the provisions specified in the + Tables 7.4.2.3.1-1 and 7.4.2.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: "CreatePmJobRequest" + in: "body" + required: true + schema: + type: "object" + required: + - "CreatePmJobRequest" + properties: + CreatePmJobRequest: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/CreatePmJobRequest" + description: > + The VNF creation parameters. + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + 201 Created + + The PM job was created successfully. + The response body shall contain a representation of + the created PM job resource, as defined in clause 7.5.2.7. + The HTTP response shall include a "Location" HTTP + header that points to the created PM job resource. + schema: + type: "object" + properties: + PmJob: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmJob" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + get: + summary: Query PM jobs. + description: > + "The client can use this method to retrieve information about PM jobs" + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PmJob and in data types referenced from it + shall be supported in attribute-based filtering parameters" + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + "Include all complex attributes in the response. See clause 4.3.3 for details. The + NFVO shall support this parameter" + - name: "include" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be included into the response. See clause 4.3.3 for details. The + NFVO should support this parameter" + - name: "exclude" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be excluded from the response. See clause 4.3.3 for details. + The NFVO should support this parameter." + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + "Indicates to exclude the following complex attributes from the response. + See clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the PmJob structure in the response + body if this parameter is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: + reports." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Information about zero or more PM jobs was queried successfully. + The response body shall contain representations of + zero or more PM jobs, as defined in clause 7.5.2.7 + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + PmJob: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmJob" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual PM job # +############################################################################### + '/pm_jobs/{pmJobId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.3 + parameters: + - name: pmJobId + description: > + Identifier of the PM job. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new PM job resource. It can also be retrieved from the "id" attribute in the + payload body of that response. + in: path + type: string + required: true + get: + summary: Read a single PM job. + description: > + The client can use this method for reading an individual PM job. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Information about an individual PM job was queried successfully. + The response body shall contain a representation of + the PM job resource, as defined in clause 7.5.2.7. + schema: + type: "object" + properties: + PmJob: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmJob" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Delete a PM job. + description: > + This method terminates an individual PM job. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The PM job was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual performance report # +############################################################################### + '/pm_jobs/{pmJobId}/reports/{reportId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.4 + parameters: + - name: pmJobId + description: > + Identifier of the PM job. + in: path + type: string + required: true + - name: reportId + description: > + Identifier of the performance report. + in: path + type: string + required: true + get: + summary: Read an individual performance report. + description: > + The client can use this method for reading an individual performance + report. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Information of an individual performance report was read successfully. + The response body shall contain a representation of + the performance report resource, as defined in + clause 7.5.2.10. + schema: + type: "object" + properties: + PerformanceReport: + $ref: "definitions/NSPerfomananceManagement_def.yaml#/definitions/PerformanceReport" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Thresholds # +############################################################################### + '/thresholds': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5 + post: + summary: Create a threshold. + description: > + The POST method can be used by the client to create a threshold. + + This method shall follow the provisions specified in the + table 7.4.5.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: "CreateThresholdRequest" + in: "body" + required: true + schema: + type: "object" + required: + - "CreateThresholdRequest" + properties: + CreateThresholdRequest: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/CreateThresholdRequest" + description: > + Request parameters to create a threshold resource. + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + 201 Created + + A threshold was created successfully. + The response body shall contain a representation of + the created threshold resource, as defined in clause 7.5.2.9. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the created + threshold resource. + schema: + type: "object" + properties: + Threshold: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/Threshold" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" get: + summary: Query thresholds. + description: > + The client can use this method to query information about thresholds. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply filtering parameters. + All attribute names that appear in the Thresholds data type and in data types + referenced from it shall be supported in attribute-based filtering parameters. + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: 200: - description: Success \ No newline at end of file + description: > + 200 OK + + Information about zero or more thresholds was queried successfully. + The response body shall contain representations of + zero or more thresholds, as defined in clause 7.5.2.9. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + Threshold: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/Threshold" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual threshold # +############################################################################### + '/thresholds/{thresholdId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6 + parameters: + - name: thresholdId + description: > + Identifier of the threshold. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new threshold resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + type: string + required: true + get: + summary: Query a single threshold. + description: > + The client can use this method for reading an individual threshold. + This method shall follow the provisions specified in the + Tables 7.4.6.3.2-1 and 7.4.6.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Information about an individual threshold was queried successfully. + The response body shall contain a representation of + the threshold, as defined in clause 7.5.2.9. + schema: + type: "object" + properties: + Threshold: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/Threshold" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Delete a threshold. + description: > + This method allows to delete a threshold. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The threshold was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7 + post: + summary: Subscribe to PM notifications. + description: > + The POST method creates a new subscription. + This method shall follow the provisions specified in the Tables 7.4.7.3.1-1 and 7.4.7.3.1-2 for URI query parameters, + request and response data structures, and response codes. + Creation of two subscription resources with the same callbackURI and the same filter can result in performance + degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the + same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide + to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing + the existing subscription resource with the same filter and callbackUri) + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "PmSubscriptionRequest" + properties: + PmSubscriptionRequest: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscriptionRequest" + description: > + Details of the subscription to be created. + responses: + 201: + description: > + 201 Created + + The subscription was created successfully. + A representation of the created subscription resource + shall be returned in the response body, as defined in clause 7.5.2.3. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the created subscription resource. + schema: + type: "object" + properties: + PmSubscription: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscription" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 303: + $ref: "responses/SOL005_resp.yaml#/responses/303" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Query PM related subscriptions. + description: > + The client can use this method to query the list of active subscriptions to Performance management notifications + subscribed by the client. + This method shall follow the provisions specified in the Tables 7.4.7.3.2-1 and 7.4.7.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PmSubscription and in data types + referenced from it shall be supported in attribute-based filtering + parameters. + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + The list of subscriptions was queried successfully. + The response body shall contain the representations of + all active subscriptions of the functional block that + invokes the method, as defined in clause 7.5.2.3. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + PmSubscription: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.8 + parameters: + - name: subscriptionId + description: > + Identifier of the subscription. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new subscription resource. It can also be retrieved from the "id" attribute in the + payload body of that response. + in: path + type: string + required: true + get: + summary: Query a single PM related subscription. + description: > + The client can use this method for reading an individual subscription about Performance management notifications + subscribed by the client. + This method shall follow the provisions specified in the Tables 7.4.8.3.2-1 and 7.4.8.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + The subscription was read successfully. + The response body shall contain a representation of + the subscription resource, as defined in clause 7.5.2.3. + schema: + type: "object" + properties: + PmSubscription: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscription" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Terminate a subscription. + description: > + This method terminates an individual subscription. + This method shall follow the provisions specified in the + Tables 7.4.8.3.5-1 and 7.4.8.3.5-2 for URI query parameters, + request and response data structures, and response codes + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The subscription resource was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +################################################################################## +# Notification endpoint # +# Dummy URI is used for testing. # +# In real, resource URI is provided by the client when creating the subscription.# +################################################################################## + '/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.9 + post: + summary: Notify about PM related events + description: > + The POST method delivers a notification regarding a performance management event from the server to the client. + This method shall follow the provisions specified in the + Tables 7.4.9.3.1-1 and 7.4.9.3.1-2 for URI query parameters, + + parameters: + - name: PerformanceInformationAvailableNotification + description: > + Notification about performance information availability. + in: body + required: true + schema: + properties: + PerformanceInformationAvailableNotification: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PerformanceInformationAvailableNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-ThresholdCrossedNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.9 + post: + summary: Notify about PM related events + description: > + The POST method delivers a notification regarding a performance management event from the server to the client. + This method shall follow the provisions specified in the + Tables 7.4.9.3.1-1 and 7.4.9.3.1-2 for URI query parameters, + + parameters: + - name: ThresholdCrossedNotification + description: > + Notification about threshold crossing. + in: body + required: true + schema: + properties: + ThresholdCrossedNotification: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/ThresholdCrossedNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + get: + summary: Test the notification endpoint + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during + subscription. + This method shall follow the provisions specified in the + Tables 7.4.9.3.2-1 and 7.4.9.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The notification endpoint was tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/NSPerfomananceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/NSPerfomananceManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8acb95f7a68e49aab2a69821270e4c9e78b9bc0d --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/definitions/NSPerfomananceManagement_def.yaml @@ -0,0 +1,63 @@ +definitions: + PerformanceReport: + description: > + This type defines the format of a performance report provided by the NFVO + to the OSS/BSS as a result of collecting + performance information as part of a PM job. + The type shall comply with the provisions defined in Table 7.5.2.10-1. + type: object + required: + - entries + properties: + entries: + description: > + List of performance information entries. Each + performance report entry is for a given metric of a given + object (i.e. NS instance), but can include multiple + collected values. + type: array + items: + type: object + required: + - objectType + - objectInstanceId + - performanceMetric + - performanceValue + properties: + objectType: + description: > + Defines the object type for which performance + information is reported (i.e. NS type). The string value + shall be set to the nsdId of the NS instance to which the + performance information relates. + type: string + objectInstanceId: + description: > + The object instance for which the performance metric is + reported. + The object instances for this information element will be + NS instances. + $ref: "SOL005_def.yaml#/definitions/Identifier" + performanceMetric: + description: > + Name of the metric collected. + type: string + performanceValues: + description: > + List of performance values with associated timestamp. + type: array + items: + type: object + required: + - timeStamp + - performanceValue + properties: + timeStamp: + description: > + Time stamp indicating when the data was collected. + $ref: "SOL005_def.yaml#/definitions/DateTime" + value: + description: > + The type of the "performanceValue" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, + arrays or structures / Objects)) is outside the scope of the present document. + type: object \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerfomananceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerfomananceManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9bca92750fde07ab9b0dea96b43b0fd3e9f32834 --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerfomananceManagement_def.yaml @@ -0,0 +1,557 @@ +definitions: + CreatePmJobRequest: + description: > + This type represents a request to create a PM job. + It shall comply with the provisions defined in Table 7.5.2.6-1. + type: object + required: + - objectInstanceIds + - criteria + properties: + objectInstanceIds: + description: > + Identifiers of the NS instances for which + performance information is requested to be collected. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria of the collection of performance information. + $ref: "#/definitions/PmJobCriteria" + + PmJobCriteria: + description: > + This type represents collection criteria for PM jobs. + It shall comply with the provisions defined in Table 7.5.3.3-1. + type: object + required: + - collectionPeriod + - reportingPeriod + properties: + performanceMetric: + description: > + This defines the types of performance metrics + for the specified object instances. At least one + of the two attributes (performance metric or + group) shall be present. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/String" + performanceMetricGroup: + description: > + Group of performance metrics. + A metric group is a pre-defined list of metrics, + known to the producer that it can decompose to + individual metrics. At least one of the two + attributes (performance metric or group) shall + be present. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/String" + collectionPeriod: + description: > + Specifies the periodicity at which the producer + will collect performance information. The unit + shall be seconds. + At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance + data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be + equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods + within one reporting period are reported together. + In particular when choosing short collection and reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing entity. + type: UnsignedInt + default: 0 + reportingPeriod: + description: > + Specifies the periodicity at which the producer + will report to the consumer. + about performance information. The unit shall be seconds. + At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance + data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be + equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods + within one reporting period are reported together. + In particular when choosing short collection and reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing entity. + type: UnsignedInt + default: 0 + reportingBoundary: + description: > + Identifies a time boundary after which the + reporting will stop. The boundary shall allow a + single reporting as well as periodic reporting up + to the boundary. + $ref: "SOL005_def.yaml#/definitions/DateTime" + + PmJob: + description: > + This type represents a PM job. + type: object + required: + - id + - objectInstanceIds + - criteria + properties: + id: + description: > + Identifier of this PM job. + $ref: "SOL005_def.yaml#/definitions/Identifier" + objectInstanceIds: + description: > + Identifiers of the NS instances for which + performance information is collected. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria of the collection of performance information. + $ref: "#/definitions/PmJobCriteria" + reports: + description: > + Information about available reports collected by this PM job. + type: object + required: + - href + - readyTime + - _links + properties: + href: + description: > + The Uri where the report can be obtained. + $ref: "SOL005_def.yaml#/definitions/Uri" + readyTime: + description: > + The time when the report was made available. + $ref: "SOL005_def.yaml#/definitions/DateTime" + expiryTime: + description: > + The time when the report will expire. + $ref: "SOL005_def.yaml#/definitions/DateTime" + fileSize: + description: > + The size of the report file in bytes, if known. + type: integer + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + objects: + description: > + Links to resources representing the NS + instances for which performance information is + collected. Shall be present if the NS instance + information is accessible as a resource. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Link" + + CreateThresholdRequest: + description: > + This type represents a request to create a threshold. + type: object + required: + - objectInstanceId + - criteria + properties: + objectInstanceId: + description: > + Identifier of the NS instance associated with this threshold. + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria that define this threshold. + $ref: "#/definitions/ThresholdCriteria" + + Threshold: + description: > + This type represents a threshold. + type: object + required: + - id + - objectInstanceId + - criteria + - _links + properties: + id: + description: > + Identifier of this threshold resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + objectInstanceId: + description: > + Identifier of the NS instance associated with the threshold. + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria that define this threshold. + $ref: "#/definitions/ThresholdCriteria" + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + object: + description: > + Link to a resource representing the NS instance for + which performance information is collected. Shall be + present if the NS instance information is accessible as + a resource. + + ThresholdCriteria: + description: > + This type represents criteria that define a threshold. + type: object + required: + - performanceMetric + - thresholdType + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold, as specified in ETSI GS NFV-IFA 027). + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other attributes + are present in the data structure. + Permitted values: + * SIMPLE: Single-valued static threshold + In the present document, simple thresholds are defined. The + definition of additional threshold types is left for future + specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + required: + - thresholdValue + - hysteresis + properties: + thresholdValue: + description: > + The threshold value. Shall be represented as a floating point + number. + type: integer + hysteresis: + description: > + The hysteresis of the threshold. Shall be represented as a + non-negative floating point number. + A notification with crossing direction "UP" will be generated if + the measured value reaches or exceeds + "thresholdValue" + "hysteresis". A notification with crossing + direction "DOWN" will be generated if the measured value reaches + or undercuts "thresholdValue" - "hysteresis". + The hysteresis is defined to prevent storms of threshold + crossing notifications. When processing a request to create a + threshold, implementations should enforce a suitable minimum + value for this attribute (e.g. override the value or reject the + request). + type: integer + + PmSubscriptionRequest: + description: > + This type represents a subscription request. + type: object + required: + - callbackUri + properties: + filter: + description: > + Filter settings for this subscription, to define the subset of + all notifications this subscription relates to. A particular + notification is sent to the subscriber if the filter matches, + or if there is no filter. + $ref: "#/definitions/PmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + authentication: + description: > + Authentication parameters to conFigure the use of + Authorization when sending notifications corresponding + to this subscription, as defined in clause 4.5.3.4. + This attribute shall only be present if the subscriber + requires authorization of notifications.. + $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" + + PmNotificationsFilter: + description: > + This type represents a filter that can be used to subscribe for + notifications related to performance management events. It + shall comply with the provisions defined in Table 7.5.3.2-1. + At a particular nesting level in the filter structure, the following applies: + All attributes shall match in order for the filter + to match (logical "and" between different filter attributes). + If an attribute is an array, the attribute shall match if at least + one of the values in the array matches (logical "or" between the values of one filter attribute). + type: object + properties: + nsInstanceSubscriptionFilter: + description: > + Filter criteria to select NS instances about which to notify. + $ref: "SOL005_def.yaml#/definitions/NSInstanceSubscriptionFilter" + notificationTypes: + description: > + Match particular notification types. + Permitted values: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + The permitted values of the "notificationTypes" attribute are + spelled exactly as the names of the notification types to facilitate + automated code generation systems. + type: array + items: + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + PmSubscription: + description: > + This type represents a subscription. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier that identifies the subscription. + $ref: "SOL005_def.yaml#/definitions/Identifier" + filter: + description: > + Filter settings for this subscription, to define the subset of all + notifications this subscription relates to. A particular + notification is sent to the subscriber if the filter matches, or if + there is no filter. + $ref: "#/definitions/PmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + Version: + description: > + Software version of the VNF. This is + changed when there is any change to the + software included in the VNF package. + This information is copied from the VNFD. + It shall be present after the VNF package + content has been on-boarded and absent otherwise. + type: string + + Checksum: + description: > + This type represents the checksum of a VNF package or an artifact file. + required: + - algorithm + - hash + type: object + properties: + algorithm: + description: > + Name of the algorithm used to generate the checksum, + as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. + type: string + hash: + description: > + The hexadecimal value of the checksum. + type: string + Link: + type: "object" + + PerformanceInformationAvailableNotification: + description: > + This notification informs the receiver that performance information is available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - objectInstanceId + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is + sent multiple times due to multiple + subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to + "PerformanceInformationAvailableNotification" + for this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + objectInstanceId: + description: > + Identifier that identifies a NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - pmJob + - performanceReport + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + objectInstance: + description: > + Link to the resource representing the NS + instance to which the notified change applies. + Shall be present if the NS instance information + is accessible as a resource. + $ref: "SOL005_def.yaml#/definitions/Link" + pmJob: + description: > + Link to the resource that represents the PM job + for which performance information is available. + $ref: "SOL005_def.yaml#/definitions/Link" + performanceReport: + description: > + Link from which the available performance + information of data type "PerformanceReport" + (see clause 7.5.2.10) can be obtained. + This link should point to an "Individual + performance report" resource as defined in + clause 6.4.3a. + $ref: "SOL005_def.yaml#/definitions/Link" + + ThresholdCrossedNotification: + description: > + This type represents a notification that is sent when a threshold has been crossed. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - thresholdId + - crossingDirection + - objectInstanceId + - performanceMetric + - performanceValue + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is + sent multiple times due to multiple + subscriptions, the "id" attribute of all these + notifications shall have the same value.. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "ThresholdCrossedNotification " + for this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + thresholdId: + description: > + Identifier of the threshold which has been crossed. + $ref: "SOL005_def.yaml#/definitions/Identifier" + crossingDirection: + description: > + An indication of whether the threshold was crossed in upward or downward direction. + $ref: "#/definitions/CrossingDirectionType" + objectInstanceId: + description: > + Identifier that identifies a NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + performanceMetric: + description: > + Performance metric associated with the threshold. + type: string + performanceValue: + description: > + Value of the metric that resulted in threshold crossing. See note. + type: object + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - objectInstance + - threshold + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + objectInstance: + description: > + Link to the resource representing the NS + instance to which the notified change applies. + Shall be present if the NS instance information + is accessible as a resource.. + $ref: "SOL005_def.yaml#/definitions/Link" + threshold: + description: > + Link to the resource that represents the + threshold that was crossed. + $ref: "SOL005_def.yaml#/definitions/Link" + + CrossingDirectionType: + description: > + The enumeration CrossingDirectionType shall comply with the provisions. + Acceptable Values are: + UP - The threshold was crossed in upward direction. + DOWN - The threshold was crossed in downward direction. + type: string + enum: + - UP + - DOWN \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..28025f0b561bee8ac92a6c59e439806955f028f1 --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005_def.yaml @@ -0,0 +1,236 @@ + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + + String: + description: > + This type represents stack of string values + type: string + + Object: + description: > + This type represents stack of object values + type: object + + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. + In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions + defined in clause 4 of IETF RFC 7159. + type: object + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + IdentifierInVnfd: + description: > + Identifier of the software image. + type: string + + NSInstanceSubscriptionFilter: + description: > + This type represents subscription filter criteria to match NS instances. + type: object + properties: + nsdIds: + description: > + If present, match NS instances that were created + based on a NSD identified by one of the nsdId + values listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + vnfdIds: + description: > + If present, match NS instances that contain VNF + instances that were created based on a VNFD + identified by one of the vnfdId values listed in + this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + pnfdIds: + description: > + If present, match NS instances that contain + PNFs that are represented by a PNFD identified + by one of the pnfdId values listed in this + attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceIds: + description: > + If present, match NS instances with an instance + identifier listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceNames: + description: > + If present, match NS instances with a NS + Instance Name listed in this attribute. + type: array + items: + $ref: "#/definitions/String" + + SubscriptionAuthentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + - BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + - OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + - TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + Shall be present if it has not been provisioned out of band. + $ref: "#/definitions/Uri" \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/responses/SOL005_resp.yaml b/src/SOL005/NSPerformanceManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d5a535c04eb8a313d940e9a5edfd344231f7e891 --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/responses/SOL005_resp.yaml @@ -0,0 +1,245 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 303: + description: > + See Other. + A subscription with the same callbackURI and the + same filter already exits and the policy of the NFVO is + to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the existing + subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request. + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized. + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source + of the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the NS instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS instance represented by the parent + resource, and that the task resource consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the VNFD, the NFVO + shall respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416: + description: > + The byte range passed in the "Range" header did not + match any available byte range in the NSD file (e.g. + "access after end of file"). + The response body may contain a ProblemDetails structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond withthis + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 90208a43be8e3ffec18b56b19ae944848cc007c8..3b0a479427e45d00da8f947cd3db629169db16c1 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,10 +1,10 @@ swagger: "2.0" info: - version: "2.4.1" - title: DRAFT - SOL005 - VNF Package Management Interface + version: "1.0.0" + title: SOL005 - VNF Package Management Interface description: > - DRAFT - SOL005 - VNF Package Management Interface + SOL005 - VNF Package Management Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI @@ -19,18 +19,1351 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.4.1 url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf basePath: "/vnfpkgm/v1" - schemes: - https - consumes: - "application/json" produces: - - "application/json" - + - "application/json" paths: - /resource: +############################################################################### +# VNF Packages # +############################################################################### + '/vnf_packages': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.2 + get: + summary: Query VNF packages information. + description: > + The GET method queries the information of the VNF packages matching the filter. + This method shall follow the provisions specified in the + Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. The + OSS/BSS may supply filtering parameters. + All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall + be supported in attribute-based filtering parameters. + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + Include all complex attributes in the response. See clause 4.3.3 for details. The NFVO + shall support this parameter. + - name: "fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be included into the response. See clause 4.3.3 for details. The + NFVO should support this parameter. + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be excluded from the response. See clause 4.3.3 for details. The + NFVO should support this parameter. + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + Indicates to exclude the following complex attributes from the response. See clause 4.3.3 + for details. + The NFVO shall support this parameter. + The following attributes shall be excluded from the VnfPkgInfo structure in the response + body if this parameter is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: + - softwareImages + - additionalArtifacts + - userDefinedData + - checksum + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + Information of the selected VNF packages. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + VnfPkgInfo: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + post: + summary: Create a new individual VNF package resource. + description: > + The POST method creates a new individual VNF package resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "CreateVnfPkgInfoRequest" + properties: + CreateVnfPkgInfoRequest: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest" + description: > + IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2 + + responses: + 201: + description: > + 201 Created + + An individual VNF package resource has been created successfully. + The response body shall contain a representation of + the new individual VNF package resource, as defined + in clause 9.5.2.4. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the individual + VNF package resource. + schema: + properties: + VnfPkgInfo: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 +############################################################################### +# Individual VNF Package # +############################################################################### + '/vnf_packages/{vnfPkgId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.3 + parameters: + - name: "vnfPkgId" + description: > + Identifier of the VNF package. The identifier is allocated by the NFVO. + in: "path" + type: "string" + required: true + get: + summary: Read information about an individual VNF package. + description: > + The GET method reads the information of a VNF package. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + Information of the VNF package. + schema: + type: "object" + properties: + VnfPkgInfo: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + headers: + Content-Type: + type: "string" + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Delete an individual VNF package. + description: > + The DELETE method deletes an individual VNF Package resource. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The VNF package was deleted successfully. + The response body shall be empty. + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + patch: + summary: Update information about an individual VNF package. + description: > + "The PATCH method updates the information of a VNF package." + + "This method shall follow the provisions specified in the + Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters, + request and response data structures, and response codes." + parameters: + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "VnfPkgInfoModifications" + properties: + VnfPkgInfoModifications: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications" + description: > + Parameters for VNF package information modifications. + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + The operation was completed successfully. + The response body shall contain attribute + modifications for an "Individual VNF + package" resource + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + properties: + VnfPkgInfoModifications: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications" + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# VNFD in an individual VNF package # +############################################################################### + '/vnf_packages/{vnfPkgId}/vnfd': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.4 + parameters: + - name: vnfPkgId + description: > + Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. + in: path + type: string + required: true + get: + summary: Read VNFD of an on-boarded VNF package. + description: > + The GET method reads the content of the VNFD within a VNF package. + + The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the + form of multiple files, a ZIP file embedding these files shall be returned. If the VNFD is implemented as a single file, + either that file or a ZIP file embedding that file shall be returned. + The selection of the format is controlled by the "Accept" HTTP header passed in the GET request. + • If the "Accept" header contains only "text/plain" and the VNFD is implemented as a single file, the file shall + be returned; otherwise, an error message shall be returned. + • If the "Accept" header contains only "application/zip", the single file or the multiple files that make up the + VNFD shall be returned embedded in a ZIP file. + • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the + format to return for a single-file VNFD; for a multi-file VNFD, a ZIP file shall be returned. + The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the YAML files + representing the VNFD, and information necessary to navigate the ZIP file and to identify the file that is the entry point + for parsing the VNFD (such as TOSCA-meta or manifest files or naming conventions) are included. + This method shall follow the provisions specified in the Tables 9.4.4.3.2-1 and 9.4.4.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + On success, the content of the VNFD is returned. + The payload body shall contain a copy of the file + representing the VNFD or a ZIP file that contains the + file or multiple files representing the VNFD, as + specified above. + The "Content-Type" HTTP header shall be set + according to the format of the returned file, i.e. to + "text/plain" for a YAML file or to "application/zip" for a ZIP file. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + description: > + "406 Not AccepTable" + + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + description: > + "409 Conflict" + + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/406-state-conflict" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# VNF Package Content # +############################################################################### + '/vnf_packages/{vnfPkgId}/package_content': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.5 + parameters: + - name: "vnfPkgId" + description: > + Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. + in: "path" + required: true + type: "string" get: + summary: Fetch an on-boarded VNF package. + description: > + The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO. + This method shall follow the provisions specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: "Range" + in: "header" + required: false + type: "string" + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. responses: 200: - description: Success \ No newline at end of file + description: > + 200 OK + + On success, a copy of the VNF package file is returned. + The response body shall include a copy of the VNF package file. + The "Content-Type" HTTP header shall be set + according to the type of the file, i.e. to "application/zip" + for a VNF Package as defined in ETSI + GS NFV-SOL 004 [5]. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 409: + description: > + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + put: + summary: Upload a VNF package by providing the content of the VNF package. + description: > + The PUT method uploads the content of a VNF package. + This method shall follow the provisions specified in the + Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters, + request and response data structures, and response codes. + consumes: + - multipart/form-data + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - in: formData + name: file + required: false + type: file + description: > + The payload body contains a ZIP file that represents the VNF package. + The "Content-Type" HTTP header shall be set according to the + type of the file, i.e. to "application/zip" for a VNF Package as + defined in ETSI GS NFV-SOL 004 [5]. + responses: + 202: + description: > + 202 Accepted + + The VNF package was accepted for uploading, but the + processing has not been completed. It is expected to + take some time for processing. + The response body shall be empty. + 409: + description: > + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Upload VNF package from URI task # +############################################################################### + '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6 + post: + summary: Upload a VNF package by providing the address information of the VNF package. + description: > + The POST method provides the information for the NFVO to get the content of a VNF package. + This method shall follow the provisions specified in the + Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + + - name: "vnfPkgId" + description: > + Identifier of the VNF package. The identifier is allocated by the NFVO. + in: "path" + required: true + type: "string" + + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "UploadVnfPkgFromUriRequest" + properties: + UploadVnfPkgFromUriRequest: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest" + description: > + The payload body contains the address information based on + which the NFVO can obtain the content of the VNF package. + + responses: + 202: + description: > + 202 Accepted + + The information about the VNF package was received + successfully, but the on-boarding has not been + completed. It is expected to take some time for processing. + The response body shall be empty. + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual VNF package artifact # +############################################################################### + '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.7 + parameters: + - name: vnfPkgId + description: > + Identifier of the on-boarded VNF package. + The identifier is allocated by the NFVO. + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or + VnfPackageChangeNotification. + in: path + type: string + required: true + - name: artifactPath + description: > + Path of the artifact within the VNF package. + This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts" entry in + the body of the response to a GET request querying the "Individual VNF package" or the "VNF packages" + resource. + in: path + type: string + required: true + get: + summary: Fetch individual VNF package artifact. + description: > + The GET method fetches the content of an artifact within a VNF package. + This method shall follow the provisions specified in the + Tables 9.4.7.3.2-1 and 9.4.7.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + responses: + 200: + description: > + 200 OK + On success, the content of the artifact is returned. + The payload body shall contain a copy of the artifact file from + the VNF package, as defined by ETSI GS NFV-SOL 004. + The "Content-Type" HTTP header shall be set according to the + content type of the artifact file. If the content type cannot be + determined, the header shall be set to the value + "application/octet-stream". + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + + 206: + description: > + Partial Content. + On success, if the NFVO supports range requests, a single + consecutive byte range from the content of the VNF package file is + returned. + The response body shall contain the requested part of the VNF + package file. + The "Content-Range" HTTP header shall be provided according to + IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for + the "200 OK" response. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################## +# Subscriptions # +############################################################################### + '/subscriptions': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.8 + post: + summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages. + description: > + The POST method creates a new subscription. + This method shall follow the provisions specified in the Tables 9.4.8.3.1-1 and 9.4.8.3.1-2 for URI query parameters, + request and response data structures, and response codes. + Creation of two subscription resources with the same callbackURI and the same filter can result in performance + degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the + same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide + to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing + the existing subscription resource with the same filter and callbackUri). + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "PkgmSubscriptionRequest" + properties: + PkgmSubscriptionRequest: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscriptionRequest" + description: > + Representation of the created subscription resource. + The HTTP response shall include a "Location" HTTP header that + points to the created subscription resource. + + responses: + 201: + description: > + 201 Created + + Representation of the created subscription resource. + The HTTP response shall include a "Location" + HTTP header that points to the created subscription resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + PkgmSubscription: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + 303: + $ref: "responses/SOL005_resp.yaml#/responses/303" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Query multiple subscriptions. + description: > + The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used + e.g. for resynchronization after error situations. + This method shall follow the provisions specified in the + Tables 9.4.7.8.2-1 and 9.4.8.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query + string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PkgmSubscription and in data types + referenced from it shall be supported in attribute-based filtering parameters + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + Active subscriptions of the functional block that invokes the method. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + type: array + items: + properties: + PkgmSubscription: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.9 + parameters: + - name: subscriptionId + description: > + Identifier of this subscription. + This identifier can be retrieved from the resource referenced by + the "Location" HTTP header in the response to a POST request + creating a new subscription resource. It can also be retrieved from + the "id" attribute in the payload body of that response. + in: path + type: string + required: true + get: + summary: Read an individual subscription resource. + description: > + Query Subscription Information + The GET method reads an individual subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + Representation of the subscription resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + schema: + properties: + PkgmSubscription: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Terminate a subscription. + description: > + The DELETE method terminates an individual subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + No Content + + The subscription resource was deleted successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +################################################################################## +# Notification endpoint # +# Dummy URI is used for testing. # +# In real, resource URI is provided by the client when creating the subscription.# +################################################################################## + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageOnboardingNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.10 + post: + summary: Notify about VNF package onboarding or change + description: > + The POST method delivers a notification from the server to the client. + This method shall follow the provisions specified in the + Tables 9.4.10.3.1-1 and 9.4.10.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: VnfPackageOnboardingNotification + description: > + A notification about on-boarding of a VNF package. + in: body + required: true + schema: + properties: + VnfPackageOnboardingNotification: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPackageOnboardingNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.10 + post: + summary: Notify about VNF package onboarding or change + description: > + The POST method delivers a notification from the server to the client. + This method shall follow the provisions specified in the + Tables 9.4.10.3.1-1 and 9.4.10.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: VnfPackageChangeNotification + description: > + A notification about changes of status in a VNF package. + in: body + required: true + schema: + properties: + VnfPackageChangeNotification: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPackageChangeNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + The notification was delivered successfully. + headers: + WWW-Authenticate: + type: "string" + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + get: + summary: Test the notification endpoint + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during + subscription. + This method shall follow the provisions specified in the Tables 9.4.10.3.2-1 and 9.4.10.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The notification endpoint was tested successfully. + The response body shall be empty. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9a511cdb122b4f74448499acbebbb72a297db83b --- /dev/null +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml @@ -0,0 +1,658 @@ +definitions: + VnfPkgInfo: + type: object + required: + - id + - onboardingState + - operationalState + - usageState + properties: + id: + description: > + Identifier of the VNF package. This identifier is allocated by the NFVO. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + This identifier, which is managed by the + VNF provider, identifies the VNF package and the VNFD in a globally unique way. + It is copied from the VNFD of the on boarded VNF package. It shall be present + after the VNF package content has been on-boarded and absent otherwise. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + Provider of the VNF package and the VNFD. This information is copied from the VNFD. + It shall be present after the VNF package content has been on-boarded and absent otherwise. + type: string + vnfProductName: + description: > + Name to identify the VNF product.Invariant for the VNF product lifetime. + This information is copied from the VNFD. It + shall be present after the VNF package content has been on-boarded and absent otherwise. + type: string + vnfSoftwareVersion: + description: > + Software version of the VNF. This is + changed when there is any change to the + software included in the VNF package. + This information is copied from the VNFD. + It shall be present after the VNF package + content has been on-boarded and absent otherwise. + $ref: "SOL005_def.yaml#/definitions/Version" + vnfdVersion: + description: > + The version of the VNFD. This information + is copied from the VNFD. It shall be + present after the VNF package content + has been on-boarded and absent otherwise. + $ref: "SOL005_def.yaml#/definitions/Version" + checksum: + description: > + Checksum of the on-boarded VNF + package. It shall be present after the VNF + package content has been on-boarded and absent otherwise. + $ref: "SOL005_def.yaml#/definitions/Checksum" + softwareImages: + description: > + Information about VNF package artifacts that are software images. + This attribute shall not be present before the VNF package content is on-boarded. + Otherwise, this attribute shall be present unless it has been requested to be + excluded per attribute selector. + type: "array" + items: + $ref: "#/definitions/VnfPackageSoftwareImageInfo" + additionalArtifacts: + description: > + Information about VNF package artifacts + contained in the VNF package that are not software images. + This attribute shall not be present before + the VNF package content is on-boarded. + Otherwise, this attribute shall be present if + the VNF package contains additional artifacts. + type: "array" + items: + $ref: "#/definitions/VnfPackageArtifactInfo" + onboardingState: + description: > + On-boarding state of the VNF package. + $ref: "#/definitions/PackageOnboardingStateType" + operationalState: + description: > + Operational state of the VNF package. + $ref: "#/definitions/PackageOperationalStateType" + usageState: + description: > + Usage state of the VNF package. + $ref: "#/definitions/PackageUsageStateType" + userDefinedData: + description: > + Usage state of the VNF package. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + _links: + type: object + description: > + Links to resources related to this resource. + required: + - self + - packageContent + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + vnfd: + description: > + Link to the VNFD resource. This link shall + be present after the VNF package content + is on-boarded. + $ref: "SOL005_def.yaml#/definitions/Link" + packageContent: + description: > + Link to the "VNF package content" resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + VnfPackageArtifactInfo: + description: > + This type represents an artifact other than a software image which is contained in a VNF package. + It shall comply with provisions defined in Table 9.5.3.3-1. + required: + - artifactPath + - checksum + type: object + properties: + artifactPath: + description: > + Path in the VNF package, which identifies the artifact + and also allows to access a copy of the artifact. + $ref: "SOL005_def.yaml#/definitions/String" + checksum: + description: > + Checksum of the artifact file. + $ref: "SOL005_def.yaml#/definitions/Checksum" + metadata: + description: > + The metadata of the artifact that are available in the + VNF package, such as Content type, size, creation date, etc. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + PkgmLinks: + description: > + This type represents the links to resources that a VNF package management notification can contain. + required: + - vnfPackage + - subscription + type: object + properties: + vnfPackage: + description: > + Link to the resource representing the VNF package to + which the notified change applies, i.e. the individual on boarded + VNF package resource that represents the VNF package. + $ref: "SOL005_def.yaml#/definitions/Link" + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + + VnfPackageSoftwareImageInfo: + description: > + This type represents an artifact contained in a VNF package which represents a software image. + required: + - id + - name + - provider + - version + - checksum + - containerFormat + - diskFormat + - createdAt + - minDisk + - minRam + - size + - imagePath + type: object + properties: + id: + description: > + Name of the algorithm used to generate the checksum, + as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + name: + description: > + Name of the software image. + type: string + provider: + description: > + Provider of the software image. + type: string + version: + description: > + Version of the software image. + $ref: "SOL005_def.yaml#/definitions/Version" + checksum: + description: > + Checksum of the software image file. + $ref: "SOL005_def.yaml#/definitions/Checksum" + containerFormat: + description: > + Container format indicates whether the software image + is in a file format that also contains meta-data about the actual software. + Permitted values: + - AKI: a kernel image format + - AMI: a machine image format + - ARI: a ram disk image format + - BARE: the image does not have a container or meta-data envelope + - DOCKER: docker container format + - OVA: OVF package in a tar file + - OVF: OVF container format + type: string + enum: + - AKI + - AMI + - ARI + - BARE + - DOCKER + - OVA + - OVF + diskFormat: + description: > + Disk format of a software image is the format of the + underlying disk image. + Permitted values: + - AKI: a kernel image format + - AMI: a machine image format + - ARI: a ramdisk image format + - ISO: an archive format for the data contents of an + optical disc, such as CD-ROM + - QCOW2: a common disk image format, which can + expand dynamically and supports copy on write + - RAW: an unstructured disk image format + - VDI: a common disk image format + - VHD: a common disk image format + - VHDX: enhanced version of VHD format + - VMDK: a common disk image format + type: string + enum: + - AKI + - AMI + - ARI + - ISO + - QCOW2 + - RAW + - VDI + - VHD + - VHDX + - VMDK + createdAt: + description: > + Time when this software image was created. + $ref: "SOL005_def.yaml#/definitions/DateTime" + minDisk: + description: > + The minimal disk for this software image in bytes. + type: integer + minRam: + description: > + The minimal RAM for this software image in bytes. + type: integer + size: + description: > + Size of this software image in bytes. + type: integer + userMetadata: + description: > + User-defined data. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + imagePath: + description: > + Path in the VNF package, which identifies the image + artifact and also allows to access a copy of the image + artifact. + type: string + + NsdOperationalStateType: + type: "string" + description: > + "The enumeration NsdOperationalStateType shall comply with the provisions + defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational + state of the resource.ENABLED = The operational state of the resource + is enabled. DISABLED = The operational state of the resource is disabled." + enum: + - "ENABLED" + - "DISABLED" + PackageOperationalStateType: + type: "string" + description: > + "The enumeration PackageOperationalStateType shall + comply with the provisions defined in Table 9.5.4.4-1." + Acceptable values are: + -ENABLED - The VNF package is enabled, i.e. it can be used for instantiation of new VNF instances. + -DISABLED - The VNF package is disabled, i.e. it cannot be used for further VNF instantiation requests (unless and until the VNF package is re-enabled). + enum: + - "ENABLED" + - "DISABLED" + PackageOnboardingStateType: + description: > + The enumeration PackageOnboardingStateType shall comply with the provisions defined in Table 9.5.4.3-1. + Permitted values: + - CREATED: The VNF package resource has been created. + - UPLOADING: The associated VNF package content is being uploaded. + - PROCESSING: The associated VNF package content is being processed, e.g. validation. + - ONBOARDED: The associated VNF package content is successfully on-boarded. + type: string + enum: + - CREATED + - UPLOADING + - PROCESSING + - ONBOARDED + PackageUsageStateType: + type: "string" + description: > + "The enumeration PackageUsageStateType shall comply with the provisions. + Acceptable values are: + -IN_USE - VNF instances instantiated from this VNF package exist. + -NOT_IN_USE - No existing VNF instance is instantiated from this VNF package" + enum: + - "IN_USE" + - "NOT_IN_USE" + + CreateVnfPkgInfoRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + IndividualVNF package resource creation parameters, as defined + in clause 9.5.2.2. + VnfPkgInfoModifications: + description: > + This type represents modifications to the information of a VNF package. + It shall comply with the provisions defined in Table 9.5.2.3-1. + properties: + operationalState: + description: > + New value of the operational state of the on-boarded + instance of the VNF package. + $ref: "#/definitions/PackageOperationalStateType" + userDefinedData: + description: > + User defined data to be updated. For existing keys, the value is replaced. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + UploadVnfPkgFromUriRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "The payload body contains the address information based on + which the NFVO can obtain the content of the VNF package" + + PkgmSubscription: + description: > + This type represents a subscription related to notifications about VNF package management. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier of this subscription resource + $ref: "SOL005_def.yaml#/definitions/Uri" + filter: + description: > + Filter settings for this subscription, to define the subset + of all notifications this subscription relates to. A + particular notification is sent to the subscriber if the filter + matches, or if there is no filter. + $ref: "#/definitions/PkgmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to + $ref: "SOL005_def.yaml#/definitions/Uri" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + PkgmSubscriptionRequest: + description: > + This type represents a subscription request related to VNF package management + notifications about VNF package on boarding or changes. + type: object + required: + - callbackUri + properties: + filter: + description: > + Filter settings for this subscription, to define the subset + of all notifications this subscription relates to. A + particular notification is sent to the subscriber if the filter + matches, or if there is no filter. + $ref: "#/definitions/PkgmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + authentication: + description: > + Authentication parameters to conFigure the use of + authorization when sending notifications corresponding + to this subscription, as defined in clause 4.5.3.4. + This attribute shall only be present if the subscriber + requires authorization of notifications. + $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" + + PkgmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications related to VNF package management. + At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter + to match (logical "and" between different filter attributes). If an attribute is an array, the attribute shall match if at least + one of the values in the array matches (logical "or" between the values of one filter attribute). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. + Permitted values: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + type: string + enum: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + vnfProductsFromProviders: + description: > + If present, match VNF packages that contain VNF products from certain providers. + type: array + items: + type: object + required: + - vnfProvider + properties: + vnfProvider: + description: > + Name of the VNFprovider to match. + type: string + vnfProducts: + description: > + If present, match VNF packages that contain + VNF products with certain product names, from + one particular provider. + type: array + items: + type: object + required: + - vnfProductName + properties: + vnfProductName: + description: > + Name of the VNF product to match. + type: string + versions: + description: > + If present, match VNF packages that contain + VNF products with certain versions and a + certain product name, from one particular + provider. + type: array + items: + type: object + required: + - vnfSoftwareVersion + properties: + vnfSoftwareVersion: + description: > + VNF software version to match + $ref: "SOL005_def.yaml#/definitions/Version" + vnfdVersions: + description: > + If present, match VNF packages that contain + VNF products with certain VNFD versions, a + certain software version and a certain product + name, from one particular provider. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Version" + + vnfdId: + description: > + Match VNF packages with a VNFD identifier + listed in the attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfPkgId: + description: > + Match VNF packages with a package identifier + listed in the attribute. + May be present if the "notificationTypes" + attribute contains the value + "VnfPackageChangeNotification", and shall be + absent otherwise. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + operationalState: + description: > + Match VNF packages with a package identifier + listed in the attribute. + May be present if the "notificationTypes" + attribute contains the value + "VnfPackageChangeNotification", and shall be + absent otherwise. + type: array + items: + $ref: "#/definitions/PackageOperationalStateType" + usageState: + description: > + Match particular usage state of the on-boarded VNF package. + May be present if the "notificationTypes" + attribute contains the value + "VnfPackageChangeNotification", and shall be + absent otherwise. + type: array + items: + $ref: "#/definitions/PackageUsageStateType" + + VnfPackageOnboardingNotification: + description: > + This type represents a VNF package management notification, which informs the receiver that the on boarding process + of a VNF package incomplete and the package is ready for use. A change of the on-boarding state before the VNF + package is on-boarded is not reported. It shall comply with the provisions defined in Table 9.5.2.8-1. The support of this + notification is mandatory. The notification shall be triggered by the NFVO when the value of the "onboardingState" + attribute of a new VNF package has changed to "ONBOARDED". + type: object + required: + - id + - notificationType + - timeStamp + - vnfPkgId + - vnfdId + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent + multiple times due to multiple subscriptions, the "id" + attribute of all these notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "VnfPackageOnboardingNotification" for + this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + vnfPkgId: + description: > + Identifier of the on-boarded VNF package. This identifier + is allocated by the NFVO. + Its value is the same as the value of the "id" attribute of + the related "Individual VNF package" resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + This identifier, which is managed by the VNF provider, + identifies the VNF package and the VNFD in a globally + unique way. + It is copied from the VNFD of the on-boarded VNF package. + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/PkgmLinks" + + VnfPackageChangeNotification: + description: > + This type represents a VNF package management notification, which informs the receiver of a change of the status in an + on-boarded VNF package. Only changes in the "operationalState" attribute of an on-boarded VNF package and the + deletion of the VNF package will be reported. Change in the "usageState" and "onboardingState" attributes are not + reported. The notification shall comply with the provisions defined in Table 9.5.2.9-1. The support of this notification is + mandatory. The notification shall be triggered by the NFVO when there is a change in the status of an onboarded VNF + package, as follows. + • The "operationalState" attribute of a VNF package has changed, and the "onboardingState" attribute of the + package has the value "ONBOARDED". + • The on-boarded VNF package has been deleted. + type: object + required: + - id + - notificationType + - timeStamp + - vnfPkgId + - vnfdId + - changeType + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent + multiple times due to multiple subscriptions, the "id" + attribute of all these notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "VnfPackageChangeNotification" for this + notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + vnfPkgId: + description: > + Identifier of the on-boarded VNF package. This identifier + is allocated by the NFVO. + Its value is the same as the value of the "id" attribute of + the related "Individual VNF package" resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + Identifier of the VNFD contained in the VNF package, + which also identifies the VNF package. This identifier is + allocated by the VNF provider and copied from the VNFD. + $ref: "SOL005_def.yaml#/definitions/Identifier" + changeType: + description: > + The type of change of the VNF package. + $ref: "#/definitions/PackageChangeType" + operationalState: + description: > + New operational state of the VNF package. + Only present when changeType is OP_STATE_CHANGE. + $ref: "#/definitions/PackageOperationalStateType" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/PkgmLinks" + + PackageChangeType: + type: "string" + description: > + The enumeration PackageChangeType shall comply with the provisions defined in Table 9.5.4.6-1. + Permitted Values: + - OP_STATE_CHANGE: The "operationalState" attribute has been changed. + - PKG_DELETE: The VNF package has been deleted. + enum: + - "OP_STATE_CHANGE" + - "PKG_DELETE" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4542b7ed22733fba8a4e9ec850dbf1678dfd1e13 --- /dev/null +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml @@ -0,0 +1,214 @@ + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + + String: + description: > + This type represents stack of string values + type: string + + Object: + description: > + This type represents stack of object values + type: object + + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. + In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions + defined in clause 4 of IETF RFC 7159. + type: object + + ProblemDetails: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + IdentifierInVnfd: + description: > + Identifier of the software image. + type: string + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + Version: + description: > + Software version of the VNF. This is + changed when there is any change to the + software included in the VNF package. + This information is copied from the VNFD. + It shall be present after the VNF package + content has been on-boarded and absent otherwise. + type: string + Checksum: + description: > + This type represents the checksum of a VNF package or an artifact file. + required: + - algorithm + - hash + type: object + properties: + algorithm: + description: > + Name of the algorithm used to generate the checksum, + as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. + type: string + hash: + description: > + The hexadecimal value of the checksum. + type: string + + SubscriptionAuthentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + * BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + Shall be present if it has not been provisioned out of band. + $ref: "#/definitions/Uri" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml b/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..745bf878b3771c819038085f1fff516ba3017b1c --- /dev/null +++ b/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml @@ -0,0 +1,426 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 202: + description: > + Accepted + + The request was accepted for processing, but processing has not + been completed. The response shall have an empty payload body. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS Descriptor operation occurrence" resource corresponding to the + operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 206: + description: > + Partial Content. + + On success, if the NFVO supports range requests, a + single consecutive byte range from the content of the + NSD file is returned. + The response body shall contain the requested part of + the NSD file. + The "Content-Range" HTTP header shall be provided + according to IETF RFC 7233 [23]. + The "Content-Type" HTTP header shall be set as + defined above for the "200 OK" response. + headers: + Content-Range: + type: "string" + Content-Type: + type: "string" + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 303: + description: > + See Other + A subscription with the same callbackURI and the same filter already + exists and the policy of the VNFM is to not create redundant + subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request. + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-selector: + description: > + Bad Request + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source + of the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the NS instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists-NSD: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also be returned if the task is not supported for the NS Descriptor operation + occurrence represented by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS instance represented by the parent + resource, and that the task resource consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported-NSD: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS Descriptor operation occurrence + represented by the parent resource, and that the task resource + consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the VNFD, the NFVO + shall respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 412: + description: > + Precondition Failed + A precondition given in an HTTP request header is not fulfilled. + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. The response body should + contain a ProblemDetails structure, in which the "detail" attribute + should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416: + description: > + Requested Range Not Satisfiable + + The byte range passed in the "Range" header did not + match any available byte range in the VNF package + file (e.g. "access after end of file"). + The response body may contain a ProblemDetails structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 422: + description: > + Un-processable Entity + If the payload body of a request contains syntactically correct + data (e.g. well-formed JSON) but the data cannot be processed + (e.g. because it fails validation against a schema), the API + producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of the + problem. + NOTE 2: This error response code is only applicable for methods + that have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond withthis + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml b/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7d7e9d93c0f30c2b92e88c1ad92dcce960be6bda --- /dev/null +++ b/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml @@ -0,0 +1,291 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. The response body shall be empty. + The HTTP response shall include a "Location" HTTP + header that contains the URI of the newly-created + "NS lifecycle operation occurrence" resource + corresponding to the operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 202-with-Location-empty: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS Descriptor operation occurrence" resource corresponding to the + operation. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 406-state-conflict: + description: > + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409: + description: > + Conflict. + + Error: The operation cannot be executed + currently, due to a conflict with the state of + the resource. + Typically, this is due to any of the following + scenarios: + - Disable a VNF package resource of + hich the operational state is not + ENABLED + - Enable a VNF package resource of + which the operational state is not + DISABLED + The response body shall contain a + ProblemDetails structure, in which the + "detail" attribute shall convey more + information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 409-another-nsd-operation-ongoing: + description: > + Conflict. + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that another Descriptor operation is + ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-inconsistent-state: + description: > + Conflict. + + Another request is in progress that prohibits the fulfilment of + the current request, or the current resource state is inconsistent + with the request. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-INSTANTIATED: + description: > + Conflict. + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + INSTANTIATED state. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-not-FAILED_TEMP: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is + not in FAILED_TEMP state, or another error handling action is starting, + such as rollback or fail. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-NOT-INSTANTIATED: + description: > + Conflict. + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + NOT-INSTANTIATED state, or that another lifecycle management operation + is ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-ONBOARDING: + description: > + Conflict. + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" + of the VNF package has a value different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-ONBOARDING-NOT-CREATED: + description: > + Conflict. + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the on boarding + state of the VNF package resource is not CREATED . + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file