--- 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" license: name: "ETSI Forge copyright notice" url: "https://forge.etsi.org/etsi-forge-copyright-notice.txt" consumes: - "application/json" produces: - "application/json" paths: /ns_descriptors: 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." 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." 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" 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." 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." 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." 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" 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: "body" in: "body" required: true schema: type: "object" required: - "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." responses: 201: description: "Status 201" 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" 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." 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}: 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." 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." 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." schema: $ref: "#/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: 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." 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" 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: [] 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 schema: type: "object" required: - "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: 200: description: "Status 200" schema: $ref: "#/definitions/NsdInfoModifications" 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." 409: description: "Status 409" schema: $ref: "#/definitions/ProblemDetails" 412: description: "Status 412" schema: $ref: "#/definitions/ProblemDetails" parameters: - name: "nsdInfoId" in: "path" required: true type: "string" /ns_descriptors/{nsdInfoId}/nsd_content: 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." parameters: - name: "Accept" 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" 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" 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." 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" 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." 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." 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" 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." 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." 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." 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: [] 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" required: true schema: type: "object" 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." 204: description: "The NSD content was successfully uploaded and validated (synchronous\ \ mode). The response body shall be empty." 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: get: summary: "Query PFND Info" description: "The GET method queries information about multiple PNF descriptor\ \ resources." parameters: - name: "exclude_default" 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." - 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" 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" 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: 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." 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\nhas not provided\ \ authorization, or error details if the corresponding HTTP request\ \ has provided an invalid authorization token." post: summary: "Create PNFD Info" description: "The POST method is used to create a new PNF descriptor resource." 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: "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: "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: 201: description: "Status 201" 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." 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." 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}: 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." 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. Details are specified\ \ in clause 4.5.3." 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." 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." 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 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." 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." 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: - 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. 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." - name: "body" in: "body" required: true schema: $ref: "#/definitions/PnfdInfoModifications" responses: 200: description: "Status 200" schema: $ref: "#/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." 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." 412: description: "Status 412" schema: $ref: "#/definitions/ProblemDetails" parameters: - name: "pnfdInfoId" in: "path" required: true type: "string" /pnf_descriptors/{pnfdInfoId}/pnfd_content: get: summary: "Get PNFD Content" description: "The GET method fetches the content of the PNFD." 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." 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\"." 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: type: "string" description: "The \"Content-Type\" HTTP header shall be set to \"text/plain\"\ ." 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: [] 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" required: true schema: type: "object" description: "The payload body contains a copy of the file representing\ \ the PNFD." responses: 204: description: "The PNFD content was successfully uploaded and validated.\ \ The response body shall be empty." 409: description: "Status 409" schema: $ref: "#/definitions/ProblemDetails" parameters: - name: "pnfdInfoId" in: "path" required: true type: "string" /subscriptions: 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." 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." 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" 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." 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." 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" 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 of GS NFV-SOL 005." - name: "body" in: "body" required: true schema: $ref: "#/definitions/NsdmSubscriptionRequest" responses: 201: description: "Status 201" schema: $ref: "#/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." 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}: 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." 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." responses: 200: description: "Status 200" schema: $ref: "#/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." 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." 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." 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 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." 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."