---
swagger: "2.0"
info:
  description: |
    SOL003 - VNF Lifecycle Management interface definition

    IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence.

    In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based filtering mechanism is defined. This mechanism is currently not included in the corresponding OpenAPI design for this GS version. Changes to the attribute-based filtering mechanism are being considered in v2.5.1 of this GS for inclusion in the corresponding future ETSI NFV OpenAPI design.
    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
  version: 1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
  title: SOL003 - VNF Lifecycle Management interface
  termsOfService: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/product/vmware-product-guide.pdf
  license:
    name: ETSI Forge copyright notice
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
basePath: /telco/api/vnflcm/v2
schemes:
- https
consumes:
- application/json
produces:
- application/json
paths:
  /vnf_instances:
    get:
      description: |
        Query VNF. The GET method queries information about multiple VNF instances.
      parameters:
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: filter
        in: query
        description: |
          Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfInstance and in data types referenced from it shall be supported by the VNFM in the filter expression.
        required: false
        type: string
      - name: all_fields
        in: query
        description: |
          Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter.
        required: false
        type: string
      - name: fields
        in: query
        description: |
          Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter.
        required: false
        type: string
      - name: exclude_fields
        in: query
        description: |
          Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter.
        required: false
        type: string
      - name: exclude_default
        in: query
        description: "Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfInstance structure in the response body if this parameter is provided, or none of the parameters \"all_fields\", \"fields\", \"exclude_fields\", \"exclude_default\" are provided: -\tvnfConfigurableProperties -   vimConnectionInfo -\tinstantiatedVnfInfo -\tmetadata -\textensions\n"
        required: false
        type: string
      - name: nextpage_opaque_marker
        in: query
        description: |
          Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource.
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      - name: notCreatedByNS
        in: header
        description: |
          This is an optional field. When this is set to true, the API returns only the VNFs which are not created by NS.
        required: false
        type: boolean
        default: false
      responses:
        "200":
          description: |
            200 OK
            Shall be returned when information about zero or more VNF instances has been queried successfully. The response body shall contain in an array the representations of zero or more VNF instances, as defined in clause 5.5.2.2. If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. If the VNFM supports alternative 2 (paging) according to clause 5.4.7.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.5.4.2.3 of ETSI GS NFV-SOL 013.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
            Link:
              type: string
              description: |
                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
          schema:
            type: array
            items:
              $ref: '#/definitions/VnfInstance'
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "416":
          description: |
            416 Range Not Satisfiable
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
    post:
      description: |
        Create VNF Identifier. The POST method creates a new VNF instance resource. This method shall follow the provisions specified in the tables 5.4.2.3.1-1 and 5.4.2.3.1-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, a new "Individual VNF instance" resource as defined in clause 5.4.3 shall have been created, and the value of the "instantiationState" attribute in the representation of that resource shall be "NOT_INSTANTIATED". A notification of type VnfIdentifierCreationNotification shall be triggered as part of successfully executing this method as defined in clause 5.5.2.18.
      parameters:
      - in: body
        name: createVnfRequest
        description: The VNF creation parameters
        required: true
        schema:
          $ref: '#/definitions/CreateVnfRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "201":
          description: |
            201 CREATED
            Shall be returned when a new "Individual VNF instance" resource and the associated VNF instance identifier washas been created successfully. The response body shall contain a representation of the created VNF instance, as defined in clause 5.5.2.2. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created VNF instance.
          headers:
            Content-Type:
              type: string
              description: The MIME type of the body of the response.
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance.
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/VnfInstance'
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "422":
          description: |
            422 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.
            This error response code is only applicable for methods that have a request body.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_instances/{vnfInstanceId}:
    get:
      description: |
        Query VNF.
        The GET method retrieves information about a VNF instance by reading an "Individual VNF instance" resource. This method shall follow the provisions specified in the tables 5.4.3.3.2-1 and 5.4.3.3.2-2 for URI query parameters, request and response data structures, and response codes.
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "200":
          description: |
            200 OK
            Shall be returned when information about an individual VNF instance has been read successfully. The response body shall contain a representation of the VNF instance, as defined in clause 5.5.2.2.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/VnfInstance'
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "416":
          description: |
            416 Range Not Satisfiable
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
    delete:
      description: |
        Delete VNF Identifier. This method deletes an "Individual VNF instance" resource. This method shall follow the provisions specified in the tables 5.4.3.3.5-1 and 5.4.3.3.5-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, the "Individual VNF instance" resource shall not exist any longer. A notification of type "VnfIdentifierDeletionNotification" shall be triggered as part of successfully executing this method as defined in clause 5.5.2.19.
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      - name: isForce
        in: header
        description: |
          This is an optional field. When this is set to true, it forcefully deletes the VNF Instance.
        required: false
        type: boolean
        default: false
      responses:
        "204":
          description: |
            204 NO CONTENT
            Shall be returned when the "Individual VNF instance" resource and the associated VNF 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "412":
          description: |
            412 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_instances/{vnfInstanceId}/instantiate:
    post:
      description: |
        Instantiate VNF. The POST method instantiates a VNF instance. This method shall follow the provisions specified in the tables 5.4.4.3.1-1 and 5.4.4.3.1-2 for URI query parameters, request and response data structures, and response codes. The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2. In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, it shall set the "instantiationState" attribute to the value "INSTANTIATED" and the "vnfState" attribute to the value "STARTED" in the representation of the "Individual VNF instance" resource.
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - in: body
        name: InstantiateVnfRequest
        description: Parameters for the VNF instantiation.
        required: true
        schema:
          $ref: '#/definitions/InstantiateVnfRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation.
          headers:
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "416":
          description: |
            416 Range Not Satisfiable
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_instances/{vnfInstanceId}/scale:
    post:
      description: |
        Scale VNF. The POST method requests to scale a VNF instance resource incrementally. This method shall follow the provisions specified in the tables 5.4.5.3.1-1 and 5.4.5.3.1-2 for URI query parameters, request and response data structures, and response codes. The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2. In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute in the representation of the "Individual VNF instance" resource.
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          Identifier of the VNF instance to be scaled. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - in: body
        name: ScaleVnfRequest
        description: Parameters for the scale VNF operation.
        required: true
        schema:
          $ref: '#/definitions/ScaleVnfRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
          headers:
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_instances/{vnfInstanceId}/scale_to_level:
    post:
      description: |
        Scale VNF to Level. The POST method requests to scale a VNF instance resource to a target level. This method shall follow the provisions specified in the tables 5.4.6.3.1-1 and 5.4.6.3.1-2 for URI query parameters, request and response data structures, and response codes. The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2. In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute in the representation of the "Individual VNF instance" resource.
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          Identifier of the VNF instance to be scaled to a target level. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - in: body
        name: ScaleVnfToLevelRequest
        description: Parameters for the scale VNF to Level operation.
        required: true
        schema:
          $ref: '#/definitions/ScaleVnfToLevelRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
          headers:
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_instances/{vnfInstanceId}/terminate:
    post:
      description: |
        Terminate VNF. The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM the release of its used virtualised resources. This method shall follow the provisions specified in the tables 5.4.8.3.1-1 and 5.4.8.3.1-2 for URI query parameters, request and response data structures, and response codes. The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2. In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, it shall set the "instantiationState" attribute in the representation of the "Individual VNF instance" resource to the value "NOT_INSTANTIATED".
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          The identifier of the VNF instance to be terminated. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - in: body
        name: TerminateVnfRequest
        description: Parameters for the VNF termination.
        required: true
        schema:
          $ref: '#/definitions/TerminateVnfRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
          headers:
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_instances/{vnfInstanceId}/heal:
    post:
      description: |
        Heal VNF. The POST method requests to heal a VNF instance. This method shall follow the provisions specified in the tables 5.4.9.3.1-1 and 5.4.9.3.1-2 for URI query parameters, request and response data structures, and response codes. The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2.
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          Identifier of the VNF instance to be healed. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - in: body
        name: HealVnfRequest
        description: Parameters for the Heal VNF operation.
        required: true
        schema:
          $ref: '#/definitions/HealVnfRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
          headers:
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_instances/{vnfInstanceId}/operate:
    post:
      description: |
        Operate VNF. The POST method changes the operational state of a VNF instance resource. This method shall follow the provisions specified in the tables 5.4.10.3.1-1 and 5.4.10.3.1-2 for URI query parameters, request and response data structures, and response codes. The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2. In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, it shall set the "vnfState" attribute in the representation of the "Individual VNF instance" resource to the value of the "changeStateTo" attribute passed in the "OperateVnfRequest" data in the POST request.
      parameters:
      - name: vnfInstanceId
        in: path
        description: |
          Identifier of the VNF instance to be operated. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response.
        required: true
        type: string
      - in: body
        name: OperateVnfRequest
        description: Parameters for the Operate VNF operation.
        required: true
        schema:
          $ref: '#/definitions/OperateVnfRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
          headers:
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_lcm_op_occs:
    get:
      description: |
        Get Operation Status. The API consumer can use this method to query status information about multiple VNF lifecycle management operation occurrences. This method shall follow the provisions specified in the tables 5.4.12.3.2-1 and 5.4.12.3.2-2 for URI query parameters, request and response data structures, and response codes.
      parameters:
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: filter
        in: query
        description: |
          Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfLcmOpOcc and in data types referenced from it shall be supported by the VNFM in the filter expression.
        required: false
        type: string
      - name: all_fields
        in: query
        description: |
          Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter.
        required: false
        type: string
      - name: fields
        in: query
        description: |
          Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter.
        required: false
        type: string
      - name: exclude_fields
        in: query
        description: |
          Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter.
        required: false
        type: string
      - name: exclude_default
        in: query
        description: "Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfLcmOpOcc structure in the response body if this parameter is provided, or none of the parameters \"all_fields,\" \"fields\", \"exclude_fields\", \"exclude_default\" are provided: -\tvnfConfigurableProperties -   vimConnectionInfo -\tinstantiatedVnfInfo -\tmetadata -\textensions\n"
        required: false
        type: string
      - name: nextpage_opaque_marker
        in: query
        description: |
          Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource.
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "200":
          description: |
            200 OK
            Shall be returned when status information for zero or more VNF lifecycle management operation occurrences has been queried successfully. The response body shall contain in an array the status information about zero or more VNF lifecycle operation occurrences, as defined in clause 5.5.2.13. If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
            Link:
              type: string
              description: |
                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
          schema:
            type: array
            items:
              $ref: '#/definitions/VnfLcmOpOcc'
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_lcm_op_occs/{vnfLcmOpOccId}:
    get:
      description: |
        Get Operation Status. The API consumer can use this method to retrieve status information about a VNF lifecycle management operation occurrence by reading an "Individual VNF LCM operation occurrence" resource. This method shall follow the provisions specified in the tables 5.4.13.3.2-1 and 5.4.13.3.2-2 for URI query parameters, request and response data structures, and response codes.
      parameters:
      - name: vnfLcmOpOccId
        in: path
        description: |
          Identifier of a VNF lifecycle management operation occurrence. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the "vnfLcmOpOccId" attribute in the VnfLcmOperationOccurrenceNotification.
        required: true
        type: string
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "200":
          description: |
            200 OK
            Shall be returned when information about a VNF LCM operation occurrence washas been read successfully. The response body shall contain status information about a VNF lifecycle management operation occurrence (see clause 5.5.2.13).
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/VnfLcmOpOcc'
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_lcm_op_occs/{vnfLcmOpOccId}/retry:
    post:
      description: |
        The POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. This method shall follow the provisions specified in the tables 5.4.14.3.1-1 and 5.4.14.3.1-2 for URI query parameters, request and response data structures, and response codes. In case of success of processing the asynchronous request, the "operationState" attribute in the representation of the parent resource shall be changed to "PROCESSING" and the applicable "start" notification according to clause 5.6.2.2 shall be emitted to indicate that the underlying VNF LCM operation occurrence proceeds.
      parameters:
      - name: vnfLcmOpOccId
        in: path
        description: |
          Identifier of a VNF 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 PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the "vnfLcmOpOccId" attribute in the VnfLcmOperationOccurrenceNotification.
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing. The response shall have an empty payload body.
          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.
            Version:
              type: string
              description: The used API version.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback:
    post:
      description: |
        The POST method initiates rolling back a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. In case of rolling back an occurrence of the "InstantiateVnf" operation, the VNFM shall request to the VIM the release of the virtualised resources that were allocated for the related VNF instance. The "rollback" task shall be supported by the VNFM for any VNF LCM operation occurrence that represents an "InstantiateVnf" operation in FAILED_TEMP state. This method shall follow the provisions specified in the tables 5.4.15.3.1-1 and 5.4.15.3.1-2 for URI query parameters, request and response data structures, and response codes. In case of success of processing the asynchronous request, the "operationState" attribute in the representation of the parent resource shall be changed to "ROLLING_BACK" and the applicable "start" notification according to clause 5.6.2.2 shall be emitted to indicate that rollback of the underlying VNF LCM operation occurrence is attempted.
      parameters:
      - name: vnfLcmOpOccId
        in: path
        description: |
          Identifier of a VNF lifecycle management operation occurrence to be be rolled back. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the "vnfLcmOpOccId" attribute in the VnfLcmOperationOccurrenceNotification.
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "202":
          description: |
            202 ACCEPTED
            Shall be returned when the request has been accepted for processing. The response shall have an empty payload body.
          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.
            Version:
              type: string
              description: The used API version.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "409":
          description: |
            409 CONFLICT
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /subscriptions:
    get:
      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
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: filter
        in: query
        description: |
          Attribute-based filtering expression according to clause 4.3.2. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the LccnSubscription and in data types referenced from it shall be supported by the VNFM in the filter expression.
        required: false
        type: string
      - name: nextpage_opaque_marker
        in: query
        description: |
          Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "200":
          description: |
            200 OK
            Shall be returned when the list of subscriptions has been queried successfully. The response body shall contain in an array the representations of all active subscriptions of the functional block that invokes the method, i.e. zero or more representations of lifecycle change notification subscriptions as defined in clause 5.5.2.16. If the "filter" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the VNFM supports alternative 2 (paging) according to clause 5.4.7.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.5.4.2.3 of ETSI GS NFV-SOL 013.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
            Link:
              type: string
              description: |
                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
          schema:
            type: array
            items:
              $ref: '#/definitions/LccnSubscription'
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
    post:
      description: |
        Subscribe. The POST method creates a new subscription. This method shall follow the provisions specified in the tables 5.4.18.3.1-1 and 5.4.18.3.1-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, a new "Individual subscription" resource as defined in clause 5.4.3 shall have been created. This method shall not trigger any notification. Creation of two "Individual subscription" resources with the same callbackURI and the same filter can result in performance degradation and will provide duplicates of notifications to the NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating an "Individual subscription" resource if another "Individual 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 "Individual subscription" resource (in which case it shall return a "303 See Other" response code referencing the existing "Individual subscription" resource with the same filter and callbackUri).
      parameters:
      - in: body
        name: LccnSubscriptionRequest
        description: |
          Details of the subscription to be created.
        required: true
        schema:
          $ref: '#/definitions/LccnSubscriptionRequest'
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Content-Type
        in: header
        description: |
          The MIME type of the body of the request. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "201":
          description: |
            201 CREATED
            Shall be returned when the subscription has been created successfully. The response body shall contain a representation of the created "Individual subscription" resource. The HTTP response shall include a "Location" HTTP header that points to the created "Individual subscription" resource.
          headers:
            Content-Type:
              type: string
              description: The MIME type of the body of the response.
            Location:
              type: string
              format: url
              description: The resource URI of the created VNF instance
            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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/LccnSubscription'
        "303":
          description: |
            303 See Other
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "422":
          description: |
            422 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.
            This error response code is only applicable for methods that have a request body.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
  /subscriptions/{subscriptionId}:
    get:
      description: |
        Query Subscription Information. The GET method retrieves information about a subscription by reading an "Individual subscription" resource. This method shall follow the provisions specified in the tables 5.4.19.3.2-1 and 5.4.19.3.2-2 for URI query parameters, request and response data structures, and response codes.
      parameters:
      - name: subscriptionId
        in: path
        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.
        required: true
        type: string
      - name: Accept
        in: header
        description: |
          Content-Types that are acceptable for the response. Reference: IETF RFC 7231
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "200":
          description: |
            200 OK
            Shall be returned when information about an individual subscription has been read successfully. The response body shall contain a representation of the "Individual subscription" resource.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/LccnSubscription'
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
    delete:
      description: |
        Terminate Subscription. The DELETE method terminates an individual subscription. This method shall follow the provisions specified in the tables 5.4.19.3.5-1 and 5.4.19.3.5-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, the "Individual subscription" resource shall not exist any longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer.

          NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed

        API consumer for a certain time period after the deletion.
      parameters:
      - name: subscriptionId
        in: path
        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.
        required: true
        type: string
      - name: Authorization
        in: header
        description: |
          The authorization token for the request. Reference: IETF RFC 7235
        required: false
        type: string
      - name: Version
        in: header
        description: |
          Version of the API requested to use when responding to this request.
        required: true
        type: string
      responses:
        "204":
          description: |
            204 NO CONTENT
            Shall be returned when the "Individual subscription" resource has been 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
        "400":
          description: |
            400 BAD REQUEST
            400 code can be returned in the following specified cases, the specific cause has to be proper specified in the "ProblemDetails" structure to be returned.
            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), 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 response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it 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 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.
            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.
            The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "401":
          description: |
            401 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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "403":
          description: |
            403 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "404":
          description: |
            404 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.
            This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "405":
          description: |
            405 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "406":
          description: |
            406 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.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "500":
          description: |
            500 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "503":
          description: |
            503 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 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:
              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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
        "504":
          description: |
            504 GATEWAY TIMEOUT
            If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.
          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.
            Version:
              type: string
              description: |
                Version of the API used in the response.
          schema:
            $ref: '#/definitions/ProblemDetails'
definitions:
  VnfInstance:
    type: object
    required:
    - id
    - instantiationState
    - vnfProductName
    - vnfProvider
    - vnfSoftwareVersion
    - vnfdId
    - vnfdVersion
    properties:
      id:
        description: |
          Identifier of the VNF instance.
        $ref: '#/definitions/Identifier'
      vnfInstanceName:
        type: string
        description: |
          Name of the VNF instance. This attribute can be modified with the PATCH method.
      vnfInstanceDescription:
        type: string
        description: |
          Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.
      vnfdId:
        description: |
          Identifier of the VNFD on which the VNF instance is based.
          Modifying the value of this attribute shall not be performed when conflicts exist between the previous and the newly referred VNF package, i.e. when the new VNFD is not changed with respect to the previous VNFD in other aspects than merely referencing to other VNF software images. In order to avoid misalignment of the VnfInstance with the current VNF's on-boarded VNF Package, the values of attributes in the VnfInstance that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.
        $ref: '#/definitions/Identifier'
      vnfProvider:
        type: string
        description: |
          Provider of the VNF and the VNFD. The value is copied from the VNFD.
      vnfProductName:
        type: string
        description: |
          Name to identify the VNF Product. The value is copied from the VNFD.
      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'
      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.
          These configurable properties can be initialized with default values from the VNFD (see note 4) or with values passed in the InstantiateVnfRequest structure (see clause 5.5.2.4). Configurable properties initialized with default values from the VNFD can be updated with values passed in the InstantiateVnfRequest structure. Further, these configurable properties can be created, modified or deleted with the PATCH method.
        $ref: '#/definitions/KeyValuePairs'
      vimConnectionInfo:
        type: array
        description: |
          Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.
        items:
          $ref: '#/definitions/VimConnectionInfo'
      instantiationState:
        type: string
        description: |
          The instantiation state of the VNF.
        enum:
        - NOT_INSTANTIATED
        - INSTANTIATED
      instantiatedVnfInfo:
        $ref: '#/definitions/VnfInstance_instantiatedVnfInfo'
      metadata:
        description: |
          Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts. Modifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that are writeable are the VNF provider foresees are expected to be declared in the VNFD. The declaration of metadata in the VNFD can optionally contain the specification of initial values. The VNFM shall accept requests to write metadata that are not declared in the VNFD. These attributes can be initialized with default values from the VNFD or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3). This attributeThese attributes can be created, modified or removed with the PATCH method.
          ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" that have no declared initial value shall not be created, in order to be consistent with the semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request.
        $ref: '#/definitions/VnfInstanceMetadata'
      extensions:
        description: |
          Additional VNF-specific attributes that affect the lifecycle management of this VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by the VNFM or the lifecycle management scripts during the execution of VNF lifecycle management operations. All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension in the VNFD contains information on whether its presence is optional or required, and optionally can specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined in clause 6.4 of ETSI GS NFV-SOL 013. Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified attribute values can be considered during subsequent VNF lifecycle management operations, which means that the modified values can indirectly affect the configuration of the VNF instance. These attributes can be initialized with default values from the VNFD or with values passed in the InstantiateVnfRequest structure (see clause 5.5.2.4). Attributes initialized with default values from the VNFD can be updated with values passed in the InstantiateVnfRequest structure. Further, these attributes can be created, modified or deleted with the PATCH method.
          Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" that have no declared initial value shall not be created, in order to be consistent with the semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request.
        $ref: '#/definitions/KeyValuePairs'
      _links:
        $ref: '#/definitions/VnfInstance__links'
    description: |
      This type represents a VNF instance.
  Identifier:
    type: string
    description: |
      An identifier with the intention of being globally unique.
  Version:
    type: string
    description: |
      A version.
  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 pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys ("aString", "aNumber", "anArray" and "anObject") is provided to illustrate that the values associated with different keys can be of different type.
  VimConnectionInfo:
    type: object
    required:
    - id
    - vimType
    properties:
      id:
        description: |
          The identifier of the VIM Connection. This identifier is managed by the NFVO.
        $ref: '#/definitions/Identifier'
      vimId:
        description: |
          The identifier of the VIM instance. This identifier is managed by the NFVO. Shall be present to address additional information about the VIM if such information has been configured into the VNFM by means outside the scope of the present document, and should be absent otherwise.
        $ref: '#/definitions/Identifier'
      vimType:
        type: string
        description: |
          Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
      interfaceInfo:
        description: |
          Information about the interface or interfaces to the VIM, if applicable, such as the URI of an interface endpoint to communicate with the VIM. The applicable keys are dependent on the content of vimType. Alternatively, such information may have been configured into the VNFM and bound to the vimId.
        $ref: '#/definitions/KeyValuePairs'
      accessInfo:
        description: |
          Authentication credentials for accessing the VIM, and other access-related information such as tenants or infrastructure resource groups (see note). The applicable keys are dependent on the content of vimType. If the VimConnectionInfo structure is part of an HTTP response payload body, sensitive attributes that are children of this attributes (such as passwords) shall not be included. If the VimConnectionInfo structure is part of an HTTP request payload body, sensitive attributes that are children of this attribute (such as passwords) shall be present if they have not been provisioned out of band.
          If applicable, this attribute also provides information about the resourceGroupIds that are accessible using a particular set of credentials. See definition of "resourceGroupId" in clause 9.5.3.3.
          Once the connectivity between VNFM and VIM is provided through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the "accessInfo" JSON data structure, and the sensitive data related information ("username"/"password" as required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel without additional encoding/encryption before transmitting it, making the sensitive data visible to the endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the interface endpoint of the VIM.
        $ref: '#/definitions/KeyValuePairs'
      extra:
        description: |
          VIM type specific additional information. The applicable structure, and whether or not this attribute is available, is dependent on the content of vimType.
        $ref: '#/definitions/vimConnectionInfoExtras'
    description: |
      This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
  vimConnectionInfoExtras:
    type: object
    properties:
      deploymentProfileId:
        type: string
      nodeProfileName:
        type: string
      nodePoolId:
        type: string
      nodePoolName:
        type: string
      vimName:
        type: string
  IdentifierInVnfd:
    type: string
    description: |
      An identifier that is unique within a VNF descriptor.
  VnfOperationalStateType:
    type: string
    description: |
      STARTED: The VNF instance is up and running. STOPPED: The VNF instance has been shut down.
    enum:
    - STARTED
    - STOPPED
  ScaleInfo:
    type: object
    required:
    - aspectId
    - scaleLevel
    properties:
      aspectId:
        description: |
          Identifier of the scaling aspect.
        $ref: '#/definitions/IdentifierInVnfd'
      scaleLevel:
        type: integer
        description: |
          Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.
  VnfExtCpInfo:
    type: object
    required:
    - cpProtocolInfo
    - cpdId
    - id
    properties:
      id:
        description: |
          Identifier of the external CP instance and the related information instance.
        $ref: '#/definitions/IdentifierInVnf'
      cpdId:
        description: |
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      cpProtocolInfo:
        type: array
        description: |
          Network protocol information for this CP.
        items:
          $ref: '#/definitions/CpProtocolInfo'
      extLinkPortId:
        description: |
          Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo" structure. Shall be present if the CP is associated to a link port.
        $ref: '#/definitions/Identifier'
      metadata:
        description: |
          Metadata about this external CP.
        $ref: '#/definitions/KeyValuePairs'
      associatedVnfcCpId:
        description: |
          Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents the VNFC CP which is exposed by this external CP instance. Shall be present in case this CP instance maps to a VNFC CP. See note.
        $ref: '#/definitions/Identifier'
      associatedVnfVirtualLinkId:
        description: |
          Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL which is exposed by this external CP instance. Shall be present in case this CP instance maps to an internal VL. See note.
        $ref: '#/definitions/Identifier'
    description: |
      This type represents information about an external CP of a VNF. It shall comply with the provisions defined in table 5.5.3.25 1.
  IdentifierInVnf:
    type: string
    description: |
      An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
  CpProtocolInfo:
    type: object
    required:
    - layerProtocol
    properties:
      layerProtocol:
        type: string
        description: |
          The identifier of layer(s) and protocol(s) associated to the network address information. Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
        enum:
        - IP_OVER_ETHERNET
      ipOverEthernet:
        description: |
          IP addresses 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/IpOverEthernetAddressInfo'
    description: |
      This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
  IpOverEthernetAddressInfo:
    type: object
    properties:
      macAddress:
        description: |
          MAC address, if assigned. At least one of "macAddress" or "ipAddresses" shall be present.
        $ref: '#/definitions/MacAddress'
      ipAddresses:
        type: array
        description: |
          Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet. At least one of "macAddress" or "ipAddresses" shall be present.
        items:
          $ref: '#/definitions/IpOverEthernetAddressInfo_ipAddresses'
    description: |
      This type represents information about a network address that has been assigned.
  MacAddress:
    type: string
    format: MAC
    description: |
      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
  IpAddress:
    type: string
    format: IP
    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.
  IdentifierInVim:
    type: string
    description: |
      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
  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: '#/definitions/Identifier'
      resourceHandle:
        description: |
          Reference to the resource realizing this VL.
        $ref: '#/definitions/ResourceHandle'
      extLinkPorts:
        type: array
        description: |
          Link ports of this VL.
        items:
          $ref: '#/definitions/ExtLinkPortInfo'
  ResourceHandle:
    type: object
    required:
    - resourceId
    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:
        type: string
        description: |
          The value set of the "vimLevelResourceType" attribute is within the scope of the VIM or the resource provider and can be used as information that complements the ResourceHandle. This value set is different from the value set of the "type" attribute in the ResourceDefinition (refer to clause 9.5.3.2 in SOL003).
    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.
  ExtLinkPortInfo:
    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'
      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: '#/definitions/IdentifierInVnf'
    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.
  ExtManagedVirtualLinkInfo:
    type: object
    required:
    - id
    - networkResource
    - 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: '#/definitions/Identifier'
      vnfVirtualLinkDescId:
        description: |
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
        $ref: '#/definitions/IdentifierInVnf'
      networkResource:
        description: |
          Reference to the VirtualNetwork resource.
        $ref: '#/definitions/ResourceHandle'
      vnfLinkPorts:
        type: array
        description: |
          Link ports of this VL.
        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: '#/definitions/IdentifierInVnf'
      resourceHandle:
        description: |
          Reference to the virtualised network resource realizing this link port.
        $ref: '#/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 identifier of 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: '#/definitions/IdentifierInVnf'
      cpInstanceType:
        type: string
        description: |
          Type of the CP instance that is identified by cpInstanceId. Shall be present if "cpInstanceId" is present, and shall be absent otherwise. Permitted values: VNFC_CP: The link port is connected to a VNFC CP EXT_CP: The link port is associated to an external CP.
        enum:
        - VNFC_CP
        - EXT_CP
  MonitoringParameter:
    type: object
    required:
    - id
    - performanceMetric
    properties:
      id:
        description: |
          Identifier of the monitoring parameter defined in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      name:
        type: string
        description: |
          Human readable name of the monitoring parameter, as defined in the VNFD.
      performanceMetric:
        type: string
        description: |
          Performance metric that is monitored. This attribute shall contain the related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
  VnfcResourceInfo:
    type: object
    required:
    - computeResource
    - id
    - vduId
    properties:
      id:
        description: |
          Identifier of this VnfcResourceInfo instance.
        $ref: '#/definitions/IdentifierInVnf'
      vduId:
        description: |
          Reference to the applicable VDU in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      computeResource:
        description: |
          Reference to the VirtualCompute resource.
        $ref: '#/definitions/ResourceHandle'
      zoneId:
        description: |
          The identifier of the resource zone, as managed by the resource management layer (typically, the VIM), where the referenced VirtualCompute resource is placed. Shall be provided if this information is available from the VIM.
        $ref: '#/definitions/Identifier'
      storageResourceIds:
        type: array
        description: |
          References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
        items:
          $ref: '#/definitions/IdentifierInVnf'
      reservationId:
        description: |
          The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists.
        $ref: '#/definitions/Identifier'
      vnfcCpInfo:
        type: array
        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.
        items:
          $ref: '#/definitions/VnfcResourceInfo_vnfcCpInfo'
      metadata:
        description: |
          Metadata about this resource.
        $ref: '#/definitions/KeyValuePairs'
    description: |
      This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.
  VnfVirtualLinkResourceInfo:
    type: object
    required:
    - id
    - networkResource
    - vnfVirtualLinkDescId
    properties:
      id:
        description: |
          Identifier of this VnfVirtualLinkResourceInfo instance.
        $ref: '#/definitions/IdentifierInVnf'
      vnfVirtualLinkDescId:
        description: |
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      networkResource:
        description: |
          Reference to the VirtualNetwork resource.
        $ref: '#/definitions/ResourceHandle'
      zoneId:
        description: |
          The identifier of the resource zone, as managed by the resource management layer (typically, the VIM), where the referenced VirtualNetwork resource is placed. Shall be provided if this information is available from the VIM.
        $ref: '#/definitions/Identifier'
      reservationId:
        description: |
          The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists.
        $ref: '#/definitions/Identifier'
      vnfLinkPorts:
        type: array
        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.
        items:
          $ref: '#/definitions/VnfLinkPortInfo'
      metadata:
        description: |
          Metadata about this resource.
        $ref: '#/definitions/KeyValuePairs'
    description: |
      This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.
  VirtualStorageResourceInfo:
    type: object
    required:
    - id
    - storageResource
    - virtualStorageDescId
    properties:
      id:
        description: |
          Identifier of this VirtualStorageResourceInfo instance.
        $ref: '#/definitions/IdentifierInVnf'
      virtualStorageDescId:
        description: |
          Identifier of the VirtualStorageDesc in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      storageResource:
        description: |
          Reference to the VirtualStorage resource.
        $ref: '#/definitions/ResourceHandle'
      zoneId:
        description: |
          The identifier of the resource zone, as managed by the resource management layer (typically, the VIM), where the referenced VirtualStorage resource is placed. Shall be provided if this information is available from the VIM.
        $ref: '#/definitions/Identifier'
      reservationId:
        description: |
          The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists.
        $ref: '#/definitions/Identifier'
      metadata:
        description: |
          Metadata about this resource.
        $ref: '#/definitions/KeyValuePairs'
    description: |
      This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.
  VnfInstanceMetadata:
    type: object
    properties:
      vnfPkgId:
        type: string
      vnfCatalogName:
        type: string
      managedBy:
        $ref: '#/definitions/VnfInstanceMetadata_managedBy'
      nfType:
        type: string
      lcmOperation:
        type: string
      lcmOperationState:
        type: string
      isUsedByNS:
        type: string
      attachedNSCount:
        type: integer
      extVirtualLinks:
        type: array
        description: |
          Information about external VLs to connect the VNF to.
        items:
          $ref: '#/definitions/ExtVirtualLinkData'
      tags:
        type: array
        items:
          $ref: '#/definitions/VnfInstanceMetadata_tags'
  ExtVirtualLinkData:
    type: object
    required:
    - extCps
    - id
    - resourceId
    properties:
      id:
        description: |
          The identifier of the external VL instance. The identifier is assigned by the NFV-MANO entity that manages this VL instance.
        $ref: '#/definitions/Identifier'
      vimConnectionId:
        description: |
          Identifier of the VIM connection to manage this resource. This attribute shall only be supported and present if VNF-related 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:
        type: array
        description: |
          External CPs of the VNF to be connected to this external VL.
        items:
          $ref: '#/definitions/VnfExtCpData'
      extLinkPorts:
        type: array
        description: |
          Externally provided link ports to be used to connect external connection points to this external VL. If this attribute is not present, the VNFM shall create the link ports on the external VL.
        items:
          $ref: '#/definitions/ExtLinkPortData'
    description: |
      This type represents an external VL.
  VnfExtCpData:
    type: object
    required:
    - cpdId
    properties:
      cpdId:
        description: |
          The identifier of the CPD in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      cpConfig:
        type: array
        description: |
          List of instance data that need to be configured on the CP instances created from the respective CPD.
        items:
          $ref: '#/definitions/VnfExtCpConfig'
    description: |
      This type represents configuration information for external CPs created from a CPD.
  VnfExtCpConfig:
    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": 1) The "linkPortId" and "cpProtocolData" attributes shall both be
             absent for the deletion of an existing external CP instance
             addressed by cpInstanceId.
          2) At least one of these attributes shall be present for a
             to-be-created external CP instance or an existing external
             CP instance.
          3) If the "linkPortId" attribute is absent, the VNFM shall create a
             link port.
          4) 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.
          5) 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:
        type: array
        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": 1) The "linkPortId" and "cpProtocolData" attributes shall both be
             absent for the deletion of an existing external CP instance
             addressed by cpInstanceId.
          2) At least one of these attributes shall be present for a
             to-be-created external CP instance or an existing external
             CP instance.
          3) If the "linkPortId" attribute is absent, the VNFM shall create a
             link port.
          4) 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.
          5) 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".
        items:
          $ref: '#/definitions/CpProtocolData'
    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.
  CpProtocolData:
    type: object
    required:
    - layerProtocol
    properties:
      layerProtocol:
        type: string
        description: |
          Identifier of layer(s) and protocol(s). This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
        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'
    description: |
      This type represents network protocol data.
  IpOverEthernetAddressData:
    type: object
    properties:
      macAddress:
        description: |
          MAC address. If this attribute is not present, it shall be chosen by the VIM. At least one of "macAddress" or "ipAddresses" shall be present.
        $ref: '#/definitions/MacAddress'
      ipAddresses:
        type: array
        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.
        items:
          $ref: '#/definitions/IpOverEthernetAddressData_ipAddresses'
    description: |
      This type represents network address data for IP over Ethernet.
  ExtLinkPortData:
    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'
    description: |
      This type represents an externally provided link port to be used to connect an external connection point to an external VL.
  Link:
    type: object
    required:
    - href
    properties:
      href:
        description: |
          URI of another resource referenced from a resource. Shall be an absolute URI (i.e. a UTI that contains {apiRoot}).
        $ref: '#/definitions/Uri'
    description: |
      This type represents a link to a resource using an absolute URI.
  Uri:
    type: string
    description: |
      String formatted according to IETF RFC 3986.
  ProblemDetails:
    type: object
    required:
    - detail
    - status
    properties:
      type:
        type: string
        format: URI
        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".
      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. 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).
      status:
        type: integer
        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.
      detail:
        type: string
        description: |
          A human-readable explanation specific to this occurrence of the problem.
      instance:
        type: string
        format: URI
        description: |
          A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
    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].
  CreateVnfRequest:
    type: object
    required:
    - vnfdId
    properties:
      vnfdId:
        description: |
          Identifier that identifies the VNFD which defines the VNF instance to be created.
        $ref: '#/definitions/Identifier'
      vnfInstanceName:
        type: string
        description: |
          Human-readable name of the VNF instance to be created.
      vnfInstanceDescription:
        type: string
        description: |
          Human-readable description of the VNF instance to be created.
      metadata:
        description: |
          If present, this attribute provides values for the "metadata" attribute in "VnfInstance", as defined in clause 5.5.2.2. If a "metadata" entry in this CreateVnfRequest data structure has a corresponding default value declared in the VNFD, the value in the "metadata" entry in the CreateVnfRequest structure takes precedence.
        $ref: '#/definitions/metaData'
  metaData:
    type: object
    properties:
      tags:
        type: array
        items:
          $ref: '#/definitions/VnfInstanceMetadata_tags'
      extensionId:
        type: string
    description: The metadata for CreateVnfRequest in SOL003
  InstantiateVnfRequest:
    type: object
    required:
    - flavourId
    properties:
      flavourId:
        description: |
          Identifier of the VNF deployment flavour to be instantiated.
        $ref: '#/definitions/IdentifierInVnfd'
      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 VNFD is instantiated.
        $ref: '#/definitions/IdentifierInVnfd'
      extVirtualLinks:
        type: array
        description: |
          Information about external VLs to connect the VNF to.
        items:
          $ref: '#/definitions/ExtVirtualLinkData'
      extManagedVirtualLinks:
        type: array
        description: |
          Information about internal VLs that are managed by the NFVO.
        items:
          $ref: '#/definitions/ExtManagedVirtualLinkData'
      vimConnectionInfo:
        type: array
        description: |
          Information about VIM connections to be used for managing the resources for the VNF instance, or refer to external / externally-managed virtual links. This attribute shall only be supported and may be present if VNF-related resource management in direct mode is applicable.
        items:
          $ref: '#/definitions/VimConnectionInfo'
      localizationLanguage:
        description: |
          Localization language of the VNF to be instantiated. The value shall comply with the format defined in IETF RFC 5646.
        $ref: '#/definitions/String'
      additionalParams:
        description: |
          Additional input parameters for the instantiation process, specific to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig".
        $ref: '#/definitions/VnfInstantiateRequestAdditionalParams'
      extensions:
        description: |
          If present, this attribute provides values for the "extensions" attribute in "VnfInstance", as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure.
        $ref: '#/definitions/KeyValuePairs'
      vnfConfigurableProperties:
        description: |
          This parameter provides values for the VNF configurable properties attribute in the "VnfInstance", as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure.
        $ref: '#/definitions/KeyValuePairs'
  ExtManagedVirtualLinkData:
    type: object
    required:
    - id
    - resourceId
    properties:
      id:
        description: |
          The identifier of the externally-managed internal VL instance. The identifier is assigned by the NFV-MANO entity that manages this VL instance.
        $ref: '#/definitions/Identifier'
      vnfVirtualLinkDescId:
        description: |
          The identifier of the VLD in the VNFD for this VL.
        $ref: '#/definitions/IdentifierInVnfd'
      vimConnectionId:
        description: |
          Identifier of the VIM connection to manage this resource. This attribute shall only be supported and present if VNF-related 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'
  String:
    type: string
    description: |
      A string defined in IETF RFC 8259.
  VnfInstantiateRequestAdditionalParams:
    type: object
    properties:
      vduParams:
        type: array
        items:
          $ref: '#/definitions/vduParam'
      lcmInterfaces:
        type: array
        items:
          $ref: '#/definitions/lcmInterfaces'
      entityPrefix:
        type: string
      useVAppTemplates:
        type: boolean
      catalogName:
        type: string
      catalogId:
        type: string
      skipGrant:
        type: boolean
        description: |
          Set to true if grant phase is to be skipped in this VNF LCM operation occurrence. Set to false otherwise.
      ignoreGrantFailure:
        type: boolean
        description: |
          Set to true if grant failures are to be ignored while instantiating CNF. Set to false otherwise.
      disableAutoRollback:
        type: boolean
        description: |
          Set to true if auto rollback is to be disabled when CNF instantiation fails. Set to false otherwise.
      disableGrant:
        type: boolean
        description: |
          Set to true if grant phase is to be skipped while instantiating CNF. Set to false otherwise.
  vduParam:
    type: object
    properties:
      vduName:
        type: string
      deploymentProfileId:
        type: string
      chartName:
        type: string
      helmName:
        type: string
      namespace:
        type: string
      repoUrl:
        type: string
      username:
        type: string
      password:
        type: string
      overrides:
        type: string
      metadata:
        type: array
        items:
          type: object
          properties: {}
      imageName:
        type: string
      disableAutoRollback:
        type: boolean
      disableGrant:
        type: boolean
      ignoreGrantFailure:
        type: boolean
      catalogName:
        type: string
      catalogId:
        type: string
  lcmInterfaces:
    type: object
    properties:
      interfaceName:
        type: string
      parameters:
        type: array
        items:
          $ref: '#/definitions/lcmInterfaces_parameters'
  ScaleVnfRequest:
    type: object
    required:
    - aspectId
    - type
    properties:
      type:
        type: string
        description: |
          Indicates the type of the scale operation requested. Permitted values: * SCALE_OUT: adding additional VNFC instances to the VNF to increase
            capacity
          * SCALE_IN: removing VNFC instances from the VNF in order to release
            unused capacity.
        enum:
        - SCALE_OUT
        - SCALE_IN
      aspectId:
        description: |
          Identifier of the scaling aspect.
        $ref: '#/definitions/IdentifierInVnfd'
      numberOfSteps:
        type: integer
        description: |
          Number of scaling steps to be executed as part of this Scale VNF operation. It shall be a positive number and the default value shall be 1.
      additionalParams:
        description: |
          Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled, as declared in the VNFD as part of "ScaleVnfOpConfig".
        $ref: '#/definitions/ScaleVnfRequestAdditionalParams'
  ScaleVnfRequestAdditionalParams:
    type: object
    properties:
      skipGrant:
        type: boolean
        description: |
          Set to true if grant phase is to be skipped in this VNF LCM operation occurrence. Set to false otherwise.
      vduParams:
        type: array
        items:
          $ref: '#/definitions/vduParam'
      lcmInterfaces:
        type: array
        items:
          $ref: '#/definitions/lcmInterfaces'
  ScaleVnfToLevelRequest:
    type: object
    properties:
      instantiationLevelId:
        description: |
          Identifier of the target instantiation level of the current deployment flavour to which the VNF is requested to be scaled. Either the instantiationLevelId attribute or the scaleInfo attribute shall be included.
        $ref: '#/definitions/IdentifierInVnfd'
      scaleInfo:
        type: array
        description: |
          For each scaling aspect of the current deployment flavour, indicates the target scale level to which the VNF is to be scaled. Either the instantiationLevelId attribute or the scaleInfo attribute shall be included.
        items:
          $ref: '#/definitions/ScaleInfo'
      additionalParams:
        description: |
          Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled, as declared in the VNFD as part of "ScaleVnfToLevelOpConfig".
        $ref: '#/definitions/ScaleVnfRequestAdditionalParams'
    description: |
      This type represents request parameters for the "Scale VNF to Level" operation.
  TerminateVnfRequest:
    type: object
    required:
    - terminationType
    properties:
      terminationType:
        type: string
        description: |
          Indicates whether forceful or graceful termination is requested. Permitted values: * FORCEFUL: The VNFM will shut down the VNF and release the
            resources immediately after accepting the request.
          * GRACEFUL: The VNFM will first arrange to take the VNF out of service after accepting the request. Once the operation of taking the VNF out of service finishes (irrespective of whether it has succeeded or failed) or once the timer value specified in the "gracefulTerminationTimeout" attribute expires, the VNFM will shut down the VNF and release the resources.
        enum:
        - FORCEFUL
        - GRACEFUL
      gracefulTerminationTimeout:
        type: integer
        description: |
          This attribute is only applicable in case of graceful termination. It defines the time to wait for the VNF to be taken out of service before shutting down the VNF and releasing the resources. The unit is seconds. If not given and the "terminationType" attribute is set to "GRACEFUL", it is expected that the VNFM waits for the successful taking out of service of the VNF, no matter how long it takes, before shutting down the VNF and releasing the resources.
      additionalParams:
        description: |
          Additional parameters passed by the NFVO as input to the termination process, specific to the VNF being terminated, as declared in the VNFD as part of "TerminateVnfOpConfig".
        $ref: '#/definitions/TerminateVnfRequestAdditionalParams'
  TerminateVnfRequestAdditionalParams:
    type: object
    properties:
      lcmInterfaces:
        type: array
        items:
          $ref: '#/definitions/lcmInterfaces'
  HealVnfRequest:
    type: object
    properties:
      cause:
        description: |
          Indicates the reason why a healing procedure is required.
        $ref: '#/definitions/String'
      additionalParams:
        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".
        $ref: '#/definitions/HealVnfRequestAdditionalParams'
  HealVnfRequestAdditionalParams:
    type: object
    properties:
      action:
        type: string
      skipGrant:
        type: boolean
        description: |
          Set to true if grant phase is to be skipped in this VNF LCM operation occurrence. Set to false otherwise.
      affectedvm:
        type: array
        items:
          $ref: '#/definitions/HealVnfRequestAdditionalParams_affectedvm'
      lcmInterfaces:
        type: array
        items:
          $ref: '#/definitions/lcmInterfaces'
  OperateVnfRequest:
    type: object
    required:
    - changeStateTo
    properties:
      changeStateTo:
        description: |
          The desired operational state (i.e. started or stopped) to change the VNF to.
        $ref: '#/definitions/VnfOperationalStateType'
      stopType:
        description: |
          It signals whether forceful or graceful stop is requested. The "stopType" and "gracefulStopTimeout" attributes shall be absent, when the "changeStateTo" attribute is equal to "STARTED". The "gracefulStopTimeout" attribute shall be present, when the "changeStateTo" is equal to "STOPPED" and the "stopType" attribute is equal to "GRACEFUL". The "gracefulStopTimeout" attribute shall be absent, when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is equal to "FORCEFUL". The request shall be treated as if the "stopType" attribute was set to "FORCEFUL", when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is absent.
        $ref: '#/definitions/StopType'
      gracefulStopTimeout:
        type: integer
        description: |
          The time interval (in seconds) to wait for the VNF to be taken out of service during graceful stop, before stopping the VNF. The "stopType" and "gracefulStopTimeout" attributes shall be absent, when the "changeStateTo" attribute is equal to "STARTED". The "gracefulStopTimeout" attribute shall be present, when the "changeStateTo" is equal to "STOPPED" and the "stopType" attribute is equal to "GRACEFUL". The "gracefulStopTimeout" attribute shall be absent, when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is equal to "FORCEFUL". The request shall be treated as if the "stopType" attribute was set to "FORCEFUL", when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is absent.
      additionalParams:
        description: |
          Additional parameters passed by the NFVO as input to the process, specific to the VNF of which the operation status is changed, as declared in the VNFD as part of "OperateVnfOpConfig".
        $ref: '#/definitions/KeyValuePairs'
    description: |
      This type represents request parameters for the "Operate VNF" operation.
  StopType:
    type: string
    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.
    enum:
    - FORCEFUL
    - GRACEFUL
  VnfLcmOpOcc:
    type: object
    required:
    - id
    - isAutomaticInvocation
    - isCancelPending
    - operation
    - operationState
    - startTime
    - stateEnteredTime
    - vnfInstanceId
    properties:
      id:
        description: |
          Identifier of this VNF lifecycle management operation occurrence.
        $ref: '#/definitions/Identifier'
      operationState:
        description: |
          The state of the LCM operation.
        $ref: '#/definitions/LcmOperationStateType'
      stateEnteredTime:
        description: |
          Date-time when the current state has been entered.
        $ref: '#/definitions/DateTime'
      startTime:
        description: |
          Date-time of the start of the operation.
        $ref: '#/definitions/DateTime'
      vnfInstanceId:
        description: |
          Identifier of the VNF instance to which the operation applies
        $ref: '#/definitions/Identifier'
      grantId:
        description: |
          Identifier of the grant related to this VNF LCM operation occurrence, if such grant exists.
        $ref: '#/definitions/Identifier'
      operation:
        description: |
          Type of the actual LCM operation represented by this VNF LCM operation occurrence.
        $ref: '#/definitions/LcmOperationType'
      isAutomaticInvocation:
        description: |
          Set to true if this VNF LCM operation occurrence has been triggered by an automated procedure inside the VNFM (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf triggered by auto-heal). Set to false otherwise.
        $ref: '#/definitions/Boolean'
      operationParams:
        type: object
        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 operationType and the data type of this attribute shall apply: * INSTANTIATE: InstantiateVnfRequest * SCALE: ScaleVnfRequest * SCALE_TO_LEVEL: ScaleVnfToLevelRequest * CHANGE_FLAVOUR: ChangeVnfFlavourRequest * OPERATE: OperateVnfRequest * HEAL: HealVnfRequest * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest * TERMINATE: TerminateVnfRequest * MODIFY_INFO: VnfInfoModifications
        properties: {}
      isCancelPending:
        description: |
          If the VNF LCM operation occurrence is in "STARTING", "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.
        $ref: '#/definitions/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:
        $ref: '#/definitions/VnfLcmOpOcc_resourceChanges'
      changedInfo:
        description: |
          Information about the changed VNF instance information, including VNF configurable properties, if applicable. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
        $ref: '#/definitions/VnfInfoModifications'
      changedExtConnectivity:
        type: array
        description: |
          Information about changed external connectivity, if applicable. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
        items:
          $ref: '#/definitions/ExtVirtualLinkInfo'
      _links:
        $ref: '#/definitions/VnfLcmOpOcc__links'
    description: |
      This type represents a VNF lifecycle management operation occurrence.
  LcmOperationStateType:
    type: string
    description: |
      STARTING: The LCM operation is starting. PROCESSING: The LCM operation is currently in execution. COMPLETED: The LCM operation has been completed successfully. 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. ROLLING_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.
    enum:
    - STARTING
    - PROCESSING
    - COMPLETED
    - FAILED_TEMP
    - FAILED
    - ROLLING_BACK
    - ROLLED_BACK
  DateTime:
    type: string
    format: date-time
    description: |
      Date-time stamp. Representation: String formatted according to IETF RFC 3339.
  LcmOperationType:
    type: string
    description: |
      Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation. SCALE | Represents the "Scale VNF" LCM operation. SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation. TERMINATE | Represents the "Terminate VNF" LCM operation. HEAL | Represents the "Heal VNF" LCM operation. OPERATE | Represents the "Operate VNF" LCM operation. CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
    enum:
    - INSTANTIATE
    - SCALE
    - SCALE_TO_LEVEL
    - CHANGE_FLAVOUR
    - TERMINATE
    - HEAL
    - OPERATE
    - CHANGE_EXT_CONN
    - MODIFY_INFO
  Boolean:
    type: boolean
    description: |
      The Boolean is a data type having two values (true and false).
  CancelModeType:
    type: string
    description: |
      Cancellation mode. GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or "ROLLING_BACK" state, the VNFM shall not start any new resource management operation and shall wait for the ongoing resource management operations in the underlying system, typically the VIM, to finish execution or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state. If the VNF LCM operation occurrence is in "STARTING" state, the VNFM shall not start any resource management operation and shall wait for the granting request to finish execution or time out. After that, the VNFM shall put the operation occurrence into the ROLLED_BACK state. FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or "ROLLING_BACK" state, the VNFM shall not start any new resource management operation, shall cancel the ongoing resource management operations in the underlying system, typically the VIM, and shall wait for the cancellation to finish or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state. If the VNF LCM operation occurrence is in "STARTING" state, the VNFM shall not start any resource management operation and put the operation occurrence into the ROLLED_BACK state.
    enum:
    - GRACEFUL
    - FORCEFUL
  AffectedVnfc:
    type: object
    required:
    - changeType
    - computeResource
    - id
    - vduId
    properties:
      id:
        description: |
          Identifier of the Vnfc instance, identifying the applicable "vnfcResourceInfo" entry in the "VnfInstance" data type.
        $ref: '#/definitions/IdentifierInVnf'
      vduId:
        description: |
          Identifier of the related VDU in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      changeType:
        type: string
        description: |
          Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY For a temporary resource, an AffectedVnfc structure exists as long as the temporary resource exists.
        enum:
        - ADDED
        - REMOVED
        - MODIFIED
        - TEMPORARY
      computeResource:
        description: |
          Reference to the VirtualCompute resource. Detailed information is (for new and modified resources) or has been (for removed resources) available from the VIM.
        $ref: '#/definitions/ResourceHandle'
      resourceDefinitionId:
        description: |
          The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. It shall be present when an applicable GrantInfo for thegranted resource exists. See note.
        $ref: '#/definitions/IdentifierLocal'
      zoneId:
        description: |
          The identifier of the resource zone, as managed by the resource management
           layer (typically, the VIM), where the referenced VirtualCompute resource is placed.
           Shall be provided if this information is available from the VIM.
        $ref: '#/definitions/Identifier'
      metadata:
        description: |
          Metadata about this resource. The content of this attribute shall be a copy of the content of the "metadata" attribute of the VnfcResourceInfo structure.
        $ref: '#/definitions/KeyValuePairs'
      affectedVnfcCpIds:
        type: array
        description: |
          Identifiers of CP(s) of the VNFC instance that were affected by the change. Shall be present for those affected CPs of the VNFC instance that are associated to an external CP of the VNF instance. May be present for further affected CPs of the VNFC instance.
        items:
          $ref: '#/definitions/IdentifierInVnf'
      addedStorageResourceIds:
        type: array
        description: |
          References to VirtualStorage resources that have been added. Each value refers to a VirtualStorageResourceInfo item in the VnfInstance that was added to the VNFC. It shall be provided if at least one storage resource was added to the VNFC.
        items:
          $ref: '#/definitions/IdentifierInVnf'
      removedStorageResourceIds:
        type: array
        description: |
          References to VirtualStorage resources that have been removed. The value contains the identifier of a VirtualStorageResourceInfo item that has been removed from the VNFC, and might no longer exist in the VnfInstance. It shall be provided if at least one storage resource was removed from the VNFC.
        items:
          $ref: '#/definitions/IdentifierInVnf'
    description: |
      This type provides information about added, deleted, modified and temporary VNFCs.
  IdentifierLocal:
    type: string
    description: |
      An identifier that is unique within a limited local scope other than above listed identifiers, such as within a complex data structure or within a request-response pair. Representation: string of variable length.
  AffectedVirtualLink:
    type: object
    required:
    - changeType
    - id
    - networkResource
    - vnfVirtualLinkDescId
    properties:
      id:
        description: |
          Identifier of the virtual link instance, identifying the applicable "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type.
        $ref: '#/definitions/IdentifierInVnf'
      vnfVirtualLinkDescId:
        description: |
          Identifier of the related VLD in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      changeType:
        type: string
        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.
        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: '#/definitions/ResourceHandle'
      resourceDefinitionId:
        description: |
          The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. It shall be present when an applicable GrantInfo for the granted resource exists. The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to assist in correlating the resource changes performed during the LCM operation with the granted resources in a specific Grant exchange, which is identified by the "grantId" available in the "Individual VNF lifecycle management operation occurrence" and the "id" in the "Individual Grant".
        $ref: '#/definitions/IdentifierLocal'
      zoneId:
        description: |
          The identifier of the resource zone, as managed by the resource management layer (typically, the VIM), where the referenced VirtualNetwork resource is placed. Shall be provided if this information is available from the VIM.
        $ref: '#/definitions/Identifier'
      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: '#/definitions/KeyValuePairs'
    description: |
      This type provides information about added, deleted, modified and temporary VLs.
  AffectedVirtualStorage:
    type: object
    required:
    - changeType
    - id
    - storageResource
    - virtualStorageDescId
    properties:
      id:
        description: |
          Identifier of the storage instance, identifying the applicable "virtualStorageResourceInfo" entry in the "VnfInstance" data type.
        $ref: '#/definitions/IdentifierInVnf'
      virtualStorageDescId:
        description: |
          Identifier of the related VirtualStorage descriptor in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      changeType:
        type: string
        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.
        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: '#/definitions/ResourceHandle'
      resourceDefinitionId:
        description: |
          The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. It shall be present when an applicable GrantInfo for the granted resource exists. The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to assist in correlating the resource changes performed during the LCM operation with the granted resources in a specific Grant exchange, which is identified by the "grantId" available in the "Individual VNF lifecycle management operation occurrence" and the "id" in the "Individual Grant".
        $ref: '#/definitions/IdentifierLocal'
      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: '#/definitions/KeyValuePairs'
    description: |
      This type provides information about added, deleted, modified and temporary virtual storage resources.
  VnfInfoModifications:
    type: object
    properties:
      vnfInstanceName:
        type: string
        description: |
          If present, this attribute signals modifications of the "vnfInstanceName" attribute in "VnfInstance".
      vnfInstanceDescription:
        type: string
        description: |
          If present, this attribute signals modifications of the "vnfInstanceDescription" attribute in "VnfInstance".
      vnfConfigurableProperties:
        description: |
          If present, this attribute signals modifications of the "vnfConfigurableProperties" attribute in "VnfInstance".
        $ref: '#/definitions/KeyValuePairs'
      metadata:
        description: |
          If present, this attribute signals modifications of the "metadata" attribute in "VnfInstance".
        $ref: '#/definitions/KeyValuePairs'
      extensions:
        description: |
          If present, this attribute signals modifications of the "extensions" attribute in "VnfInstance".
        $ref: '#/definitions/KeyValuePairs'
      vnfdId:
        description: |
          If present, this attribute signals modifications of the "vnfdId" attribute in "VnfInstance".
        $ref: '#/definitions/Identifier'
      vnfProvider:
        type: string
        description: |
          If present, this attribute signals modifications of the "vnfProvider" attribute in "VnfInstance". If present, this attribute (which depends on the value of the "vnfPkgId" attribute) was modified implicitly following a request to modify the "vnfPkgId" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfPkgId" attribute.
      vnfProductName:
        type: string
        description: |
          If present, this attribute signals modifications of the "vnfProductName" attribute in "VnfInstance". If present, this attribute (which depends on the value of the "vnfPkgId" attribute) was modified implicitly following a request to modify the "vnfPkgId" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfPkgId" attribute.
      vnfSoftwareVersion:
        description: |
          If present, this attribute signals modifications of the "vnfSoftwareVersion" attribute in "VnfInstance".
        $ref: '#/definitions/Version'
      vnfdVersion:
        description: |
          If present, this attribute signals modifications of the "vnfdVersion" attribute in "VnfInstance". If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly following a request to modify the "vnfdId" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfdId" attribute.
        $ref: '#/definitions/Version'
      vnfcInfoModifications:
        type: array
        description: |
          If present, this attribute signals modifications of certain entries in the "vnfcInfo" attribute array in the "instantiatedVnfInfo" attribute of "VnfInstance", as defined in clause 5.5.2.12
        items:
          $ref: '#/definitions/VnfcInfoModifications'
      vnfcInfoModificationsDeleteIds:
        type: array
        description: |
          If present, this attribute signals the deletion of certain entries in the "vnfcInfo" attribute array in the "instantiatedVnfInfo" attribute of "VnfInstance", as defined in clause 5.5.2.12
        items:
          $ref: '#/definitions/Identifier'
    description: |
      This type represents attribute modifications that were performed on an "Individual VNF instance" resource. The attributes that can be included consist of those requested to be modified explicitly in the "VnfInfoModificationRequest" data structure, and additional attributes of the "VnfInstance" data structure that were modified implicitly e.g. when modifying the referenced VNF package.
  VnfcInfoModifications:
    type: object
    required:
    - id
    - vnfcConfigurableProperties
    properties:
      id:
        description: |
          Identifier of the VNFC instance of which the information is to be modified.
        $ref: '#/definitions/IdentifierInVnf'
      vnfcConfigurableProperties:
        description: |
          Changes of the configurable properties of the VNFC instance.
        $ref: '#/definitions/KeyValuePairs'
    description: |
      This type represents modifications of an entry in an array of "VnfcInfo" objects. It shall comply with the provisions defined in table 5.5.3.24-1.
  LccnSubscription:
    type: object
    required:
    - _links
    - callbackUri
    - id
    properties:
      id:
        description: |
          Identifier of this subscription resource.
        $ref: '#/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: '#/definitions/Uri'
      _links:
        $ref: '#/definitions/LccnSubscription__links'
    description: |
      This type represents a subscription related to notifications about VNF lifecycle changes.
  LifecycleChangeNotificationsFilter:
    type: object
    properties:
      vnfInstanceSubscriptionFilter:
        description: |
          Filter criteria to select VNF instances about which to notify.
        $ref: '#/definitions/VnfInstanceSubscriptionFilter'
      notificationTypes:
        type: array
        description: |
          Match particular notification types. Permitted values: - VnfLcmOperationOccurrenceNotification - VnfIdentifierCreationNotification - VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
        items:
          type: string
      operationTypes:
        type: array
        description: |
          Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
        items:
          $ref: '#/definitions/LcmOperationType'
      operationStates:
        type: array
        description: |
          Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
        items:
          $ref: '#/definitions/LcmOperationStateType'
    description: |
      This type represents a subscription filter related to notifications about VNF lifecycle changes. 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).
  VnfInstanceSubscriptionFilter:
    type: object
    properties:
      vnfdIds:
        type: array
        description: |
          If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
        items:
          $ref: '#/definitions/Identifier'
      vnfProductsFromProviders:
        type: array
        description: |
          If present, match VNF instances that belong to VNF products from certain providers. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
        items:
          $ref: '#/definitions/VnfInstanceSubscriptionFilter_vnfProductsFromProviders'
      vnfInstanceIds:
        type: array
        description: |
          If present, match VNF instances with an instance identifier listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
        items:
          $ref: '#/definitions/Identifier'
      vnfInstanceNames:
        type: array
        description: |
          If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
        items:
          type: string
    description: |
      This type represents subscription filter criteria to match VNF instances.
  LccnSubscriptionRequest:
    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: '#/definitions/Uri'
      authentication:
        description: |
          Authentication parameters to configure the use of Authorization when sending notifications corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. This attribute shall only be present if the subscriber requires authorization of notifications.
        $ref: '#/definitions/SubscriptionAuthentication'
    description: |
      This type represents a subscription request related to notifications about VNF lifecycle changes.
  SubscriptionAuthentication:
    type: object
    required:
    - authType
    properties:
      authType:
        type: array
        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.
        items:
          type: string
      paramsBasic:
        $ref: '#/definitions/SubscriptionAuthentication_paramsBasic'
      paramsOauth2ClientCredentials:
        $ref: '#/definitions/SubscriptionAuthentication_paramsOauth2ClientCredentials'
  VnfInstance_instantiatedVnfInfo:
    type: object
    required:
    - flavourId
    - vnfState
    properties:
      flavourId:
        description: |
          Identifier of the VNF deployment flavour applied to this VNF instance.
        $ref: '#/definitions/IdentifierInVnfd'
      vnfState:
        description: |
          The state of the VNF instance.
        $ref: '#/definitions/VnfOperationalStateType'
      scaleStatus:
        type: array
        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. This attribute shall be present if the VNF supports scaling. See clause B.2 for an explanation of VNF scaling.
        items:
          $ref: '#/definitions/ScaleInfo'
      maxScaleLevels:
        type: array
        description: |
          Maximum allowed scale levels of the VNF, one entry per aspect. This attribute shall be present if the VNF supports scaling.
        items:
          $ref: '#/definitions/ScaleInfo'
      extCpInfo:
        type: array
        description: |
          Information about the external CPs exposed by the VNF instance.
        items:
          $ref: '#/definitions/VnfExtCpInfo'
        minItems: 1
      extVirtualLinkInfo:
        type: array
        description: |
          Information about the external VLs the VNF instance is connected to.
        items:
          $ref: '#/definitions/ExtVirtualLinkInfo'
      extManagedVirtualLinkInfo:
        type: array
        description: |
          External virtual links the VNF instance is connected to.
        items:
          $ref: '#/definitions/ExtManagedVirtualLinkInfo'
      monitoringParameters:
        type: array
        description: |
          Active monitoring parameters.
        items:
          $ref: '#/definitions/MonitoringParameter'
      localizationLanguage:
        type: string
        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.
      vnfcResourceInfo:
        type: array
        description: |
          Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.
        items:
          $ref: '#/definitions/VnfcResourceInfo'
      virtualLinkResourceInfo:
        type: array
        description: |
          Information about the virtualised network resources used by the VLs of the VNF instance.
        items:
          $ref: '#/definitions/VnfVirtualLinkResourceInfo'
      virtualStorageResourceInfo:
        type: array
        description: |
          Information on the virtualised storage resource(s) used as storage for the VNF instance.
        items:
          $ref: '#/definitions/VirtualStorageResourceInfo'
    description: |
      Information specific to an instantiated VNF instance. This attribute shall be present if the instantiateState attribute value is INSTANTIATED.
  VnfInstance__links:
    type: object
    required:
    - self
    properties:
      self:
        description: URI of this resource.
        $ref: '#/definitions/Link'
      indicators:
        description: Indicators related to this VNF instance, if applicable.
        $ref: '#/definitions/Link'
      instantiate:
        description: |
          Link to the "Instantiate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance in NOT_INSTANTIATED state).
        $ref: '#/definitions/Link'
      terminate:
        description: |
          Link to the "Terminate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state).
        $ref: '#/definitions/Link'
      scale:
        description: |
          Link to the "Scale VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state).
        $ref: '#/definitions/Link'
      scaleToLevel:
        description: |
          Link to the "Scale VNF to level task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state).
        $ref: '#/definitions/Link'
      changeFlavour:
        description: |
          Link to the "Change VNF flavour task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state).
        $ref: '#/definitions/Link'
      heal:
        description: |
          Link to the "Heal VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state).
        $ref: '#/definitions/Link'
      operate:
        description: |
          Link to the "Operate VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state).
        $ref: '#/definitions/Link'
      changeExtConn:
        description: |
          Link to the "Change external VNF connectivity task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state).
        $ref: '#/definitions/Link'
    description: |
      Links to resources related to this resource.
  IpOverEthernetAddressInfo_addressRange:
    type: object
    required:
    - maxAddress
    - minAddress
    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'
    description: |
      An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
  IpOverEthernetAddressInfo_ipAddresses:
    type: object
    required:
    - type
    properties:
      type:
        type: string
        description: |
          The type of the IP addresses. Permitted values: IPV4, IPV6.
        enum:
        - IPV4
        - IPV6
      addresses:
        type: array
        description: |
          Fixed addresses assigned (from the subnet defined by "subnetId" if provided). Exactly one of "addresses" or "addressRange" shall be present.
        items:
          $ref: '#/definitions/IpAddress'
      isDynamic:
        type: boolean
        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.
      addressRange:
        $ref: '#/definitions/IpOverEthernetAddressInfo_addressRange'
      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: '#/definitions/IdentifierInVim'
  VnfcResourceInfo_vnfcCpInfo:
    type: object
    required:
    - cpdId
    - id
    properties:
      id:
        description: |
          Identifier of this VNFC CP instance and the associated array entry.
        $ref: '#/definitions/IdentifierInVnf'
      cpdId:
        description: |
          Identifier of the VDU CPD, cpdId, in the VNFD.
        $ref: '#/definitions/IdentifierInVnfd'
      vnfExtCpId:
        description: |
          When the VNFC CP is exposed as external CP of the VNF, the identifier of this external VNF CP.
        $ref: '#/definitions/IdentifierInVnf'
      cpProtocolInfo:
        type: array
        description: |
          Network protocol information for this CP.
        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: '#/definitions/IdentifierInVnf'
      metadata:
        description: |
          Metadata about this CP.
        $ref: '#/definitions/KeyValuePairs'
  VnfInstanceMetadata_managedBy:
    type: object
    properties:
      extensionSubtype:
        type: string
      extensionName:
        type: string
  VnfInstanceMetadata_tags:
    type: object
    properties:
      name:
        type: string
      autoCreated:
        type: boolean
  IpOverEthernetAddressData_addressRange:
    type: object
    required:
    - maxAddress
    - minAddress
    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'
    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.
  IpOverEthernetAddressData_ipAddresses:
    type: object
    required:
    - type
    properties:
      type:
        type: string
        description: |
          The type of the IP addresses. Permitted values: IPV4, IPV6.
        enum:
        - IPV4
        - IPV6
      fixedAddresses:
        type: array
        description: |
          Fixed addresses to assign (from the subnet defined by "subnetId" if provided). Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present.
        items:
          $ref: '#/definitions/IpAddress'
      numDynamicAddresses:
        type: integer
        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.
      addressRange:
        $ref: '#/definitions/IpOverEthernetAddressData_addressRange'
      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'
  lcmInterfaces_parameters:
    type: object
    properties:
      name:
        type: string
      type:
        type: string
      value: {}
  HealVnfRequestAdditionalParams_affectedvm:
    type: object
    properties:
      vmid:
        type: string
      vduid:
        type: string
      vmname:
        type: string
  VnfLcmOpOcc_resourceChanges:
    type: object
    properties:
      affectedVnfcs:
        type: array
        description: |
          Information about VNFC instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
        items:
          $ref: '#/definitions/AffectedVnfc'
      affectedVirtualLinks:
        type: array
        description: |
          Information about VL instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
        items:
          $ref: '#/definitions/AffectedVirtualLink'
      affectedVirtualStorages:
        type: array
        description: |
          Information about virtualised storage instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
        items:
          $ref: '#/definitions/AffectedVirtualStorage'
    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.
  VnfLcmOpOcc__links:
    type: object
    required:
    - self
    - vnfInstance
    properties:
      self:
        description: |
          URI of this resource.
        $ref: '#/definitions/Link'
      vnfInstance:
        description: |
          Link to the VNF instance that the operation applies to.
        $ref: '#/definitions/Link'
      grant:
        description: |
          Link to the grant for this operation, if one exists.
        $ref: '#/definitions/Link'
      cancel:
        description: |
          Link to the task resource that represents the "cancel" operation for this VNF LCM operation occurrence, if cancelling is currently allowed.
        $ref: '#/definitions/Link'
      retry:
        description: |
          Link to the task resource that represents the "retry" operation for this VNF LCM operation occurrence, if retrying is currently allowed.
        $ref: '#/definitions/Link'
      rollback:
        description: |
          Link to the task resource that represents the "rollback" operation for this VNF LCM operation occurrence, if rolling back is currently allowed.
        $ref: '#/definitions/Link'
      fail:
        description: |
          Link to the task resource that represents the "fail" operation for this VNF LCM operation occurrence, if declaring as failed is currently allowed.
        $ref: '#/definitions/Link'
    description: |
      Links to resources related to this resource.
  LccnSubscription__links:
    type: object
    required:
    - self
    properties:
      self:
        description: |
          URI of this resource.
        $ref: '#/definitions/Link'
    description: |
      Links to resources related to this resource.
  VnfInstanceSubscriptionFilter_versions:
    type: object
    required:
    - vnfSoftwareVersion
    properties:
      vnfSoftwareVersion:
        description: |
          Software version to match.
        $ref: '#/definitions/Version'
      vnfdVersions:
        type: array
        description: |
          If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.
        items:
          $ref: '#/definitions/Version'
  VnfInstanceSubscriptionFilter_vnfProducts:
    type: object
    required:
    - vnfProductName
    properties:
      vnfProductName:
        type: string
        description: |
          Name of the VNF product to match.
      versions:
        type: array
        description: |
          If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.
        items:
          $ref: '#/definitions/VnfInstanceSubscriptionFilter_versions'
  VnfInstanceSubscriptionFilter_vnfProductsFromProviders:
    type: object
    required:
    - vnfProvider
    properties:
      vnfProvider:
        type: string
        description: |
          Name of the VNF provider to match.
      vnfProducts:
        type: array
        description: |
          If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.
        items:
          $ref: '#/definitions/VnfInstanceSubscriptionFilter_vnfProducts'
  SubscriptionAuthentication_paramsBasic:
    type: object
    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.
    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.
  SubscriptionAuthentication_paramsOauth2ClientCredentials:
    type: object
    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. 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.
      clientPassword:
        type: string
        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.
      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'
    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.
externalDocs:
  description: ETSI GS NFV-SOL 003 V2.7.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf
