openapi: 3.0.2
info:
  title: SOL003 - VNF Lifecycle Operation Granting interface
  description: |
    SOL003 - VNF Lifecycle Operation Granting interface

    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.

    Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
  contact:
    name: NFV-SOL WG
  license:
    name: ETSI Forge copyright notice
    url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
  version: '1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1'
externalDocs:
  description: ETSI GS NFV-SOL 003 V4.5.1
  url: >-
    https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf
servers:
  - url: 'http://127.0.0.1/grant/v1'
  - url: 'https://127.0.0.1/grant/v1'
paths:
  /api_versions:
    get:
      description: >
        The GET method reads API version information. This method shall follow
        the provisions specified in SOL013 table 9.3.3.3.2-1 for request and
        response data structures, and response codes. URI query parameters are
        not supported.
      responses:
        '200':
          description: >
            API version information was read successfully. The response body
            shall contain API version information, as defined in clause 7.1.6.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            Version:
              description: The used API version.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: |
                  This type represents API version information.
                type: object
                required:
                  - uriPrefix
                  - apiVersions
                properties:
                  uriPrefix:
                    description: >
                      Specifies the URI prefix for the API, in the following
                      form {apiRoot}/{apiName}/{apiMajorVersion}/.
                    type: string
                  apiVersions:
                    description: >
                      Version(s) supported for the API signaled by the uriPrefix
                      attribute.
                    type: array
                    items:
                      type: object
                      required:
                        - version
                      properties:
                        version:
                          description: >
                            Identifies a supported version. The value of the
                            version attribute shall be a version identifier as
                            specified in clause 9.1 (SOL013).
                          type: string
                        isDeprecated:
                          description: >
                            If such information is available, this attribute
                            indicates whether use of the version signaled by the
                            version attribute is deprecated (true) or not
                            (false).

                            A deprecated version is still supported by the API
                            producer but is recommended not to be used any
                            longer. When a version is no longer supported, it
                            does not appear in the response body.
                          type: boolean
                        retirementDate:
                          description: >
                            Date-time stamp. Representation: String formatted
                            according to IETF RFC 3339.
                          type: string
                          format: date-time
        '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 message
            content 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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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 message content with an empty array.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '413':
          description: >
            413 PAYLOAD TOO LARGE

            If the message content of a request is larger than the amount of
            data the API producer is willing or able to process, it shall
            respond with this response code, following the provisions in IETF
            RFC 7231 for the use of the "Retry-After" HTTP header and for
            closing the connection. The "ProblemDetails" structure may be
            omitted.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '414':
          description: >
            414 URI TOO LONG

            If the request URI of a request is longer than the API producer is
            willing or able to process, it shall respond with this response
            code. This condition can e.g. be caused by passing long queries in
            the request URI of a GET request. The "ProblemDetails" structure may
            be omitted.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '416':
          description: |
            416 Range Not Satisfiable
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '422':
          description: >
            422 UNPROCESSABLE CONTENT

            If the message content 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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '429':
          description: >
            429 TOO MANY REQUESTS

            If the API consumer has sent too many requests in a defined period
            of time and the API producer is able to detect that condition ("rate
            limiting"), the API producer shall respond with this response code,
            following the provisions in IETF RFC 6585 [17] for the use of the
            "Retry-After" HTTP header. The "ProblemDetails" structure shall be
            provided and shall include in the "detail" attribute more
            information about the source of the problem.

            The period of time and allowed number of requests are configured
            within the API producer by means outside the scope of the present
            document.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
    post:
      description: >
        This method is not supported. When this method is requested on this
        resource, the API producer shall return a "405 Method Not Allowed"
        response as defined in SOL013 clause 6.4.
      responses:
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
    put:
      description: >
        This method is not supported. When this method is requested on this
        resource, the API producer shall return a "405 Method Not Allowed"
        response as defined in SOL013 clause 6.4.
      responses:
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
    patch:
      description: >
        This method is not supported. When this method is requested on this
        resource, the API producer shall return a "405 Method Not Allowed"
        response as defined in SOL013 clause 6.4.
      responses:
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
    delete:
      description: >
        This method is not supported. When this method is requested on this
        resource, the API producer shall return a "405 Method Not Allowed"
        response as defined in SOL013 clause 6.4.
      responses:
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
  /grants:
    post:
      description: >
        The POST method requests a grant for a particular VNF lifecycle
        operation. See clause 9.4.2.3.1.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response. Reference: IETF
            RFC 7231.
          in: header
          required: true
          schema:
            type: string
        - name: Authorization
          description: |
            The authorization token for the request. Reference: IETF RFC 7235.
          in: header
          required: false
          schema:
            type: string
        - name: Version
          description: |
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/GrantRequest'
      responses:
        '201':
          $ref: '#/components/responses/Grants.Post.201'
        '202':
          $ref: '#/components/responses/Grants.Post.202'
        '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 message
            content 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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '403':
          $ref: '#/components/responses/Grants.Post.403'
        '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 message content with an empty array.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '422':
          description: >
            422 UNPROCESSABLE CONTENT

            If the message content 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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
  '/grants/{grantId}':
    parameters:
      - $ref: '#/components/parameters/GrantId'
    get:
      description: |
        The GET method reads a grant. See clause 9.4.3.3.2.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response. Reference: IETF
            RFC 7231.
          in: header
          required: true
          schema:
            type: string
        - name: Authorization
          description: |
            The authorization token for the request. Reference: IETF RFC 7235.
          in: header
          required: false
          schema:
            type: string
        - name: Version
          description: |
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/IndividualGrant.Get.200'
        '202':
          $ref: '#/components/responses/IndividualGrant.Get.202'
        '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 message
            content 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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '403':
          $ref: '#/components/responses/IndividualGrant.Get.403'
        '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 message content with an empty array.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '422':
          description: >
            422 UNPROCESSABLE CONTENT

            If the message content 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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
        '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:
              description: The MIME type of the body of the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              schema:
                type: string
                maximum: 1
                minimum: 0
            Version:
              description: |
                Version of the API used in the response.
              schema:
                type: string
                maximum: 1
                minimum: 1
          content:
            application/json:
              schema:
                description: >
                  The definition of the general "ProblemDetails" data structure
                  from IETF RFC 7807 is reproduced inthis structure. Compared to
                  the general framework defined in IETF RFC 7807, 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
                  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.
                type: object
                required:
                  - status
                  - detail
                properties:
                  type:
                    description: >
                      A URI reference according to IETF RFC 3986 that identifies
                      the problem type. It is encouraged that the URI provides
                      human-readable documentation for the problem (e.g. using
                      HTML) when dereferenced. When this member is not present,
                      its value is assumed to be "about:blank".
                    type: string
                    format: URI
                  title:
                    description: >
                      A short, human-readable summary of the problem type. It
                      should not change from occurrence to occurrence of the
                      problem, except for purposes of localization. If type is
                      given and other than "about:blank", this attribute shall
                      also be provided. A short, human-readable summary of the
                      problem type.  It SHOULD NOT change from occurrence to
                      occurrence of the problem, except for purposes of
                      localization (e.g., using proactive content negotiation;
                      see [RFC7231], Section 3.4).
                    type: string
                  status:
                    description: >
                      The HTTP status code for this occurrence of the problem.
                      The HTTP status code ([RFC7231], Section 6) generated by
                      the origin server for this occurrence of the problem.
                    type: integer
                  detail:
                    description: >
                      A human-readable explanation specific to this occurrence
                      of the problem.
                    type: string
                  instance:
                    description: >
                      A URI reference that identifies the specific occurrence of
                      the problem. It may yield further information if
                      dereferenced.
                    type: string
                    format: URI
components:
  parameters:
    GrantId:
      name: grantId
      in: path
      description: |
        Identifier of the grant.
        This identifier can be retrieved from the resource referenced by the
        "Location" HTTP header in the response to a POST request granting a
        new VNF lifecycle operation. It can also be retrieved from the "id"
        attribute in the message content of that response.
      required: true
      style: simple
      explode: false
      schema:
        type: string
  requestBodies:
    GrantRequest:
      content:
        application/json:
          schema:
            description: "This type represents a grant request.\nNOTE 1:\tThe VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, QueryVnf and\n        ModifyVnfInformation can be executed by the VNFM without requesting granting.\nNOTE 2: If the granting request is for InstantiateVNF, only one of the three parameters (instantiationLevel or\n        targetScaleLevelInfo or addResources) shall be present.\nNOTE 3:\tThe NFVO will assume that the VNFM will be responsible to both allocate and release the temporary\n        resource during the runtime of the LCM operation. This means, the resource can be allocated and\n        consumed after the \"start\" notification for the LCM operation is sent by the VNFM, and the resource\n        will be released before the \"result\" notification of the VNF LCM operation is sent by the VNFM. In the \n        case of PaaS Service requests, the handling of the allocation and release of the PaaS Service is a \n        responsibility of the NFVO (supported by corresponding PaaS Service management functions) \n        based on the information about the progress and completion of the VNF LCM operation.\nNOTE 4:\tFor the affinity/anti-affinity rules defined in the VNFD and the placement constraints in the\n        GrantVnfLifecycleOperation as defined in this clause, the following applies: Assuming unlimited\n        capacity, the combination of all the aforementioned rules shall be satisfiable by at least one possible\n        placement of the new resources, with the exception that some of the rules with fallbackBestEffort\n        may be unsatisfiable due to the actual placement of existing resources. In this case, rules with\n        fallbackBestEffort are allowed to be violated only in relation to the placement of existing resources.\nNOTE 5:\tPassing constraints allows the VNFM or the lifecycle management scripts to influence resource\n        placement decisions by the NFVO to ensure VNF properties such as performance or fault tolerance.\nNOTE 6:\tIf fallbackBestEffort is present and set to \"true\" in one or more placement constraints and the NFVO\n        cannot find a resource placement that satisfies all of these due to limited capacity, the NFVO shall\n        process each such affinity/antiAffinity constraint in a best effort manner, in which case, if specified\n        resources cannot be allocated based on the specified placement constraint, the NFVO shal look for\n        an alternate best effort placement for the specified resources to be granted. In the best effort antiaffinity case, the resources are expected to be spread optimally over all available instances of scope\n        (e.g. zones), and in the best effort affinity case, they are expected to be distributed optimally over as\n        few instances of scope as possible. Being able to satisfy a \"best-effort\" constraint in a best effort\n        manner only, as defined above, shall not lead to rejecting the grant.\nNOTE 7: The target size for VNF instantiation may be specified in either instantiationLevelId or\n        targetScaleLevelInfo, but not both.\nNOTE 8: If targetScaleLevelInfo is specified, information provided in targetScaleLevelInfo shall be used for\n        scalable constituents of the VNF (e.g, VDUs/VLs) in the granting process. For scaling aspects not\n        specified in targetScaleLevelInfo or for the VNF constituents (e.g.,VDUs/VLs) that are not scalable,\n        the default instantiation level as declared in the VNFD shall be used in the granting process.\nNOTE 9: For resources related to a VDU that has the attribute isNumOfInstancesClusterBased set to TRUE, \n        only one occurrence of the addResources, or tempResources or removeResources, or \n        updateResources shall be included per descriptor indicated in the resourceTemplateId of the \n        ResourceDefinition, not one per VNFC instance.\nNOTE 10: If the granting request is for InstantiateVNF and if there are deployable modules defined in the \n         applicable VNF DF in the VNFD, either the selectedDeployableModules attribute or the \n         addResource attribute shall be included but not both. If selectedDeployableModules is included, \n         either the instantiationLevel or targetScaleLevelInfo attribute shall be also included.\n"
            anyOf:
              - required:
                  - instantiationLevelId
              - required:
                  - targetScaleLevelInfo
              - required:
                  - addResources
            type: object
            required:
              - vnfInstanceId
              - vnfLcmOpOccId
              - vnfdId
              - operation
              - isAutomaticInvocation
              - _links
            properties:
              vnfInstanceId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vnfLcmOpOccId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vnfdId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              dstVnfdId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              flavourId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              operation:
                description: >
                  The enumeration GrantedLcmOperationType defines the permitted
                  values  to represent VNF lifecycle operation types in grant
                  requests. 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.      CHANGE_VNFPKG | Represents
                  the "Change current VNF package" LCM operation.
                  CREATE_SNAPSHOT | Represents the "Create VNF snapshot" LCM
                  operation. REVERT_TO_SNAPSHOT | Represents the "Revert to VNF
                  snapshot" LCM operation. SELECT_DEPL_MODS | Represents the
                  “Select VNF deployable modules” LCM operation.
                type: string
                enum:
                  - INSTANTIATE
                  - SCALE
                  - SCALE_TO_LEVEL
                  - CHANGE_FLAVOUR
                  - TERMINATE
                  - HEAL
                  - OPERATE
                  - CHANGE_EXT_CONN
                  - CHANGE_VNFPKG
                  - CREATE_SNAPSHOT
                  - REVERT_TO_SNAPSHOT
                  - SELECT_DEPL_MODS
              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.
                type: boolean
              instantiationLevelId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              targetScaleLevelInfo:
                description: >
                  This attribute shall only be used for Instantiate VNF
                  requests. This is applicable if VNF supports target scale
                  level instantiation.

                  This attribute provides an alternative way to define the
                  resources to be added for the VNFs.

                  For each scaling aspect of the current deployment flavour, the
                  attribute specifies the scale level of VNF constituents (e.g.,
                  VDU level) to be instantiated. See notes 2, 7, 8 and 10.
                type: array
                items:
                  description: >
                    This type represents the scale level of a VNF instance
                    related to a scaling aspect.
                  type: object
                  required:
                    - aspectId
                    - scaleLevel
                  properties:
                    aspectId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    vnfdId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    scaleToLevel:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
              selectedDeployableModule:
                description: >
                  References a selected deployable module. Resources related to
                  VDUs that belong to not selected deployable modules shall not
                  be considered in the granting

                  This attribute shall only be used for the instantiate VNF
                  request. See note 10.
                type: array
                items:
                  description: |
                    An identifier that is unique within a VNF descriptor.
                  type: string
              addResources:
                description: >
                  List of resource definitions in the VNFD for resources to be
                  added by the LCM operation  which is related to this grant
                  request, with one entry per resource. See notes 2, 9 and 10.
                type: array
                items:
                  description: "This type provides information of an existing or proposed resource or PaaS Service used by the VNF.\nNOTE 1:\tThe use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples\n          for such a configuration.\nNOTE 2:\tIn the context of an operation that changes the current VNF package, the following applies: If this\n          ResourceDefinition is related to a resource to be created or modified, the \"vnfdId\" attribute shall\n          contain the identifier of the destination VNFD. If this ResourceDefinition is related to a resource\n          to be deleted, the \"vnfdId\" attribute shall contain the identifier of the source VNFD. If this\n          ResourceDefinition is related to a temporary resource, the \"vnfdId\" attribute shall contain the\n          identifier of either the source VNFD or the destination VNFD.\n"
                  type: object
                  required:
                    - id
                    - type
                    - resourceTemplateId
                  properties:
                    id:
                      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.
                      type: string
                    type:
                      description: >
                        Type of the resource definition referenced. Permitted
                        values: * COMPUTE * VL * STORAGE * LINKPORT *
                        OSCONTAINER * VIRTUALCP * PAASSERVICE
                      type: string
                      enum:
                        - COMPUTE
                        - VL
                        - STORAGE
                        - LINKPORT
                        - OSCONTAINER
                        - VIRTUALCP
                        - PAASSERVICE
                    vduId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    vnfdId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceTemplateId:
                      description: >
                        Reference to the applicable resource template in the
                        VNFD as follows:
                          - if type="VL" : VnfVirtualLinkDesc
                          - if type="COMPUTE": VirtualComputeDesc
                          - if type="LINKPORT" : VnfExtCpd
                          - if type="STORAGE" : VirtualStorageDesc
                          - If type="OSCONTAINER": OsContainerDesc
                          - If type="VIRTUALCP": VirtualCpd
                          - If type="PAASSERVICE": PaasServiceRequest
                        - Cardinality may be greater than "1" when
                        type="OSCONTAINER" and multiple references to
                        OsContainerDesc are present in the VDU indicated by the
                        "vduId". Cardinality shall be "1" otherwise.
                      type: array
                      minItems: 1
                      items:
                        description: |
                          An identifier that is unique within a VNF descriptor.
                        type: string
                    secondaryResourceTemplateId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    resource:
                      required:
                        - resourceId
                      type: object
                      description: >
                        This type represents the information that allows
                        addressing a virtualised resource that is used by a VNF
                        instance. Information about the resource is available
                        from the VIM.

                        * NOTE 1: The value set of the "vimLevelResourceType"
                        attribute is within the scope of the VIM or CISM 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). When the container 
                                  infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                  resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                  e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                        * NOTE 2: When the container infrastructure service
                        management is a Kubernetes® instance the resourceId
                        shall be 
                                  populated in the following way:
                                  - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                  per resource type.
                                  - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                  i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                  Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                  manifest.
                                  - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                  the 'metadata.name' field in Kubernetes® manifest.
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                        vimLevelResourceType:
                          description: >
                            Type of the resource in the scope of the VIM or the
                            CISM or the resource provider. See note 1.
                          type: string
                        vimLevelAdditionalResourceInfo:
                          description: >
                            This type represents additional resource information
                            which resource and resource type specific, and which
                            is available from the VIM or the CISM or the
                            resource provider.

                            * NOTE: At least one attribute shall be present.
                          type: object
                          properties:
                            hostName:
                              description: >
                                Name of the host where the resource is
                                allocated. It shall be present for compute
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            persistentVolume:
                              description: >
                                Name of the persistent volume to which the
                                persistent volume claim representing the storage
                                resource is bound. It may be present for storage
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            additionalInfo:
                              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.
                              type: object
                        containerNamespace:
                          description: >
                            The value of the namespace in which the MCIO
                            corresponding to the resource is deployed. This
                            attribute shall be present if the resource is
                            managed by a CISM and it shall be absent otherwise.
                          type: string
                    snapshotResDef:
                      description: "This type represents resource definition information related to a snapshot resource.\nNOTE 1:\tIf present, the value of the \"vduId\" (for a related VDU) in the \"VnfcResourceInfo\" \n        referred by the \"vnfcInfoId\" of the \"VnfcSnapshotInfo\" shall match the value of the \n        \"vduId\" in the resource definition that is signalled in the granting request.\nNOTE 2:\tFor snapshot resource definitions extracted from a VNF snapshot package, only the \n        \"vnfcSnapshotId\" and \"storageSnapshotId\" (in case of a storage type of resource) \n        are applicable. If the snapshot resource definition is generated as part of a VNF \n        snapshot created by the VNFM (that is, not extracted from a VNF snapshot package), \n        the \"snapshotResource\" is applicable. This is a similar specification as the one \n        defined with the \"vduId\", \"resourceTemplateId\" and \"resource\" attributes provided in \n        the ResourceDefinition, but in this case applicable to resources that are defined from \n        VNF snapshots instead of VNFD.\n"
                      type: object
                      required:
                        - vnfSnapshotId
                      properties:
                        vnfSnapshotId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfcSnapshotId:
                          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.
                          type: string
                        storageSnapshotId:
                          description: >
                            An identifier that is unique for the respective type
                            within a VNF instance, but may not be globally
                            unique.
                          type: string
                        snapshotResource:
                          required:
                            - resourceId
                          type: object
                          description: >
                            This type represents the information that allows
                            addressing a virtualised resource that is used by a
                            VNF instance. Information about the resource is
                            available from the VIM.

                            * NOTE 1: The value set of the
                            "vimLevelResourceType" attribute is within the scope
                            of the VIM or CISM 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). When the container 
                                      infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                      resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                      e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                            * NOTE 2: When the container infrastructure service
                            management is a Kubernetes® instance the resourceId
                            shall be 
                                      populated in the following way:
                                      - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                      per resource type.
                                      - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                      i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                      Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                      manifest.
                                      - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                      the 'metadata.name' field in Kubernetes® manifest.
                          properties:
                            vimConnectionId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceProviderId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceId:
                              description: >
                                An identifier maintained by the VIM  or the CISM
                                or other resource provider. It is expected to be
                                unique within the VIM instance.
                              type: string
                            vimLevelResourceType:
                              description: >
                                Type of the resource in the scope of the VIM or
                                the CISM or the resource provider. See note 1.
                              type: string
                            vimLevelAdditionalResourceInfo:
                              description: >
                                This type represents additional resource
                                information which resource and resource type
                                specific, and which is available from the VIM or
                                the CISM or the resource provider.

                                * NOTE: At least one attribute shall be present.
                              type: object
                              properties:
                                hostName:
                                  description: >
                                    Name of the host where the resource is
                                    allocated. It shall be present for compute
                                    resources in the scope of the CISM and shall
                                    be absent otherwise. See note.
                                  type: string
                                persistentVolume:
                                  description: >
                                    Name of the persistent volume to which the
                                    persistent volume claim representing the
                                    storage resource is bound. It may be present
                                    for storage resources in the scope of the
                                    CISM and shall be absent otherwise. See
                                    note.
                                  type: string
                                additionalInfo:
                                  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.
                                  type: object
                            containerNamespace:
                              description: >
                                The value of the namespace in which the MCIO
                                corresponding to the resource is deployed. This
                                attribute shall be present if the resource is
                                managed by a CISM and it shall be absent
                                otherwise.
                              type: string
              tempResources:
                description: >
                  List of resource definitions in the VNFD for resources to be
                  temporarily instantiated during  the runtime of the LCM
                  operation which is related to this grant request, with one
                  entry per  resource. See notes 3 and 9.
                type: array
                items:
                  description: "This type provides information of an existing or proposed resource or PaaS Service used by the VNF.\nNOTE 1:\tThe use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples\n          for such a configuration.\nNOTE 2:\tIn the context of an operation that changes the current VNF package, the following applies: If this\n          ResourceDefinition is related to a resource to be created or modified, the \"vnfdId\" attribute shall\n          contain the identifier of the destination VNFD. If this ResourceDefinition is related to a resource\n          to be deleted, the \"vnfdId\" attribute shall contain the identifier of the source VNFD. If this\n          ResourceDefinition is related to a temporary resource, the \"vnfdId\" attribute shall contain the\n          identifier of either the source VNFD or the destination VNFD.\n"
                  type: object
                  required:
                    - id
                    - type
                    - resourceTemplateId
                  properties:
                    id:
                      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.
                      type: string
                    type:
                      description: >
                        Type of the resource definition referenced. Permitted
                        values: * COMPUTE * VL * STORAGE * LINKPORT *
                        OSCONTAINER * VIRTUALCP * PAASSERVICE
                      type: string
                      enum:
                        - COMPUTE
                        - VL
                        - STORAGE
                        - LINKPORT
                        - OSCONTAINER
                        - VIRTUALCP
                        - PAASSERVICE
                    vduId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    vnfdId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceTemplateId:
                      description: >
                        Reference to the applicable resource template in the
                        VNFD as follows:
                          - if type="VL" : VnfVirtualLinkDesc
                          - if type="COMPUTE": VirtualComputeDesc
                          - if type="LINKPORT" : VnfExtCpd
                          - if type="STORAGE" : VirtualStorageDesc
                          - If type="OSCONTAINER": OsContainerDesc
                          - If type="VIRTUALCP": VirtualCpd
                          - If type="PAASSERVICE": PaasServiceRequest
                        - Cardinality may be greater than "1" when
                        type="OSCONTAINER" and multiple references to
                        OsContainerDesc are present in the VDU indicated by the
                        "vduId". Cardinality shall be "1" otherwise.
                      type: array
                      minItems: 1
                      items:
                        description: |
                          An identifier that is unique within a VNF descriptor.
                        type: string
                    secondaryResourceTemplateId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    resource:
                      required:
                        - resourceId
                      type: object
                      description: >
                        This type represents the information that allows
                        addressing a virtualised resource that is used by a VNF
                        instance. Information about the resource is available
                        from the VIM.

                        * NOTE 1: The value set of the "vimLevelResourceType"
                        attribute is within the scope of the VIM or CISM 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). When the container 
                                  infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                  resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                  e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                        * NOTE 2: When the container infrastructure service
                        management is a Kubernetes® instance the resourceId
                        shall be 
                                  populated in the following way:
                                  - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                  per resource type.
                                  - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                  i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                  Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                  manifest.
                                  - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                  the 'metadata.name' field in Kubernetes® manifest.
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                        vimLevelResourceType:
                          description: >
                            Type of the resource in the scope of the VIM or the
                            CISM or the resource provider. See note 1.
                          type: string
                        vimLevelAdditionalResourceInfo:
                          description: >
                            This type represents additional resource information
                            which resource and resource type specific, and which
                            is available from the VIM or the CISM or the
                            resource provider.

                            * NOTE: At least one attribute shall be present.
                          type: object
                          properties:
                            hostName:
                              description: >
                                Name of the host where the resource is
                                allocated. It shall be present for compute
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            persistentVolume:
                              description: >
                                Name of the persistent volume to which the
                                persistent volume claim representing the storage
                                resource is bound. It may be present for storage
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            additionalInfo:
                              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.
                              type: object
                        containerNamespace:
                          description: >
                            The value of the namespace in which the MCIO
                            corresponding to the resource is deployed. This
                            attribute shall be present if the resource is
                            managed by a CISM and it shall be absent otherwise.
                          type: string
                    snapshotResDef:
                      description: "This type represents resource definition information related to a snapshot resource.\nNOTE 1:\tIf present, the value of the \"vduId\" (for a related VDU) in the \"VnfcResourceInfo\" \n        referred by the \"vnfcInfoId\" of the \"VnfcSnapshotInfo\" shall match the value of the \n        \"vduId\" in the resource definition that is signalled in the granting request.\nNOTE 2:\tFor snapshot resource definitions extracted from a VNF snapshot package, only the \n        \"vnfcSnapshotId\" and \"storageSnapshotId\" (in case of a storage type of resource) \n        are applicable. If the snapshot resource definition is generated as part of a VNF \n        snapshot created by the VNFM (that is, not extracted from a VNF snapshot package), \n        the \"snapshotResource\" is applicable. This is a similar specification as the one \n        defined with the \"vduId\", \"resourceTemplateId\" and \"resource\" attributes provided in \n        the ResourceDefinition, but in this case applicable to resources that are defined from \n        VNF snapshots instead of VNFD.\n"
                      type: object
                      required:
                        - vnfSnapshotId
                      properties:
                        vnfSnapshotId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfcSnapshotId:
                          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.
                          type: string
                        storageSnapshotId:
                          description: >
                            An identifier that is unique for the respective type
                            within a VNF instance, but may not be globally
                            unique.
                          type: string
                        snapshotResource:
                          required:
                            - resourceId
                          type: object
                          description: >
                            This type represents the information that allows
                            addressing a virtualised resource that is used by a
                            VNF instance. Information about the resource is
                            available from the VIM.

                            * NOTE 1: The value set of the
                            "vimLevelResourceType" attribute is within the scope
                            of the VIM or CISM 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). When the container 
                                      infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                      resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                      e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                            * NOTE 2: When the container infrastructure service
                            management is a Kubernetes® instance the resourceId
                            shall be 
                                      populated in the following way:
                                      - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                      per resource type.
                                      - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                      i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                      Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                      manifest.
                                      - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                      the 'metadata.name' field in Kubernetes® manifest.
                          properties:
                            vimConnectionId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceProviderId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceId:
                              description: >
                                An identifier maintained by the VIM  or the CISM
                                or other resource provider. It is expected to be
                                unique within the VIM instance.
                              type: string
                            vimLevelResourceType:
                              description: >
                                Type of the resource in the scope of the VIM or
                                the CISM or the resource provider. See note 1.
                              type: string
                            vimLevelAdditionalResourceInfo:
                              description: >
                                This type represents additional resource
                                information which resource and resource type
                                specific, and which is available from the VIM or
                                the CISM or the resource provider.

                                * NOTE: At least one attribute shall be present.
                              type: object
                              properties:
                                hostName:
                                  description: >
                                    Name of the host where the resource is
                                    allocated. It shall be present for compute
                                    resources in the scope of the CISM and shall
                                    be absent otherwise. See note.
                                  type: string
                                persistentVolume:
                                  description: >
                                    Name of the persistent volume to which the
                                    persistent volume claim representing the
                                    storage resource is bound. It may be present
                                    for storage resources in the scope of the
                                    CISM and shall be absent otherwise. See
                                    note.
                                  type: string
                                additionalInfo:
                                  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.
                                  type: object
                            containerNamespace:
                              description: >
                                The value of the namespace in which the MCIO
                                corresponding to the resource is deployed. This
                                attribute shall be present if the resource is
                                managed by a CISM and it shall be absent
                                otherwise.
                              type: string
              removeResources:
                description: >
                  Provides the definitions of resources to be removed by the LCM
                  operation which is related to this grant request, with one
                  entry per resource. See note 9.
                type: array
                items:
                  description: "This type provides information of an existing or proposed resource or PaaS Service used by the VNF.\nNOTE 1:\tThe use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples\n          for such a configuration.\nNOTE 2:\tIn the context of an operation that changes the current VNF package, the following applies: If this\n          ResourceDefinition is related to a resource to be created or modified, the \"vnfdId\" attribute shall\n          contain the identifier of the destination VNFD. If this ResourceDefinition is related to a resource\n          to be deleted, the \"vnfdId\" attribute shall contain the identifier of the source VNFD. If this\n          ResourceDefinition is related to a temporary resource, the \"vnfdId\" attribute shall contain the\n          identifier of either the source VNFD or the destination VNFD.\n"
                  type: object
                  required:
                    - id
                    - type
                    - resourceTemplateId
                  properties:
                    id:
                      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.
                      type: string
                    type:
                      description: >
                        Type of the resource definition referenced. Permitted
                        values: * COMPUTE * VL * STORAGE * LINKPORT *
                        OSCONTAINER * VIRTUALCP * PAASSERVICE
                      type: string
                      enum:
                        - COMPUTE
                        - VL
                        - STORAGE
                        - LINKPORT
                        - OSCONTAINER
                        - VIRTUALCP
                        - PAASSERVICE
                    vduId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    vnfdId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceTemplateId:
                      description: >
                        Reference to the applicable resource template in the
                        VNFD as follows:
                          - if type="VL" : VnfVirtualLinkDesc
                          - if type="COMPUTE": VirtualComputeDesc
                          - if type="LINKPORT" : VnfExtCpd
                          - if type="STORAGE" : VirtualStorageDesc
                          - If type="OSCONTAINER": OsContainerDesc
                          - If type="VIRTUALCP": VirtualCpd
                          - If type="PAASSERVICE": PaasServiceRequest
                        - Cardinality may be greater than "1" when
                        type="OSCONTAINER" and multiple references to
                        OsContainerDesc are present in the VDU indicated by the
                        "vduId". Cardinality shall be "1" otherwise.
                      type: array
                      minItems: 1
                      items:
                        description: |
                          An identifier that is unique within a VNF descriptor.
                        type: string
                    secondaryResourceTemplateId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    resource:
                      required:
                        - resourceId
                      type: object
                      description: >
                        This type represents the information that allows
                        addressing a virtualised resource that is used by a VNF
                        instance. Information about the resource is available
                        from the VIM.

                        * NOTE 1: The value set of the "vimLevelResourceType"
                        attribute is within the scope of the VIM or CISM 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). When the container 
                                  infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                  resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                  e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                        * NOTE 2: When the container infrastructure service
                        management is a Kubernetes® instance the resourceId
                        shall be 
                                  populated in the following way:
                                  - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                  per resource type.
                                  - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                  i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                  Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                  manifest.
                                  - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                  the 'metadata.name' field in Kubernetes® manifest.
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                        vimLevelResourceType:
                          description: >
                            Type of the resource in the scope of the VIM or the
                            CISM or the resource provider. See note 1.
                          type: string
                        vimLevelAdditionalResourceInfo:
                          description: >
                            This type represents additional resource information
                            which resource and resource type specific, and which
                            is available from the VIM or the CISM or the
                            resource provider.

                            * NOTE: At least one attribute shall be present.
                          type: object
                          properties:
                            hostName:
                              description: >
                                Name of the host where the resource is
                                allocated. It shall be present for compute
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            persistentVolume:
                              description: >
                                Name of the persistent volume to which the
                                persistent volume claim representing the storage
                                resource is bound. It may be present for storage
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            additionalInfo:
                              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.
                              type: object
                        containerNamespace:
                          description: >
                            The value of the namespace in which the MCIO
                            corresponding to the resource is deployed. This
                            attribute shall be present if the resource is
                            managed by a CISM and it shall be absent otherwise.
                          type: string
                    snapshotResDef:
                      description: "This type represents resource definition information related to a snapshot resource.\nNOTE 1:\tIf present, the value of the \"vduId\" (for a related VDU) in the \"VnfcResourceInfo\" \n        referred by the \"vnfcInfoId\" of the \"VnfcSnapshotInfo\" shall match the value of the \n        \"vduId\" in the resource definition that is signalled in the granting request.\nNOTE 2:\tFor snapshot resource definitions extracted from a VNF snapshot package, only the \n        \"vnfcSnapshotId\" and \"storageSnapshotId\" (in case of a storage type of resource) \n        are applicable. If the snapshot resource definition is generated as part of a VNF \n        snapshot created by the VNFM (that is, not extracted from a VNF snapshot package), \n        the \"snapshotResource\" is applicable. This is a similar specification as the one \n        defined with the \"vduId\", \"resourceTemplateId\" and \"resource\" attributes provided in \n        the ResourceDefinition, but in this case applicable to resources that are defined from \n        VNF snapshots instead of VNFD.\n"
                      type: object
                      required:
                        - vnfSnapshotId
                      properties:
                        vnfSnapshotId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfcSnapshotId:
                          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.
                          type: string
                        storageSnapshotId:
                          description: >
                            An identifier that is unique for the respective type
                            within a VNF instance, but may not be globally
                            unique.
                          type: string
                        snapshotResource:
                          required:
                            - resourceId
                          type: object
                          description: >
                            This type represents the information that allows
                            addressing a virtualised resource that is used by a
                            VNF instance. Information about the resource is
                            available from the VIM.

                            * NOTE 1: The value set of the
                            "vimLevelResourceType" attribute is within the scope
                            of the VIM or CISM 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). When the container 
                                      infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                      resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                      e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                            * NOTE 2: When the container infrastructure service
                            management is a Kubernetes® instance the resourceId
                            shall be 
                                      populated in the following way:
                                      - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                      per resource type.
                                      - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                      i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                      Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                      manifest.
                                      - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                      the 'metadata.name' field in Kubernetes® manifest.
                          properties:
                            vimConnectionId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceProviderId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceId:
                              description: >
                                An identifier maintained by the VIM  or the CISM
                                or other resource provider. It is expected to be
                                unique within the VIM instance.
                              type: string
                            vimLevelResourceType:
                              description: >
                                Type of the resource in the scope of the VIM or
                                the CISM or the resource provider. See note 1.
                              type: string
                            vimLevelAdditionalResourceInfo:
                              description: >
                                This type represents additional resource
                                information which resource and resource type
                                specific, and which is available from the VIM or
                                the CISM or the resource provider.

                                * NOTE: At least one attribute shall be present.
                              type: object
                              properties:
                                hostName:
                                  description: >
                                    Name of the host where the resource is
                                    allocated. It shall be present for compute
                                    resources in the scope of the CISM and shall
                                    be absent otherwise. See note.
                                  type: string
                                persistentVolume:
                                  description: >
                                    Name of the persistent volume to which the
                                    persistent volume claim representing the
                                    storage resource is bound. It may be present
                                    for storage resources in the scope of the
                                    CISM and shall be absent otherwise. See
                                    note.
                                  type: string
                                additionalInfo:
                                  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.
                                  type: object
                            containerNamespace:
                              description: >
                                The value of the namespace in which the MCIO
                                corresponding to the resource is deployed. This
                                attribute shall be present if the resource is
                                managed by a CISM and it shall be absent
                                otherwise.
                              type: string
              updateResources:
                description: >
                  Provides the definitions of resources to be modified by the
                  LCM operation which is related to this grant request, with one
                  entry per resource. See note 9.
                type: array
                items:
                  description: "This type provides information of an existing or proposed resource or PaaS Service used by the VNF.\nNOTE 1:\tThe use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples\n          for such a configuration.\nNOTE 2:\tIn the context of an operation that changes the current VNF package, the following applies: If this\n          ResourceDefinition is related to a resource to be created or modified, the \"vnfdId\" attribute shall\n          contain the identifier of the destination VNFD. If this ResourceDefinition is related to a resource\n          to be deleted, the \"vnfdId\" attribute shall contain the identifier of the source VNFD. If this\n          ResourceDefinition is related to a temporary resource, the \"vnfdId\" attribute shall contain the\n          identifier of either the source VNFD or the destination VNFD.\n"
                  type: object
                  required:
                    - id
                    - type
                    - resourceTemplateId
                  properties:
                    id:
                      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.
                      type: string
                    type:
                      description: >
                        Type of the resource definition referenced. Permitted
                        values: * COMPUTE * VL * STORAGE * LINKPORT *
                        OSCONTAINER * VIRTUALCP * PAASSERVICE
                      type: string
                      enum:
                        - COMPUTE
                        - VL
                        - STORAGE
                        - LINKPORT
                        - OSCONTAINER
                        - VIRTUALCP
                        - PAASSERVICE
                    vduId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    vnfdId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceTemplateId:
                      description: >
                        Reference to the applicable resource template in the
                        VNFD as follows:
                          - if type="VL" : VnfVirtualLinkDesc
                          - if type="COMPUTE": VirtualComputeDesc
                          - if type="LINKPORT" : VnfExtCpd
                          - if type="STORAGE" : VirtualStorageDesc
                          - If type="OSCONTAINER": OsContainerDesc
                          - If type="VIRTUALCP": VirtualCpd
                          - If type="PAASSERVICE": PaasServiceRequest
                        - Cardinality may be greater than "1" when
                        type="OSCONTAINER" and multiple references to
                        OsContainerDesc are present in the VDU indicated by the
                        "vduId". Cardinality shall be "1" otherwise.
                      type: array
                      minItems: 1
                      items:
                        description: |
                          An identifier that is unique within a VNF descriptor.
                        type: string
                    secondaryResourceTemplateId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    resource:
                      required:
                        - resourceId
                      type: object
                      description: >
                        This type represents the information that allows
                        addressing a virtualised resource that is used by a VNF
                        instance. Information about the resource is available
                        from the VIM.

                        * NOTE 1: The value set of the "vimLevelResourceType"
                        attribute is within the scope of the VIM or CISM 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). When the container 
                                  infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                  resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                  e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                        * NOTE 2: When the container infrastructure service
                        management is a Kubernetes® instance the resourceId
                        shall be 
                                  populated in the following way:
                                  - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                  per resource type.
                                  - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                  i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                  Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                  manifest.
                                  - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                  the 'metadata.name' field in Kubernetes® manifest.
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                        vimLevelResourceType:
                          description: >
                            Type of the resource in the scope of the VIM or the
                            CISM or the resource provider. See note 1.
                          type: string
                        vimLevelAdditionalResourceInfo:
                          description: >
                            This type represents additional resource information
                            which resource and resource type specific, and which
                            is available from the VIM or the CISM or the
                            resource provider.

                            * NOTE: At least one attribute shall be present.
                          type: object
                          properties:
                            hostName:
                              description: >
                                Name of the host where the resource is
                                allocated. It shall be present for compute
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            persistentVolume:
                              description: >
                                Name of the persistent volume to which the
                                persistent volume claim representing the storage
                                resource is bound. It may be present for storage
                                resources in the scope of the CISM and shall be
                                absent otherwise. See note.
                              type: string
                            additionalInfo:
                              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.
                              type: object
                        containerNamespace:
                          description: >
                            The value of the namespace in which the MCIO
                            corresponding to the resource is deployed. This
                            attribute shall be present if the resource is
                            managed by a CISM and it shall be absent otherwise.
                          type: string
                    snapshotResDef:
                      description: "This type represents resource definition information related to a snapshot resource.\nNOTE 1:\tIf present, the value of the \"vduId\" (for a related VDU) in the \"VnfcResourceInfo\" \n        referred by the \"vnfcInfoId\" of the \"VnfcSnapshotInfo\" shall match the value of the \n        \"vduId\" in the resource definition that is signalled in the granting request.\nNOTE 2:\tFor snapshot resource definitions extracted from a VNF snapshot package, only the \n        \"vnfcSnapshotId\" and \"storageSnapshotId\" (in case of a storage type of resource) \n        are applicable. If the snapshot resource definition is generated as part of a VNF \n        snapshot created by the VNFM (that is, not extracted from a VNF snapshot package), \n        the \"snapshotResource\" is applicable. This is a similar specification as the one \n        defined with the \"vduId\", \"resourceTemplateId\" and \"resource\" attributes provided in \n        the ResourceDefinition, but in this case applicable to resources that are defined from \n        VNF snapshots instead of VNFD.\n"
                      type: object
                      required:
                        - vnfSnapshotId
                      properties:
                        vnfSnapshotId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfcSnapshotId:
                          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.
                          type: string
                        storageSnapshotId:
                          description: >
                            An identifier that is unique for the respective type
                            within a VNF instance, but may not be globally
                            unique.
                          type: string
                        snapshotResource:
                          required:
                            - resourceId
                          type: object
                          description: >
                            This type represents the information that allows
                            addressing a virtualised resource that is used by a
                            VNF instance. Information about the resource is
                            available from the VIM.

                            * NOTE 1: The value set of the
                            "vimLevelResourceType" attribute is within the scope
                            of the VIM or CISM 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). When the container 
                                      infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                      resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                      e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                            * NOTE 2: When the container infrastructure service
                            management is a Kubernetes® instance the resourceId
                            shall be 
                                      populated in the following way:
                                      - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                      per resource type.
                                      - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                      i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                      Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                      manifest.
                                      - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                      the 'metadata.name' field in Kubernetes® manifest.
                          properties:
                            vimConnectionId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceProviderId:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            resourceId:
                              description: >
                                An identifier maintained by the VIM  or the CISM
                                or other resource provider. It is expected to be
                                unique within the VIM instance.
                              type: string
                            vimLevelResourceType:
                              description: >
                                Type of the resource in the scope of the VIM or
                                the CISM or the resource provider. See note 1.
                              type: string
                            vimLevelAdditionalResourceInfo:
                              description: >
                                This type represents additional resource
                                information which resource and resource type
                                specific, and which is available from the VIM or
                                the CISM or the resource provider.

                                * NOTE: At least one attribute shall be present.
                              type: object
                              properties:
                                hostName:
                                  description: >
                                    Name of the host where the resource is
                                    allocated. It shall be present for compute
                                    resources in the scope of the CISM and shall
                                    be absent otherwise. See note.
                                  type: string
                                persistentVolume:
                                  description: >
                                    Name of the persistent volume to which the
                                    persistent volume claim representing the
                                    storage resource is bound. It may be present
                                    for storage resources in the scope of the
                                    CISM and shall be absent otherwise. See
                                    note.
                                  type: string
                                additionalInfo:
                                  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.
                                  type: object
                            containerNamespace:
                              description: >
                                The value of the namespace in which the MCIO
                                corresponding to the resource is deployed. This
                                attribute shall be present if the resource is
                                managed by a CISM and it shall be absent
                                otherwise.
                              type: string
              placementConstraints:
                description: >
                  Placement constraints that the VNFM may send to the NFVO in
                  order to influence the resource  placement decision. If sent,
                  the NFVO shall take the constraints into consideration when
                  making  resource placement decisions and shall reject the
                  grant if they cannot be honoured. See notes 4,  5 and 6.
                type: array
                items:
                  description: >
                    This type provides information regarding a resource
                    placement constraint. A set of such constraints may be sent
                    by the VNFM to the NFVO to influence the resource placement
                    decisions made by the NFVO as part of the granting process.
                    A placement constraint defines a condition to the placement
                    of new resources, considering other new resources as well as
                    existing resources. EXAMPLE: The following rules influence
                    the placement of a set of resources such that they are
                    placed in the same Network Function Virtualisation
                    Infrastructure Point of Presence (NFVI-PoP) but in different
                    resource zones: {type="AFFINITY"; scope="NFVI_POP";
                    {resource1,resource2}} {type="ANTI_AFFINITY"; scope="ZONE";
                    {resource1,resource2}}

                    Annex B in ETSI GS NFV-IFA 011 [10] provides additional
                    description and examples about the usage of the
                    affinity/anti-affinity rules.


                    NOTE: The "CIS_NODE" and “CONTAINER_NAMESPACE” scopes shall
                    only be used to express affinity or
                          antiaffinity relationship between containerized workloads.
                  type: object
                  required:
                    - affinityOrAntiAffinity
                    - scope
                    - resource
                  properties:
                    affinityOrAntiAffinity:
                      description: >
                        The type of the constraint. Permitted values: * AFFINITY
                        * ANTI_AFFINITY
                      type: string
                      enum:
                        - AFFINITY
                        - ANTI_AFFINITY
                    scope:
                      description: >
                        The scope of the placement constraint indicating the
                        category of the "place" where the constraint applies.
                        Permitted values:
                          - NFVI_POP
                          - ZONE
                          - ZONE_GROUP
                          - NFVI_NODE
                          - CIS_NODE
                          - CONTAINER_NAMESPACE
                        - See note.
                      type: string
                      enum:
                        - NFVI_POP
                        - ZONE
                        - ZONE_GROUP
                        - NFVI_NODE
                        - CIS_NODE
                        - CONTAINER_NAMESPACE
                    resource:
                      description: |
                        References to resources in the constraint rule.
                      type: array
                      minItems: 2
                      items:
                        description: >
                          This type references a resource either by its
                          VIM-level identifier for existing resources, or by the
                          identifier of a "ResourceDefinition" structure in the
                          "GrantRequest" structure for new resources.
                        type: object
                        required:
                          - idType
                          - resourceId
                        properties:
                          idType:
                            description: >
                              The type of the identifier. Permitted values: *
                              RES_MGMT: Resource-management-level identifier;
                              this identifier is
                                managed by the VIM in the direct mode of VNF-related resource
                                management, and is managed by the NFVO in the indirect mode)
                              * GRANT: Reference to the identifier of a
                              "ResourceDefinition" structure in the
                              "GrantRequest" structure.
                            type: string
                            enum:
                              - RES_MGMT
                              - GRANT
                          resourceId:
                            description: >
                              An identifier maintained by the VIM  or the CISM
                              or other resource provider. It is expected to be
                              unique within the VIM instance.
                            type: string
                          vimConnectionId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceProviderId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                    fallbackBestEffort:
                      description: >
                        The Boolean is a data type having two values (true and
                        false).
                      type: boolean
              vimConstraints:
                description: >
                  Used by the VNFM to require that multiple resources are
                  managed through the same VIM connection. If sent, the NFVO
                  shall take the constraints into consideration when making VIM
                  selection decisions, and shall reject the grant if they cannot
                  be honoured. This attribute shall be supported if VNF-related
                  Resource Management in direct mode is applicable. The
                  applicability and further details of this attribute for
                  indirect mode are left for future specification.
                type: array
                items:
                  description: >
                    This type provides information regarding a VIM selection
                    constraint. A set of such constraints may be sent by the
                    VNFM to the NFVO to influence the VIM selection decisions
                    made by the NFVO as part of the granting process.
                  type: object
                  required:
                    - resource
                  properties:
                    sameResourceGroup:
                      description: >
                        If present and set to true, this signals that the
                        constraint applies not only to the same VIM connection,
                        but also to the same infrastructure resource group.
                      type: boolean
                    resource:
                      description: >
                        References to resources in the constraint rule. The NFVO
                        shall ensure that all resources in this list are managed
                        through the same VIM connection. If "sameResourceGroup"
                        is set to true, the NFVO shall further ensure that all
                        resources in this list are part of the same
                        infrastructure resource group in that VIM connection.
                      type: array
                      minItems: 2
                      items:
                        description: >
                          This type references a resource either by its
                          VIM-level identifier for existing resources, or by the
                          identifier of a "ResourceDefinition" structure in the
                          "GrantRequest" structure for new resources.
                        type: object
                        required:
                          - idType
                          - resourceId
                        properties:
                          idType:
                            description: >
                              The type of the identifier. Permitted values: *
                              RES_MGMT: Resource-management-level identifier;
                              this identifier is
                                managed by the VIM in the direct mode of VNF-related resource
                                management, and is managed by the NFVO in the indirect mode)
                              * GRANT: Reference to the identifier of a
                              "ResourceDefinition" structure in the
                              "GrantRequest" structure.
                            type: string
                            enum:
                              - RES_MGMT
                              - GRANT
                          resourceId:
                            description: >
                              An identifier maintained by the VIM  or the CISM
                              or other resource provider. It is expected to be
                              unique within the VIM instance.
                            type: string
                          vimConnectionId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceProviderId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
              additionalParams:
                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.
                type: object
              _links:
                description: |
                  Links to resources related to this request.
                type: object
                required:
                  - vnfLcmOpOcc
                  - vnfInstance
                properties:
                  vnfLcmOpOcc:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
                  vnfInstance:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
      required: true
  responses:
    Grants.Post.201:
      description: >
        201 CREATED


        Shall be returned when the grant has been created successfully
        (synchronous mode).

        A representation of the created "Individual grant" resource shall be
        returned in the response body.

        The HTTP response shall include a "Location" HTTP header that indicates
        the URI of the "Individual grant"

        resource just created.
      headers:
        Location:
          description: |
            The resource URI of the created subscription resource.
          style: simple
          explode: false
          schema:
            type: string
            format: url
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the

            corresponding HTTP request has provided an invalid authorization
            token.
          style: simple
          explode: false
          schema:
            type: string
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            description: "This type represents a grant.\nNOTE 1: This interface allows to signal the use of multiple VIMs per VNF. The specification\n        for managing the VNF internal VL requirements across multiple VIMs is supported via\n        \"externally-managed internal VLs\" and \"multi-site connectivity services\".\nNOTE 2: Void. NOTE 3: The Grant response allows the NFVO to pass to the VNFM VIM assets related to the VNF \n        package that is identified in the corresponding Grant request. Because only the operations\n        InstantiateVnf, ChangeCurrentVnfPkg and the update of the vnfdId by PATCH can imply changes\n        in the set of VIM assets, the NFVO shall not change this set in any other case. To signal the\n        set of VIM assets, the following applies:\n        a)\tIf the current LCM operation is InstantiateVnf, the NFVO shall send in the Grant response\n        the full set of VIM assets related to the VNF package defined by the vnfdId in the related\n        Grant request.\n        b)\tIf the current LCM operation is ChangeCurrentVnfPkg, the NFVO shall send in the\n        Grant response the full set of VIM assets related to the VNF package defined by the destVnfdId\n        in the related Grant request.\n        c)\tFor any other operation: If the set of VIM assets has changed since the end of the previous\n        granted operation because a PATCH operation has changed the vnfdId between the previous granted\n        operation and the operation to which the current granting exchange relates, the NFVO shall send\n        in the Grant response the full set of VIM assets related to the VNF package defined by the vnfdId\n        in the related Grant request. Otherwise, the NFVO shall either send in the Grant response the full\n        set of VIM assets related to the VNF package defined by the vnfdId in the related Grant request, or\n        shall not send any VIM assets at all.\n        During each LCM operation occurrence other than a \"ChangeCurrentVnfPkg\" operation,\n        the VIM assets that relate to the VNF package identified by the current value of\n        the vnfdId attribute in the \"VnfInstance\" structure shall be used by the\n        VNFM for newly created resources and updated resources.\nNOTE 4: The indication of externally-managed internal VLs is needed in case networks have been\n        pre-configured for use with certain VNFs, for instance to ensure that these networks have\n        certain properties such as security or acceleration features, or to address particular network\n        topologies (e.g., multi-site connectivity). The present document assumes that externally-managed\n        internal VLs are managed by the NFVO and created towards the VIM and WIM.\nNOTE 5: For any VNF lifecycle management operation request that allows to pass \"extVirtualLinks\" and/or\n        \"extManagedVirtualLinks\" parameters, such as InstantiateVnf, ChangeVnfFlavour, ChangeExtVnfConnectivity or\n        ChangeCurrentVnfPackage, the NFVO may provide the \"extVirtualLinks\" and/or \"extManagedVirtualLinks\" attributes\n        in the Grant to override the values passed in these parameters previously in the associated VNF lifecycle\n        management request, if the lifecycle management request has originated from the NFVO itself. The NFVO shall\n        not provide the \"extVirtualLinks\" and/or \"extManagedVirtualLinks\" attributes in the Grant in case the LCM\n        request did not originate from the NFVO itself or the granted LCM operation request does not allow to pass\n        these parameters.\nNOTE 6: The NFVO shall set the value of the attribute by copying the value from the associated \n        GrantRequest.\nNOTE 7: In case of granting an InstantiateVnf request that has originated from the NFVO and that \n        did not contain the \"extVirtualLinks\" attribute, this attribute shall be set by the NFVO. \n        Further in case of granting an InstantiateVnf request that has originated from the NFVO \n        and that did not contain the \"extManagedVirtualLinks\" attribute, this attribute shall be \n        set by the NFVO if there is the need to provide information about externally-managed virtual \n        links.\nNOTE 8: The resulting \"extVirtualLinks\" or \"extManagedVirtualLinks\" information is calculated as follows: \n        In a first step, the information passed in the related LCM operation is applied to the baseline\n        information known from earlier LCM operation executions. In a second step, the information passed\n        in the Grant is applied to the information resulting from the first step.\nNOTE 9: For resources related to ResourceDefinition whose VDU has the attribute \n        isNumOfInstancesClusterBased set to TRUE, only one occurrence of the addResources, or \n        tempResources or removeResources, or updateResources shall be included.\n"
            type: object
            required:
              - id
              - vnfInstanceId
              - vnfLcmOpOccId
              - _links
            properties:
              id:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vnfInstanceId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vnfLcmOpOccId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vimConnectionInfo:
                description: >
                  Provides information regarding VIM and/or CISM connections
                  that are approved to be used by the VNFM to allocate resources
                  and provides parameters of these VIM and/or CISM connections.
                  The VNFM shall update the "vimConnectionInfo" attribute of the
                  "VnfInstance" structure by adding unknown entries received in
                  this attribute. This attribute is not intended for the
                  modification of VimConnectionInfo entries passed earlier; for
                  that, the VnfInfoModificationRequest structure shall be used.
                  This attribute shall only be supported when
                    - all or part of the granted resources are managed by a VIM and VNF-related
                    Resource Management in direct mode is applicable.
                    - all or part of the granted resources are managed by a CISM.
                  In direct mode, this parameter shall be absent if the VIM or
                  CISM information was configured to the VNFM in another way,
                  present otherwise. See note 1.
                type: object
                additionalProperties:
                  description: "This type represents parameters to connect to a VIM, a CISM, a CIR or a MCIOP repository for managing the resources of a VNF instance.\nThis structure is used to convey VIM-related, CISM-related, CIR-related, or MCIOP-repository-related parameters over the Or-Vnfm interface. Additional parameters for a VIM, a CISM, a CIR or a MCIOP repository may be configured into the VNFM by means outside the scope of the present document and bound to the identifier of that VIM.\n* NOTE 1:\tIf applicable, this attribute also provides information about the resourceGroupIds\n          that are accessible using a particular set of credentials. See definition of\n          \"resourceGroupId\" in clause 9.5.3.3.\n* NOTE 2:\tOnce the connectivity between VNFM and VIM, CISM, CIR or MCIOP repository is provided\n          through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be\n          established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the\n          \"accessInfo\" JSON data structure, and the sensitive data related information (\"username\"/\"password\" as\n          required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel\n          without additional encoding/encryption before transmitting it, making the sensitive data visible to the\n          endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the\n          interface endpoint of the VIM, CISM, CIR or MCIOP repository.\n* NOTE 3: ETSI GS NFV-SOL 009 specifies the means to configure into the VNFM applicable VIM connection\n          information via the \"NFV-MANO Configuration and Information Management\" interface.\n* NOTE 4: Due to the possibility of configuring such information into the VNFM out-of-band, by means outside the scope of\n          the present document, as well as in-band, by means specified in the present document, care should be taken to\n          avoid unintended conflicts in the VNFM when managing such information.\n"
                  type: object
                  required:
                    - vimType
                  properties:
                    vimId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimType:
                      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., CISM, CIR or
                        MCIOP repository. 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,
                        CISM, CIR or MCIOP repository types. The structure of
                        the registry is defined in annex C.
                      type: string
                    interfaceInfo:
                      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.
                      type: object
                    accessInfo:
                      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.
                      type: object
                    extra:
                      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.
                      type: object
              cirConnectionInfo:
                description: >
                  Provides information regarding a CIR connection that is
                  approved to be used by the VNFM to obtain information about OS
                  container images. It shall be absent in case of rejection or
                  if the CIR information was configured to the VNFM in another
                  way or if the granted resources are not managed by a CISM,
                  present otherwise.
                type: object
                additionalProperties:
                  description: "This type represents parameters to connect to a VIM, a CISM, a CIR or a MCIOP repository for managing the resources of a VNF instance.\nThis structure is used to convey VIM-related, CISM-related, CIR-related, or MCIOP-repository-related parameters over the Or-Vnfm interface. Additional parameters for a VIM, a CISM, a CIR or a MCIOP repository may be configured into the VNFM by means outside the scope of the present document and bound to the identifier of that VIM.\n* NOTE 1:\tIf applicable, this attribute also provides information about the resourceGroupIds\n          that are accessible using a particular set of credentials. See definition of\n          \"resourceGroupId\" in clause 9.5.3.3.\n* NOTE 2:\tOnce the connectivity between VNFM and VIM, CISM, CIR or MCIOP repository is provided\n          through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be\n          established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the\n          \"accessInfo\" JSON data structure, and the sensitive data related information (\"username\"/\"password\" as\n          required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel\n          without additional encoding/encryption before transmitting it, making the sensitive data visible to the\n          endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the\n          interface endpoint of the VIM, CISM, CIR or MCIOP repository.\n* NOTE 3: ETSI GS NFV-SOL 009 specifies the means to configure into the VNFM applicable VIM connection\n          information via the \"NFV-MANO Configuration and Information Management\" interface.\n* NOTE 4: Due to the possibility of configuring such information into the VNFM out-of-band, by means outside the scope of\n          the present document, as well as in-band, by means specified in the present document, care should be taken to\n          avoid unintended conflicts in the VNFM when managing such information.\n"
                  type: object
                  required:
                    - vimType
                  properties:
                    vimId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimType:
                      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., CISM, CIR or
                        MCIOP repository. 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,
                        CISM, CIR or MCIOP repository types. The structure of
                        the registry is defined in annex C.
                      type: string
                    interfaceInfo:
                      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.
                      type: object
                    accessInfo:
                      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.
                      type: object
                    extra:
                      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.
                      type: object
              mciopRepositoryInfo:
                description: >
                  Provides information regarding a MCIOP repository. It shall be
                  absent in case of rejection or if the MCIOP repository
                  information was configured to the VNFM in another way or if
                  the granted resources are not managed by a CISM, present
                  otherwise.
                type: object
                additionalProperties:
                  description: "This type represents parameters to connect to a VIM, a CISM, a CIR or a MCIOP repository for managing the resources of a VNF instance.\nThis structure is used to convey VIM-related, CISM-related, CIR-related, or MCIOP-repository-related parameters over the Or-Vnfm interface. Additional parameters for a VIM, a CISM, a CIR or a MCIOP repository may be configured into the VNFM by means outside the scope of the present document and bound to the identifier of that VIM.\n* NOTE 1:\tIf applicable, this attribute also provides information about the resourceGroupIds\n          that are accessible using a particular set of credentials. See definition of\n          \"resourceGroupId\" in clause 9.5.3.3.\n* NOTE 2:\tOnce the connectivity between VNFM and VIM, CISM, CIR or MCIOP repository is provided\n          through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be\n          established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the\n          \"accessInfo\" JSON data structure, and the sensitive data related information (\"username\"/\"password\" as\n          required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel\n          without additional encoding/encryption before transmitting it, making the sensitive data visible to the\n          endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the\n          interface endpoint of the VIM, CISM, CIR or MCIOP repository.\n* NOTE 3: ETSI GS NFV-SOL 009 specifies the means to configure into the VNFM applicable VIM connection\n          information via the \"NFV-MANO Configuration and Information Management\" interface.\n* NOTE 4: Due to the possibility of configuring such information into the VNFM out-of-band, by means outside the scope of\n          the present document, as well as in-band, by means specified in the present document, care should be taken to\n          avoid unintended conflicts in the VNFM when managing such information.\n"
                  type: object
                  required:
                    - vimType
                  properties:
                    vimId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimType:
                      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., CISM, CIR or
                        MCIOP repository. 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,
                        CISM, CIR or MCIOP repository types. The structure of
                        the registry is defined in annex C.
                      type: string
                    interfaceInfo:
                      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.
                      type: object
                    accessInfo:
                      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.
                      type: object
                    extra:
                      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.
                      type: object
              zones:
                description: >
                  Identifies resource zones where the resources are approved to
                  be allocated by the VNFM.
                type: array
                items:
                  description: |
                    This type provides information regarding a resource zone.
                  type: object
                  required:
                    - id
                    - zoneId
                  properties:
                    id:
                      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.
                      type: string
                    zoneId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
              zoneGroups:
                description: >
                  Information about groups of resource zones that are related
                  and that the NFVO has chosen to fulfil a zoneGroup constraint
                  in the GrantVnfLifecycleOperation request. This information
                  confirms that the NFVO has honoured the zoneGroup constraints
                  that were passed as part of "placementConstraints" in the
                  GrantRequest.
                type: array
                items:
                  description: >
                    This type provides information regarding a resource zone
                    group. A resource zone group is a group of one or more
                    related resource zones which can be used in resource
                    placement constraints. To fulfil such constraint, the NFVO
                    may decide to place a resource into any zone that belongs to
                    a particular group. NOTE: A resource zone group can be used
                    to support overflow from one resource zone into another, in
                    case a particular deployment supports only non-elastic
                    resource zones.
                  type: object
                  required:
                    - zoneId
                  properties:
                    zoneId:
                      description: >
                        References of identifiers of "ZoneInfo" structures, each
                        of which provides information about a resource zone that
                        belongs to this group.
                      type: array
                      items:
                        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.
                        type: string
              addResources:
                description: >
                  List of resources that are approved to be added, with one
                  entry per resource. See note 9. Shall be set when resources
                  are approved to be added and  shall contain the same set of
                  resources requested to be added in the  related GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              tempResources:
                description: >
                  List of resources that are approved to be temporarily
                  instantiated during the runtime of the lifecycle operation,
                  with one entry per resource. See note 9. Shall be set when
                  resources are approved to be temporarily  instantiated and
                  shall contain the same set of resources requested to  be
                  temporarily instantiated in the related GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              removeResources:
                description: >
                  List of resources that are approved to be removed, with one
                  entry per resource. See note 9. Shall be set when resources
                  are approved to be removed and shall contain the same set of
                  resources requested to be removed  in the related
                  GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              updateResources:
                description: >
                  List of resources that are approved to be modified, with one
                  entry per resource. See note 9. Shall be set when resources
                  are approved to be updated and shall contain the same set of
                  resources requested to be updated  in the related
                  GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              vimAssets:
                description: >
                  Information about assets for the VNF that are defined in VNFD
                  and managed by the NFVO in the VIM/NFVI, such as software
                  images and virtualised compute resource flavours. See note 3.
                type: object
                properties:
                  computeResourceFlavours:
                    description: >
                      Mappings between virtual compute descriptors defined in
                      the VNFD and compute resource flavours managed in the VIM.
                    type: array
                    items:
                      description: >
                        If the VIM requires the use of virtual compute resource
                        flavours during compute resource instantiation, it is
                        assumed that such flavours are selected or created by
                        the NFVO based on the information in the virtual compute
                        descriptor defined in the VNFD. This type defines the
                        mapping between a virtual compute descriptor in the VNFD
                        and the corresponding compute resource flavour managed
                        by the NFVO in the VIM.
                      type: object
                      required:
                        - vnfdVirtualComputeDescId
                        - vimFlavourId
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfdVirtualComputeDescId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        vimFlavourId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                  softwareImages:
                    description: >
                      Mappings between software images defined in the VNFD and
                      software images managed in the VIM.
                    type: array
                    items:
                      description: >
                        This type contains a mapping between a software image
                        definition the VNFD and the corresponding software image
                        managed by the NFVO in the VIM or CIR which is needed
                        during compute resource instantiation.

                        NOTE: For an OS container image, the value of this
                        attribute is a string concatenating the name and tag of
                        the
                              image in the CIR separated by a colon ':' with no spaces, e.g. “dbImage:001”.
                      type: object
                      required:
                        - vnfdSoftwareImageId
                        - vimSoftwareImageId
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfdSoftwareImageId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        vimSoftwareImageId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                  snapshotResources:
                    description: >
                      Mappings between snapshot resources defined in the VNF
                      snapshot package and resources managed in the VIM.
                    type: array
                    items:
                      description: >
                        This type contains a mapping between a snapshot resource
                        definition related to a VNF snapshot  and the
                        corresponding resource managed by the NFVO in the VIM
                        which is needed during the revert  to VNF snapshot
                        operation.
                      type: object
                      required:
                        - vnfSnapshotId
                        - vnfcSnapshotId
                        - vimSnapshotResourceId
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfSnapshotId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfcSnapshotId:
                          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.
                          type: string
                        storageSnapshotId:
                          description: >
                            An identifier that is unique for the respective type
                            within a VNF instance, but may not be globally
                            unique.
                          type: string
                        vimSnapshotResourceId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                  storageAssets:
                    description: >
                      Mappings between virtual storages defined in the VNFD and
                      virtual storages managed in the NFVI.
                    type: array
                    items:
                      description: >
                        This type provides a mapping between a
                        VirtualStorageDesc in the VNFD and the corresponding
                        virtual storage managed by the NFVO in the NFVI.
                      type: object
                      required:
                        - virtualStorageDescId
                        - storageClassName
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        virtualStorageDescId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        storageClassName:
                          description: |
                            A string defined in IETF RFC 8259.
                          type: string
                  paasAssets:
                    description: >
                      Information about PaaS Services assigned to the VNF and
                      that are managed in the PSM by the NFVO.
                    type: array
                    items:
                      type: object
                      required:
                        - paasServiceType
                        - paasServiceId
                        - paasServiceRequestId
                        - paasServiceHandle
                      properties:
                        paasServiceType:
                          description: |
                            A string defined in IETF RFC 8259.
                          type: string
                        paasServiceId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        paasServiceVersion:
                          description: |
                            A version.
                          type: string
                        paasServiceRequestId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        PaasServiceHandle:
                          description: >
                            This type provides information enabling the access
                            and use of the PaaS Service by the VNF instance. The
                            type and format of the handle depends on the form
                            that the PaaS Service is formed.
                          type: object
                          required:
                            - id
                          properties:
                            id:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            interfaceInfo:
                              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.
                              type: object
                            accessInfo:
                              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.
                              type: object
                            extra:
                              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.
                              type: object
              extVirtualLinks:
                description: >
                  Information about external VLs to connect the VNF to. See
                  notes 5, 7 and 8. If this attribute  is present according to
                  note 5 or note 7, it need not contain those entries that are
                  unchanged  compared to the entries that were passed in the LCM
                  operation which is related to this granting exchange.
                type: array
                items:
                  description: "This type represents an external VL.\n* NOTE 1:\tA link port is not needed for an external CP instance that exposes a VIP CP in the following cases:\n          1)  For a VIP CP directly exposed as an external CP:\n              1.1)  No dedicated IP address is allocated as VIP address, as indicated in the VNFD.\n              1.2)  A dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed\n                    (createExtLinkPort in VnfExtCpConfig set to false).\n          2)  For a VIP CP exposed as an external CP via a floating IP address:\n              2.1)  No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and the VNFC CP\n                    associated to the VIP CP is also exposed via a floating IP address.\n          3)  For a VIRTUAL CP exposed as an external CP.\n          4)  For a VNFC CP exposed as an external CP in a secondary container cluster external network or a\n              secondary container cluster internal network.\n\n* NOTE 2: An example of the network attachment definition resource when the container infrastructure service\n          management is a Kubernetes® instance is a network attachment definition (NAD).\n"
                  type: object
                  required:
                    - id
                    - resourceId
                    - extCps
                  properties:
                    id:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    extCps:
                      description: >
                        External CPs of the VNF to be connected to this external
                        VL. Entries in the list of external CP data that are
                        unchanged need not be supplied if the ExtVirtualLinkData
                        structure is part of a request or response that modifies
                        the external connectivity.
                      type: array
                      items:
                        description: "This type represents configuration information for external CPs created. * NOTE 1: \tIn case this identifier refers to a CPD with trunking enabled, the external CP instances created\n            from this CPD will represent ports in a trunk.\n* NOTE 2: \tWithin one VNF instance, all VNFC instances created from a particular VDU have the same external\n            connectivity. Thus, given a particular value of the \"cpdId\" attribute, there shall be one\n            \"cpConfig\" entry for each VNFC instance that has been or can be created from a VDU which includes\n            a CPD identified by the \"cpdId\" attribute. If the cpConfig represents a subport in a trunk,\n            all \"cpConfig\" entries in this list shall have the same segmentationId, which means they are\n            connected to the same set of external VLs via the trunk.\n* NOTE 3: \tThe map entry value shall be set to \"null\" in order to delete a \"VnfExtCpConfig\" entry identified\n            by a particular key value from the map, i.e. for the disconnection of an existing external\n            CP instance addressed by cpInstanceId in the deleted map entry from a particular external\n            virtual link, and deletion of that instance in case it represents a subport. Deleting the\n            last key from the map removes the affected instance of the \"VnfExtCpData\" structure from\n            its parent data structure.\n* NOTE 4:   If, as defined by the input parameters of a \"ChangeVnfFlavour\", \"ChangeExtVnfConnectivity\" or\n            \"ChangeCurrentVnfPkg\" operation or as part of the Grant response for any of these operations, a cpConfig\n            map entry identified by a particular map key value is moved into another \"ExtVirtualLinkData\" or\n            \"VnfExtCpData\" structure, this particular cpConfig map entry may be used by an external CP instance\n            different than the one that has used it before the operation, or by no external CP instance at all.\n            Renaming a CPD identifier during the \"changeCurrentVnfPkg\" operation does not count as moving the related\n            \"cpConfig\" map entries to a new \"extCpData\" structure.\n* NOTE 5:   Subports need not be used for containerized VNFCs. The application container can send and receive IP \n            packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n            network has been configured appropriately. Thus, no individual cpConfig, except the one representing the \n            trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 6:   In the case that the cloud native template included in the MCIOP describes the set of VNFC instances, for \n            containerized VNFCs individual connection points need not be configured for each VNFC instance. It is only \n            required to configure one cpConfig per cpdId, not per VNFC instance. The case of using, for a scalable VDU, a \n            cloud native template in the MCIOP that describes one single VNFC instance is not specified in the present \n            document version.\n"
                        type: object
                        required:
                          - cpdId
                        properties:
                          cpdId:
                            description: >
                              An identifier that is unique within a VNF
                              descriptor.
                            type: string
                          cpConfig:
                            description: >
                              Map of instance data that need to be configured on
                              the CP instances created from the respective CPD.
                              The key of the map which identifies the individual
                              VnfExtCpConfig entries is of type
                              "IdentifierInVnf" and is managed by the NFVO. The
                              entries shall be applied by the VNFM according to
                              the rules of JSON Merge Patch (see IETF RFC 7396).
                              See notes 2, 3, 4, 5, 6.
                            type: object
                            additionalProperties:
                              description: >
                                This type represents an externally provided link
                                port, or a network attachment definition
                                resource of secondary container cluster network,
                                or network address information per instance of
                                an external connection point. In the case of
                                VM-based deployment of the VNFC exposing the
                                external CP:
                                  1.  In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the
                                      external VL.
                                  2.  In case 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.
                                In the case of container-based deployment of the
                                VNFC exposing the external CP, the VNFM shall
                                use the network attachment definition resource
                                of secondary container cluster network when
                                connecting the CP to the external VL.

                                * NOTE 1: The following conditions apply to the
                                attributes "linkPortId" and "cpProtocolData" for
                                an external CP
                                          instance connected or to be connected to a virtual network not categorized as secondary container cluster network:
                                          1) Void.
                                          2) At least one of the "linkPortId" and "cpProtocolData" attributes shall be present for an external CP instance
                                          representing a subport that is to be created, or an external CP instance that is to be created by creating the
                                          corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing
                                          external CP instance that is to be re-configured or added to a particular external virtual link.
                                          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
                                          precreated 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 NFVO shall ensure that the
                                          cpProtocolData can be used with the pre-created link port referenced by "linkPortId".

                                * NOTE 2: The following conditions apply to the
                                attributes “netAttDefResourceId” and
                                “cpProtocolData” for an external CP
                                          instance connected or to be connected to a secondary container cluster network:
                                          1) Void.
                                          2) The "netAttDefResourceId" attribute shall be present and the "cpProtocolData" attribute may be present for
                                          a to-be-created external CP instance or an existing external CP instance.
                                * NOTE 3: Cardinality greater than 1 is only
                                applicable for specific cases where more than
                                one network attachment
                                          definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link
                                          redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong
                                          to the same namespace as defined by the corresponding "containerNamespace" attribute in the "resourceHandle" a attribute in the
                                          "NetAttDefResourceData".
                                * NOTE 4: Either linkPortId or
                                netAttDefResourceId may be included, but not
                                both.
                              anyOf:
                                - required:
                                    - linkPortId
                                - required:
                                    - cpProtocolData
                                - required:
                                    - netAttDefResourceId
                              type: object
                              properties:
                                parentCpConfigId:
                                  description: >
                                    An identifier that is unique for the
                                    respective type within a VNF instance, but
                                    may not be globally unique.
                                  type: string
                                linkPortId:
                                  description: >
                                    An identifier with the intention of being
                                    globally unique.
                                  type: string
                                createExtLinkPort:
                                  description: >
                                    Indicates to the VNFM the need to create a
                                    dedicated link port for the external CP. If
                                    set to True, the VNFM shall create a link
                                    port. If set to False, the VNFM shall not
                                    create a link port. This attribute is only
                                    applicable for external CP instances without
                                    a floating IP address that expose a VIP CP
                                    instance for which a dedicated IP address is
                                    allocated. It shall be present in that case
                                    and shall be absent otherwise.
                                  type: boolean
                                netAttDefResourceId:
                                  description: >
                                    Identifier of the “NetAttDefResourceData”
                                    structure that provides the specification of
                                    the interface to attach the external CP to a
                                    secondary container cluster network. It is
                                    only applicable if the external CP is
                                    connected or to be connected to a secondary
                                    container cluster network. It shall not be
                                    present if the external CP is related to a
                                    virtual network not categorized as secondary
                                    container cluster network. See notes 2, 3
                                    and 4.
                                  type: array
                                  items:
                                    description: >
                                      An identifier with the intention of being
                                      globally unique.
                                    type: string
                                cpProtocolData:
                                  description: >
                                    Parameters for configuring the network
                                    protocols on the link port that connects the
                                    CP to a VL. See notes 1 and 2.
                                  type: array
                                  items:
                                    description: "This type represents network protocol data. * NOTE:\tThis attribute allows to signal the addition of further types of layer and protocol\n          in future versions of the present document in a backwards-compatible way. In the current\n          version of the present document, only IP over Ethernet is supported.\n"
                                    type: object
                                    required:
                                      - layerProtocol
                                    properties:
                                      layerProtocol:
                                        description: >
                                          Identifier of layer(s) and protocol(s).
                                          Permitted values:
                                            - IP_OVER_ETHERNET.
                                            - IP_FOR_VIRTUAL_CP
                                          See note
                                        type: string
                                        enum:
                                          - IP_OVER_ETHERNET
                                          - IP_FOR_VIRTUAL_CP
                                      ipOverEthernet:
                                        description: "This type represents network address data for IP over Ethernet. * NOTE 1:\tAt least one of \"macAddress\" or \"ipAddresses\" shall be present. * NOTE 2:\tExactly one of \"fixedAddresses\", \"numDynamicAddresses\" or \"ipAddressRange\" shall be present. * NOTE 3:\tIf the CP instance represents a subport in a trunk, segmentationId shall be present.\n          Otherwise it shall not be present.\n* NOTE 4:\tDepending on the NFVI networking infrastructure, the segmentationId may indicate the actual\n          network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header\n          of the packets or it may be an identifier used between the application and the NFVI networking\n          infrastructure to identify the network sub-interface of the trunk port in question. In the latter\n          case the NFVI infrastructure will map this local segmentationId to whatever segmentationId is\n          actually used by the NFVI's transport technology.\n"
                                        type: object
                                        anyOf:
                                          - required:
                                              - macAddress
                                          - required:
                                              - ipAddresses
                                        properties:
                                          macAddress:
                                            description: >
                                              A MAC address. Representation: string
                                              that consists of groups of two
                                              hexadecimal digits, separated by hyphens
                                              or colons.
                                            type: string
                                            format: MAC
                                          segmentationType:
                                            description: "Specifies the encapsulation type for the traffics coming in and out of the trunk subport. Permitted values:\n  -\tVLAN: the subport uses VLAN as encapsulation type.\n  -\tINHERIT: the subport gets its segmentation type from the network it's connected to.\nThis attribute may be present for CP instances that represent subports in a trunk and shall be absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used.\n"
                                            type: string
                                            enum:
                                              - VLAN
                                              - INHERIT
                                          segmentationId:
                                            description: >
                                              Identification of the network segment to
                                              which the CP instance connects to. See
                                              note 3 and note 4.
                                            type: string
                                          ipAddresses:
                                            description: >
                                              List of IP addresses to assign to the CP
                                              instance. Each entry represents IP
                                              address data for fixed or dynamic IP
                                              address assignment per subnet. If this
                                              attribute is not present, no IP address
                                              shall be assigned. See note 1.
                                            type: array
                                            items:
                                              type: object
                                              required:
                                                - type
                                              oneOf:
                                                - required:
                                                    - fixedAddresses
                                                - required:
                                                    - numDynamicAddresses
                                                - required:
                                                    - addressRange
                                              properties:
                                                type:
                                                  description: >
                                                    The type of the IP addresses. Permitted
                                                    values: IPV4, IPV6.
                                                  type: string
                                                  enum:
                                                    - IPV4
                                                    - IPV6
                                                fixedAddresses:
                                                  description: >
                                                    Fixed addresses to assign (from the
                                                    subnet defined by "subnetId" if
                                                    provided). See note 2.
                                                  type: array
                                                  items:
                                                    description: >
                                                      An IPV4 or IPV6 address. Representation:
                                                      In case of an IPV4 address, string that
                                                      consists of four decimal integers
                                                      separated by dots, each integer ranging
                                                      from 0 to 255. In case of an IPV6
                                                      address, string that consists of groups
                                                      of zero to four hexadecimal digits,
                                                      separated by colons.
                                                    type: string
                                                    format: IP
                                                numDynamicAddresses:
                                                  description: >
                                                    Number of dynamic addresses to assign
                                                    (from the subnet defined by "subnetId"
                                                    if provided). See note 2.
                                                  type: integer
                                                addressRange:
                                                  description: >
                                                    An IP address range to be used, e.g. in
                                                    case of egress connections. In case this
                                                    attribute is present, IP addresses from
                                                    the range will be used. See note 2.
                                                  type: object
                                                  required:
                                                    - minAddress
                                                    - maxAddress
                                                  properties:
                                                    minAddress:
                                                      description: >
                                                        An IPV4 or IPV6 address. Representation:
                                                        In case of an IPV4 address, string that
                                                        consists of four decimal integers
                                                        separated by dots, each integer ranging
                                                        from 0 to 255. In case of an IPV6
                                                        address, string that consists of groups
                                                        of zero to four hexadecimal digits,
                                                        separated by colons.
                                                      type: string
                                                      format: IP
                                                    maxAddress:
                                                      description: >
                                                        An IPV4 or IPV6 address. Representation:
                                                        In case of an IPV4 address, string that
                                                        consists of four decimal integers
                                                        separated by dots, each integer ranging
                                                        from 0 to 255. In case of an IPV6
                                                        address, string that consists of groups
                                                        of zero to four hexadecimal digits,
                                                        separated by colons.
                                                      type: string
                                                      format: IP
                                                subnetId:
                                                  description: >
                                                    An identifier maintained by the VIM  or
                                                    the CISM or other resource provider. It
                                                    is expected to be unique within the VIM
                                                    instance.
                                                  type: string
                                      virtualCpAddress:
                                        description: >
                                          This type represents network address
                                          data for a virtual CP.

                                          * NOTE 1: If the container cluster is
                                          set up to be able to configure an
                                          external load balancer this address will
                                          be used,
                                                    otherwise it will be ignored by the CISM.
                                          * NOTE 2: In case the cluster can
                                          configure an external load balancer but
                                          no loadBalancerIp is provided the
                                          container
                                                    cluster will assign an IP address.
                                          * NOTE 3: The attribute is only relevant
                                          if the virtual CP is instantiated in a
                                          cluster that supports configuration of
                                          IP
                                                    address pools for virtual CPs. Otherwise it shall be ignored. MetalLB is an example of a solution for
                                                    Kubernetes® that supports configuration of address pools for load balancer services.
                                          * NOTE 4: The loadBalancerIp and the
                                          addressPoolName attributes shall not be
                                          present at the same
                                          time.                
                                        type: object
                                        required:
                                          - type
                                        properties:
                                          type:
                                            description: >
                                              The type of the IP addresses. Permitted
                                              values: IPV4, IPV6.
                                            type: string
                                            enum:
                                              - IPV4
                                              - IPV6
                                          loadBalancerIp:
                                            description: >
                                              An IPV4 or IPV6 address. Representation:
                                              In case of an IPV4 address, string that
                                              consists of four decimal integers
                                              separated by dots, each integer ranging
                                              from 0 to 255. In case of an IPV6
                                              address, string that consists of groups
                                              of zero to four hexadecimal digits,
                                              separated by colons.
                                            type: string
                                            format: IP
                                          addressPoolName:
                                            description: >
                                              Name of an address pool from which the
                                              container cluster will assign an IP
                                              address to the virtual CP. See notes 3
                                              and 4.
                                            type: string
                    extLinkPorts:
                      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 except in the cases defined
                        below. See note 1.
                      type: array
                      items:
                        description: "This type represents an externally provided link port to be used to connect an external connection point to an external VL. * NOTE:\tThe value of \"trunkResourceId\" is scoped by the value of \"vimConnectionId\" in the \"resourceHandle\" attribute.\n"
                        type: object
                        required:
                          - id
                          - resourceHandle
                        properties:
                          id:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
                          trunkResourceId:
                            description: >
                              An identifier maintained by the VIM  or the CISM
                              or other resource provider. It is expected to be
                              unique within the VIM instance.
                            type: string
                    extNetAttDefResourceData:
                      description: >
                        Externally provided network attachment definition
                        resource(s) that provide the specification of the
                        interface to attach external CPs to this external VL.
                        See note 2. It is only applicable if the external VL is
                        realized by a secondary container cluster network. It
                        shall not be present otherwise.
                      type: array
                      items:
                        description: >
                          This type represents a network attachment definition
                          resource that provides the specification of the
                          interface to be used to connect one or multiple
                          connection points to a secondary container cluster
                          network realizing a VL.
                        type: object
                        required:
                          - netAttDefResourceId
                          - resourceHandle
                        properties:
                          netAttDefResourceId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
              extManagedVirtualLinks:
                description: >
                  Information about internal VLs that are managed by other
                  entities than the VNFM. See notes 4, 5, 7 and 8.
                type: array
                items:
                  description: >
                    This type represents an externally-managed internal VL.

                    * NOTE 1: It is only applicable if the externally-managed VL
                    is realized by a secondary container cluster network. It
                    shall
                              not be present otherwise.
                    * NOTE 2: A link port is not needed for a VNFC internal
                    connection point connected to a secondary container cluster
                              network.
                    * NOTE 3: An example of the network attachment definition
                    resource when the container infrastructure service
                              management is a Kubernetes® instance is a network attachment definition (NAD).

                    * NOTE 4: In the case that the cloud native template
                    included in the MCIOP describes the set of VNFC instances,
                    an 
                              instance of intCp need not be included for each VNFC instance as all instances would contain the same 
                              information. It is sufficient to include one intCp for the related CPD. The case of using, for a scalable VDU, a 
                              cloud native template in the MCIOP that describes one single VNFC instance is not specified in the present 
                              document version
                  type: object
                  required:
                    - id
                    - vnfVirtualLinkDescId
                    - resourceId
                  properties:
                    id:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vnfVirtualLinkDescId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    netAttDefResourceData:
                      description: >
                        Externally provided network attachment definition
                        resource(s) that provide the specification of the
                        interface to attach VNFC connection points to this
                        externallymanaged VL. See notes 1 and 3.
                      type: array
                      items:
                        description: >
                          This type represents a network attachment definition
                          resource that provides the specification of the
                          interface to be used to connect one or multiple
                          connection points to a secondary container cluster
                          network realizing a VL.
                        type: object
                        required:
                          - netAttDefResourceId
                          - resourceHandle
                        properties:
                          netAttDefResourceId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
                    intCp:
                      description: >
                        Internal CPs of the VNF to be connected to this
                        externally-managed VL. See note 1 and 4.
                      type: array
                      items:
                        description: >
                          This type represents input information related to one
                          or more VNF internal CP instances created based on the
                          same CPD.

                          NOTE: Cardinality greater than 1 is only applicable
                          for specific cases where more than one network
                          attachment
                                definition resource is needed to fulfil the connectivity requirements of the VNF internal CP, e.g. to build a link
                                redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall
                                belong to the same namespace as defined by the corresponding "containerNamespace" attribute in the "resourceHandle" attribute
                                in the "NetAttDefResourceData".
                        type: object
                        required:
                          - cpdId
                          - netAttDefResourceId
                        properties:
                          cpdId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          netAttDefResourceId:
                            description: >
                              Identifiers of the “NetAttDefResourceData”
                              structure that provides the specification of the
                              interface to attach the VNF internal CP created
                              from the CPD identified by cpdId to a secondary
                              container cluster network. See note.
                            type: array
                            items:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                    vnfLinkPort:
                      description: >
                        Externally provided link ports to be used to connect
                        VNFC connection points to this externally-managed VL on
                        this network resource. If this attribute is not present,
                        the VNFM shall create the link ports on the
                        externally-managed VL. See note 2.
                      type: array
                      items:
                        description: >
                          This type represents an externally provided link port
                          to be used to connect a VNFC connection point  to an
                          exernally managed VL.
                        type: object
                        required:
                          - vnfLinkPortId
                          - resourceHandle
                        properties:
                          vnfLinkPortId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
                    extManagedMultisiteVirtualLinkId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
              additionalParams:
                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.
                type: object
              _links:
                description: |
                  Links to resources related to this resource.
                type: object
                required:
                  - self
                  - vnfLcmOpOcc
                  - vnfInstance
                properties:
                  self:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
                  vnfLcmOpOcc:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
                  vnfInstance:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
    Grants.Post.202:
      description: >
        202 ACCEPTED


        Shall be returned when the request has been accepted for processing

        and it is expected to take some time to create the grant (asynchronous
        mode).

        The response body shall be empty.

        The HTTP response shall include a "Location" HTTP header that indicates
        the URI

        of the "Individual grant" resource that will be created once the
        granting decision has been made.
      headers:
        Location:
          description: |
            The resource URI of the created subscription resource.
          style: simple
          explode: false
          schema:
            type: string
            format: url
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the

            corresponding HTTP request has provided an invalid authorization
            token.
          style: simple
          explode: false
          schema:
            type: string
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
    Grants.Post.403:
      description: |
        403 FORBIDDEN

        Shall be returned upon the following error: The grant
        has been rejected.
        A ProblemDetails structure shall be included in the
        response to provide more details about the rejection
        in the "details" attribute.
      headers:
        Location:
          description: |
            The resource URI of the created subscription resource.
          style: simple
          explode: false
          schema:
            type: string
            format: url
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the

            corresponding HTTP request has provided an invalid authorization
            token.
          style: simple
          explode: false
          schema:
            type: string
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: |
            The MIME type of the body of the response. Reference: IETF RFC 7231
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            description: >
              The definition of the general "ProblemDetails" data structure from
              IETF RFC 7807 is reproduced inthis structure. Compared to the
              general framework defined in IETF RFC 7807, 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 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.
            type: object
            required:
              - status
              - detail
            properties:
              type:
                description: >
                  A URI reference according to IETF RFC 3986 that identifies the
                  problem type. It is encouraged that the URI provides
                  human-readable documentation for the problem (e.g. using HTML)
                  when dereferenced. When this member is not present, its value
                  is assumed to be "about:blank".
                type: string
                format: URI
              title:
                description: >
                  A short, human-readable summary of the problem type. It should
                  not change from occurrence to occurrence of the problem,
                  except for purposes of localization. If type is given and
                  other than "about:blank", this attribute shall also be
                  provided. A short, human-readable summary of the problem
                  type.  It SHOULD NOT change from occurrence to occurrence of
                  the problem, except for purposes of localization (e.g., using
                  proactive content negotiation; see [RFC7231], Section 3.4).
                type: string
              status:
                description: >
                  The HTTP status code for this occurrence of the problem. The
                  HTTP status code ([RFC7231], Section 6) generated by the
                  origin server for this occurrence of the problem.
                type: integer
              detail:
                description: >
                  A human-readable explanation specific to this occurrence of
                  the problem.
                type: string
              instance:
                description: >
                  A URI reference that identifies the specific occurrence of the
                  problem. It may yield further information if dereferenced.
                type: string
                format: URI
    IndividualGrant.Get.200:
      description: >
        200 OK


        Shall be returned when the grant has been read successfully.

        A representation of the "Individual grant" resource shall be returned in
        the response body.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the

            corresponding HTTP request has provided an invalid authorization
            token.
          style: simple
          explode: false
          schema:
            type: string
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            description: "This type represents a grant.\nNOTE 1: This interface allows to signal the use of multiple VIMs per VNF. The specification\n        for managing the VNF internal VL requirements across multiple VIMs is supported via\n        \"externally-managed internal VLs\" and \"multi-site connectivity services\".\nNOTE 2: Void. NOTE 3: The Grant response allows the NFVO to pass to the VNFM VIM assets related to the VNF \n        package that is identified in the corresponding Grant request. Because only the operations\n        InstantiateVnf, ChangeCurrentVnfPkg and the update of the vnfdId by PATCH can imply changes\n        in the set of VIM assets, the NFVO shall not change this set in any other case. To signal the\n        set of VIM assets, the following applies:\n        a)\tIf the current LCM operation is InstantiateVnf, the NFVO shall send in the Grant response\n        the full set of VIM assets related to the VNF package defined by the vnfdId in the related\n        Grant request.\n        b)\tIf the current LCM operation is ChangeCurrentVnfPkg, the NFVO shall send in the\n        Grant response the full set of VIM assets related to the VNF package defined by the destVnfdId\n        in the related Grant request.\n        c)\tFor any other operation: If the set of VIM assets has changed since the end of the previous\n        granted operation because a PATCH operation has changed the vnfdId between the previous granted\n        operation and the operation to which the current granting exchange relates, the NFVO shall send\n        in the Grant response the full set of VIM assets related to the VNF package defined by the vnfdId\n        in the related Grant request. Otherwise, the NFVO shall either send in the Grant response the full\n        set of VIM assets related to the VNF package defined by the vnfdId in the related Grant request, or\n        shall not send any VIM assets at all.\n        During each LCM operation occurrence other than a \"ChangeCurrentVnfPkg\" operation,\n        the VIM assets that relate to the VNF package identified by the current value of\n        the vnfdId attribute in the \"VnfInstance\" structure shall be used by the\n        VNFM for newly created resources and updated resources.\nNOTE 4: The indication of externally-managed internal VLs is needed in case networks have been\n        pre-configured for use with certain VNFs, for instance to ensure that these networks have\n        certain properties such as security or acceleration features, or to address particular network\n        topologies (e.g., multi-site connectivity). The present document assumes that externally-managed\n        internal VLs are managed by the NFVO and created towards the VIM and WIM.\nNOTE 5: For any VNF lifecycle management operation request that allows to pass \"extVirtualLinks\" and/or\n        \"extManagedVirtualLinks\" parameters, such as InstantiateVnf, ChangeVnfFlavour, ChangeExtVnfConnectivity or\n        ChangeCurrentVnfPackage, the NFVO may provide the \"extVirtualLinks\" and/or \"extManagedVirtualLinks\" attributes\n        in the Grant to override the values passed in these parameters previously in the associated VNF lifecycle\n        management request, if the lifecycle management request has originated from the NFVO itself. The NFVO shall\n        not provide the \"extVirtualLinks\" and/or \"extManagedVirtualLinks\" attributes in the Grant in case the LCM\n        request did not originate from the NFVO itself or the granted LCM operation request does not allow to pass\n        these parameters.\nNOTE 6: The NFVO shall set the value of the attribute by copying the value from the associated \n        GrantRequest.\nNOTE 7: In case of granting an InstantiateVnf request that has originated from the NFVO and that \n        did not contain the \"extVirtualLinks\" attribute, this attribute shall be set by the NFVO. \n        Further in case of granting an InstantiateVnf request that has originated from the NFVO \n        and that did not contain the \"extManagedVirtualLinks\" attribute, this attribute shall be \n        set by the NFVO if there is the need to provide information about externally-managed virtual \n        links.\nNOTE 8: The resulting \"extVirtualLinks\" or \"extManagedVirtualLinks\" information is calculated as follows: \n        In a first step, the information passed in the related LCM operation is applied to the baseline\n        information known from earlier LCM operation executions. In a second step, the information passed\n        in the Grant is applied to the information resulting from the first step.\nNOTE 9: For resources related to ResourceDefinition whose VDU has the attribute \n        isNumOfInstancesClusterBased set to TRUE, only one occurrence of the addResources, or \n        tempResources or removeResources, or updateResources shall be included.\n"
            type: object
            required:
              - id
              - vnfInstanceId
              - vnfLcmOpOccId
              - _links
            properties:
              id:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vnfInstanceId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vnfLcmOpOccId:
                description: |
                  An identifier with the intention of being globally unique.
                type: string
              vimConnectionInfo:
                description: >
                  Provides information regarding VIM and/or CISM connections
                  that are approved to be used by the VNFM to allocate resources
                  and provides parameters of these VIM and/or CISM connections.
                  The VNFM shall update the "vimConnectionInfo" attribute of the
                  "VnfInstance" structure by adding unknown entries received in
                  this attribute. This attribute is not intended for the
                  modification of VimConnectionInfo entries passed earlier; for
                  that, the VnfInfoModificationRequest structure shall be used.
                  This attribute shall only be supported when
                    - all or part of the granted resources are managed by a VIM and VNF-related
                    Resource Management in direct mode is applicable.
                    - all or part of the granted resources are managed by a CISM.
                  In direct mode, this parameter shall be absent if the VIM or
                  CISM information was configured to the VNFM in another way,
                  present otherwise. See note 1.
                type: object
                additionalProperties:
                  description: "This type represents parameters to connect to a VIM, a CISM, a CIR or a MCIOP repository for managing the resources of a VNF instance.\nThis structure is used to convey VIM-related, CISM-related, CIR-related, or MCIOP-repository-related parameters over the Or-Vnfm interface. Additional parameters for a VIM, a CISM, a CIR or a MCIOP repository may be configured into the VNFM by means outside the scope of the present document and bound to the identifier of that VIM.\n* NOTE 1:\tIf applicable, this attribute also provides information about the resourceGroupIds\n          that are accessible using a particular set of credentials. See definition of\n          \"resourceGroupId\" in clause 9.5.3.3.\n* NOTE 2:\tOnce the connectivity between VNFM and VIM, CISM, CIR or MCIOP repository is provided\n          through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be\n          established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the\n          \"accessInfo\" JSON data structure, and the sensitive data related information (\"username\"/\"password\" as\n          required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel\n          without additional encoding/encryption before transmitting it, making the sensitive data visible to the\n          endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the\n          interface endpoint of the VIM, CISM, CIR or MCIOP repository.\n* NOTE 3: ETSI GS NFV-SOL 009 specifies the means to configure into the VNFM applicable VIM connection\n          information via the \"NFV-MANO Configuration and Information Management\" interface.\n* NOTE 4: Due to the possibility of configuring such information into the VNFM out-of-band, by means outside the scope of\n          the present document, as well as in-band, by means specified in the present document, care should be taken to\n          avoid unintended conflicts in the VNFM when managing such information.\n"
                  type: object
                  required:
                    - vimType
                  properties:
                    vimId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimType:
                      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., CISM, CIR or
                        MCIOP repository. 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,
                        CISM, CIR or MCIOP repository types. The structure of
                        the registry is defined in annex C.
                      type: string
                    interfaceInfo:
                      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.
                      type: object
                    accessInfo:
                      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.
                      type: object
                    extra:
                      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.
                      type: object
              cirConnectionInfo:
                description: >
                  Provides information regarding a CIR connection that is
                  approved to be used by the VNFM to obtain information about OS
                  container images. It shall be absent in case of rejection or
                  if the CIR information was configured to the VNFM in another
                  way or if the granted resources are not managed by a CISM,
                  present otherwise.
                type: object
                additionalProperties:
                  description: "This type represents parameters to connect to a VIM, a CISM, a CIR or a MCIOP repository for managing the resources of a VNF instance.\nThis structure is used to convey VIM-related, CISM-related, CIR-related, or MCIOP-repository-related parameters over the Or-Vnfm interface. Additional parameters for a VIM, a CISM, a CIR or a MCIOP repository may be configured into the VNFM by means outside the scope of the present document and bound to the identifier of that VIM.\n* NOTE 1:\tIf applicable, this attribute also provides information about the resourceGroupIds\n          that are accessible using a particular set of credentials. See definition of\n          \"resourceGroupId\" in clause 9.5.3.3.\n* NOTE 2:\tOnce the connectivity between VNFM and VIM, CISM, CIR or MCIOP repository is provided\n          through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be\n          established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the\n          \"accessInfo\" JSON data structure, and the sensitive data related information (\"username\"/\"password\" as\n          required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel\n          without additional encoding/encryption before transmitting it, making the sensitive data visible to the\n          endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the\n          interface endpoint of the VIM, CISM, CIR or MCIOP repository.\n* NOTE 3: ETSI GS NFV-SOL 009 specifies the means to configure into the VNFM applicable VIM connection\n          information via the \"NFV-MANO Configuration and Information Management\" interface.\n* NOTE 4: Due to the possibility of configuring such information into the VNFM out-of-band, by means outside the scope of\n          the present document, as well as in-band, by means specified in the present document, care should be taken to\n          avoid unintended conflicts in the VNFM when managing such information.\n"
                  type: object
                  required:
                    - vimType
                  properties:
                    vimId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimType:
                      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., CISM, CIR or
                        MCIOP repository. 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,
                        CISM, CIR or MCIOP repository types. The structure of
                        the registry is defined in annex C.
                      type: string
                    interfaceInfo:
                      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.
                      type: object
                    accessInfo:
                      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.
                      type: object
                    extra:
                      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.
                      type: object
              mciopRepositoryInfo:
                description: >
                  Provides information regarding a MCIOP repository. It shall be
                  absent in case of rejection or if the MCIOP repository
                  information was configured to the VNFM in another way or if
                  the granted resources are not managed by a CISM, present
                  otherwise.
                type: object
                additionalProperties:
                  description: "This type represents parameters to connect to a VIM, a CISM, a CIR or a MCIOP repository for managing the resources of a VNF instance.\nThis structure is used to convey VIM-related, CISM-related, CIR-related, or MCIOP-repository-related parameters over the Or-Vnfm interface. Additional parameters for a VIM, a CISM, a CIR or a MCIOP repository may be configured into the VNFM by means outside the scope of the present document and bound to the identifier of that VIM.\n* NOTE 1:\tIf applicable, this attribute also provides information about the resourceGroupIds\n          that are accessible using a particular set of credentials. See definition of\n          \"resourceGroupId\" in clause 9.5.3.3.\n* NOTE 2:\tOnce the connectivity between VNFM and VIM, CISM, CIR or MCIOP repository is provided\n          through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be\n          established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the\n          \"accessInfo\" JSON data structure, and the sensitive data related information (\"username\"/\"password\" as\n          required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel\n          without additional encoding/encryption before transmitting it, making the sensitive data visible to the\n          endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the\n          interface endpoint of the VIM, CISM, CIR or MCIOP repository.\n* NOTE 3: ETSI GS NFV-SOL 009 specifies the means to configure into the VNFM applicable VIM connection\n          information via the \"NFV-MANO Configuration and Information Management\" interface.\n* NOTE 4: Due to the possibility of configuring such information into the VNFM out-of-band, by means outside the scope of\n          the present document, as well as in-band, by means specified in the present document, care should be taken to\n          avoid unintended conflicts in the VNFM when managing such information.\n"
                  type: object
                  required:
                    - vimType
                  properties:
                    vimId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimType:
                      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., CISM, CIR or
                        MCIOP repository. 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,
                        CISM, CIR or MCIOP repository types. The structure of
                        the registry is defined in annex C.
                      type: string
                    interfaceInfo:
                      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.
                      type: object
                    accessInfo:
                      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.
                      type: object
                    extra:
                      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.
                      type: object
              zones:
                description: >
                  Identifies resource zones where the resources are approved to
                  be allocated by the VNFM.
                type: array
                items:
                  description: |
                    This type provides information regarding a resource zone.
                  type: object
                  required:
                    - id
                    - zoneId
                  properties:
                    id:
                      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.
                      type: string
                    zoneId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
              zoneGroups:
                description: >
                  Information about groups of resource zones that are related
                  and that the NFVO has chosen to fulfil a zoneGroup constraint
                  in the GrantVnfLifecycleOperation request. This information
                  confirms that the NFVO has honoured the zoneGroup constraints
                  that were passed as part of "placementConstraints" in the
                  GrantRequest.
                type: array
                items:
                  description: >
                    This type provides information regarding a resource zone
                    group. A resource zone group is a group of one or more
                    related resource zones which can be used in resource
                    placement constraints. To fulfil such constraint, the NFVO
                    may decide to place a resource into any zone that belongs to
                    a particular group. NOTE: A resource zone group can be used
                    to support overflow from one resource zone into another, in
                    case a particular deployment supports only non-elastic
                    resource zones.
                  type: object
                  required:
                    - zoneId
                  properties:
                    zoneId:
                      description: >
                        References of identifiers of "ZoneInfo" structures, each
                        of which provides information about a resource zone that
                        belongs to this group.
                      type: array
                      items:
                        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.
                        type: string
              addResources:
                description: >
                  List of resources that are approved to be added, with one
                  entry per resource. See note 9. Shall be set when resources
                  are approved to be added and  shall contain the same set of
                  resources requested to be added in the  related GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              tempResources:
                description: >
                  List of resources that are approved to be temporarily
                  instantiated during the runtime of the lifecycle operation,
                  with one entry per resource. See note 9. Shall be set when
                  resources are approved to be temporarily  instantiated and
                  shall contain the same set of resources requested to  be
                  temporarily instantiated in the related GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              removeResources:
                description: >
                  List of resources that are approved to be removed, with one
                  entry per resource. See note 9. Shall be set when resources
                  are approved to be removed and shall contain the same set of
                  resources requested to be removed  in the related
                  GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              updateResources:
                description: >
                  List of resources that are approved to be modified, with one
                  entry per resource. See note 9. Shall be set when resources
                  are approved to be updated and shall contain the same set of
                  resources requested to be updated  in the related
                  GrantRequest.
                type: array
                items:
                  description: >
                    This type contains information about a Compute, storage or
                    network resource whose addition/update/deletion was granted.
                    It enables also referencing to a PaaS Service request
                    definition which has been granted.
                  type: object
                  required:
                    - resourceDefinitionId
                  properties:
                    resourceDefinitionId:
                      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.
                      type: string
                    reservationId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    zoneId:
                      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.
                      type: string
                    resourceGroupId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    containerNamespace:
                      description: |
                        A string defined in IETF RFC 8259.
                      type: string
                    mcioConstraints:
                      description: >
                        The constraint values to be assigned to MCIOs of a VNF
                        with containerized components. The key in the key-value
                        pair indicates the parameter name of the MCIO constraint
                        in the MCIO declarative descriptor and shall be one of
                        the possible enumeration values of the
                        "mcioConstraintsParams" attribute as specified in clause
                        7.1.6.2.2 of ETSI GS NFV-IFA 011 [10]. The value in the
                        keyvalue pair indicates the value to be assigned to the
                        MCIO constraint. This attribute shall be present if the
                        granted resources are managed by a CISM. The attribute
                        shall be absent if the granted resources are not managed
                        by a CISM.
                      type: array
                      items:
                        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.
                        type: object
              vimAssets:
                description: >
                  Information about assets for the VNF that are defined in VNFD
                  and managed by the NFVO in the VIM/NFVI, such as software
                  images and virtualised compute resource flavours. See note 3.
                type: object
                properties:
                  computeResourceFlavours:
                    description: >
                      Mappings between virtual compute descriptors defined in
                      the VNFD and compute resource flavours managed in the VIM.
                    type: array
                    items:
                      description: >
                        If the VIM requires the use of virtual compute resource
                        flavours during compute resource instantiation, it is
                        assumed that such flavours are selected or created by
                        the NFVO based on the information in the virtual compute
                        descriptor defined in the VNFD. This type defines the
                        mapping between a virtual compute descriptor in the VNFD
                        and the corresponding compute resource flavour managed
                        by the NFVO in the VIM.
                      type: object
                      required:
                        - vnfdVirtualComputeDescId
                        - vimFlavourId
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfdVirtualComputeDescId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        vimFlavourId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                  softwareImages:
                    description: >
                      Mappings between software images defined in the VNFD and
                      software images managed in the VIM.
                    type: array
                    items:
                      description: >
                        This type contains a mapping between a software image
                        definition the VNFD and the corresponding software image
                        managed by the NFVO in the VIM or CIR which is needed
                        during compute resource instantiation.

                        NOTE: For an OS container image, the value of this
                        attribute is a string concatenating the name and tag of
                        the
                              image in the CIR separated by a colon ':' with no spaces, e.g. “dbImage:001”.
                      type: object
                      required:
                        - vnfdSoftwareImageId
                        - vimSoftwareImageId
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfdSoftwareImageId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        vimSoftwareImageId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                  snapshotResources:
                    description: >
                      Mappings between snapshot resources defined in the VNF
                      snapshot package and resources managed in the VIM.
                    type: array
                    items:
                      description: >
                        This type contains a mapping between a snapshot resource
                        definition related to a VNF snapshot  and the
                        corresponding resource managed by the NFVO in the VIM
                        which is needed during the revert  to VNF snapshot
                        operation.
                      type: object
                      required:
                        - vnfSnapshotId
                        - vnfcSnapshotId
                        - vimSnapshotResourceId
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfSnapshotId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        vnfcSnapshotId:
                          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.
                          type: string
                        storageSnapshotId:
                          description: >
                            An identifier that is unique for the respective type
                            within a VNF instance, but may not be globally
                            unique.
                          type: string
                        vimSnapshotResourceId:
                          description: >
                            An identifier maintained by the VIM  or the CISM or
                            other resource provider. It is expected to be unique
                            within the VIM instance.
                          type: string
                  storageAssets:
                    description: >
                      Mappings between virtual storages defined in the VNFD and
                      virtual storages managed in the NFVI.
                    type: array
                    items:
                      description: >
                        This type provides a mapping between a
                        VirtualStorageDesc in the VNFD and the corresponding
                        virtual storage managed by the NFVO in the NFVI.
                      type: object
                      required:
                        - virtualStorageDescId
                        - storageClassName
                      properties:
                        vimConnectionId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        resourceProviderId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        virtualStorageDescId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        storageClassName:
                          description: |
                            A string defined in IETF RFC 8259.
                          type: string
                  paasAssets:
                    description: >
                      Information about PaaS Services assigned to the VNF and
                      that are managed in the PSM by the NFVO.
                    type: array
                    items:
                      type: object
                      required:
                        - paasServiceType
                        - paasServiceId
                        - paasServiceRequestId
                        - paasServiceHandle
                      properties:
                        paasServiceType:
                          description: |
                            A string defined in IETF RFC 8259.
                          type: string
                        paasServiceId:
                          description: >
                            An identifier with the intention of being globally
                            unique.
                          type: string
                        paasServiceVersion:
                          description: |
                            A version.
                          type: string
                        paasServiceRequestId:
                          description: >
                            An identifier that is unique within a VNF
                            descriptor.
                          type: string
                        PaasServiceHandle:
                          description: >
                            This type provides information enabling the access
                            and use of the PaaS Service by the VNF instance. The
                            type and format of the handle depends on the form
                            that the PaaS Service is formed.
                          type: object
                          required:
                            - id
                          properties:
                            id:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                            interfaceInfo:
                              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.
                              type: object
                            accessInfo:
                              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.
                              type: object
                            extra:
                              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.
                              type: object
              extVirtualLinks:
                description: >
                  Information about external VLs to connect the VNF to. See
                  notes 5, 7 and 8. If this attribute  is present according to
                  note 5 or note 7, it need not contain those entries that are
                  unchanged  compared to the entries that were passed in the LCM
                  operation which is related to this granting exchange.
                type: array
                items:
                  description: "This type represents an external VL.\n* NOTE 1:\tA link port is not needed for an external CP instance that exposes a VIP CP in the following cases:\n          1)  For a VIP CP directly exposed as an external CP:\n              1.1)  No dedicated IP address is allocated as VIP address, as indicated in the VNFD.\n              1.2)  A dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed\n                    (createExtLinkPort in VnfExtCpConfig set to false).\n          2)  For a VIP CP exposed as an external CP via a floating IP address:\n              2.1)  No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and the VNFC CP\n                    associated to the VIP CP is also exposed via a floating IP address.\n          3)  For a VIRTUAL CP exposed as an external CP.\n          4)  For a VNFC CP exposed as an external CP in a secondary container cluster external network or a\n              secondary container cluster internal network.\n\n* NOTE 2: An example of the network attachment definition resource when the container infrastructure service\n          management is a Kubernetes® instance is a network attachment definition (NAD).\n"
                  type: object
                  required:
                    - id
                    - resourceId
                    - extCps
                  properties:
                    id:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    extCps:
                      description: >
                        External CPs of the VNF to be connected to this external
                        VL. Entries in the list of external CP data that are
                        unchanged need not be supplied if the ExtVirtualLinkData
                        structure is part of a request or response that modifies
                        the external connectivity.
                      type: array
                      items:
                        description: "This type represents configuration information for external CPs created. * NOTE 1: \tIn case this identifier refers to a CPD with trunking enabled, the external CP instances created\n            from this CPD will represent ports in a trunk.\n* NOTE 2: \tWithin one VNF instance, all VNFC instances created from a particular VDU have the same external\n            connectivity. Thus, given a particular value of the \"cpdId\" attribute, there shall be one\n            \"cpConfig\" entry for each VNFC instance that has been or can be created from a VDU which includes\n            a CPD identified by the \"cpdId\" attribute. If the cpConfig represents a subport in a trunk,\n            all \"cpConfig\" entries in this list shall have the same segmentationId, which means they are\n            connected to the same set of external VLs via the trunk.\n* NOTE 3: \tThe map entry value shall be set to \"null\" in order to delete a \"VnfExtCpConfig\" entry identified\n            by a particular key value from the map, i.e. for the disconnection of an existing external\n            CP instance addressed by cpInstanceId in the deleted map entry from a particular external\n            virtual link, and deletion of that instance in case it represents a subport. Deleting the\n            last key from the map removes the affected instance of the \"VnfExtCpData\" structure from\n            its parent data structure.\n* NOTE 4:   If, as defined by the input parameters of a \"ChangeVnfFlavour\", \"ChangeExtVnfConnectivity\" or\n            \"ChangeCurrentVnfPkg\" operation or as part of the Grant response for any of these operations, a cpConfig\n            map entry identified by a particular map key value is moved into another \"ExtVirtualLinkData\" or\n            \"VnfExtCpData\" structure, this particular cpConfig map entry may be used by an external CP instance\n            different than the one that has used it before the operation, or by no external CP instance at all.\n            Renaming a CPD identifier during the \"changeCurrentVnfPkg\" operation does not count as moving the related\n            \"cpConfig\" map entries to a new \"extCpData\" structure.\n* NOTE 5:   Subports need not be used for containerized VNFCs. The application container can send and receive IP \n            packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n            network has been configured appropriately. Thus, no individual cpConfig, except the one representing the \n            trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 6:   In the case that the cloud native template included in the MCIOP describes the set of VNFC instances, for \n            containerized VNFCs individual connection points need not be configured for each VNFC instance. It is only \n            required to configure one cpConfig per cpdId, not per VNFC instance. The case of using, for a scalable VDU, a \n            cloud native template in the MCIOP that describes one single VNFC instance is not specified in the present \n            document version.\n"
                        type: object
                        required:
                          - cpdId
                        properties:
                          cpdId:
                            description: >
                              An identifier that is unique within a VNF
                              descriptor.
                            type: string
                          cpConfig:
                            description: >
                              Map of instance data that need to be configured on
                              the CP instances created from the respective CPD.
                              The key of the map which identifies the individual
                              VnfExtCpConfig entries is of type
                              "IdentifierInVnf" and is managed by the NFVO. The
                              entries shall be applied by the VNFM according to
                              the rules of JSON Merge Patch (see IETF RFC 7396).
                              See notes 2, 3, 4, 5, 6.
                            type: object
                            additionalProperties:
                              description: >
                                This type represents an externally provided link
                                port, or a network attachment definition
                                resource of secondary container cluster network,
                                or network address information per instance of
                                an external connection point. In the case of
                                VM-based deployment of the VNFC exposing the
                                external CP:
                                  1.  In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the
                                      external VL.
                                  2.  In case 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.
                                In the case of container-based deployment of the
                                VNFC exposing the external CP, the VNFM shall
                                use the network attachment definition resource
                                of secondary container cluster network when
                                connecting the CP to the external VL.

                                * NOTE 1: The following conditions apply to the
                                attributes "linkPortId" and "cpProtocolData" for
                                an external CP
                                          instance connected or to be connected to a virtual network not categorized as secondary container cluster network:
                                          1) Void.
                                          2) At least one of the "linkPortId" and "cpProtocolData" attributes shall be present for an external CP instance
                                          representing a subport that is to be created, or an external CP instance that is to be created by creating the
                                          corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing
                                          external CP instance that is to be re-configured or added to a particular external virtual link.
                                          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
                                          precreated 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 NFVO shall ensure that the
                                          cpProtocolData can be used with the pre-created link port referenced by "linkPortId".

                                * NOTE 2: The following conditions apply to the
                                attributes “netAttDefResourceId” and
                                “cpProtocolData” for an external CP
                                          instance connected or to be connected to a secondary container cluster network:
                                          1) Void.
                                          2) The "netAttDefResourceId" attribute shall be present and the "cpProtocolData" attribute may be present for
                                          a to-be-created external CP instance or an existing external CP instance.
                                * NOTE 3: Cardinality greater than 1 is only
                                applicable for specific cases where more than
                                one network attachment
                                          definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link
                                          redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong
                                          to the same namespace as defined by the corresponding "containerNamespace" attribute in the "resourceHandle" a attribute in the
                                          "NetAttDefResourceData".
                                * NOTE 4: Either linkPortId or
                                netAttDefResourceId may be included, but not
                                both.
                              anyOf:
                                - required:
                                    - linkPortId
                                - required:
                                    - cpProtocolData
                                - required:
                                    - netAttDefResourceId
                              type: object
                              properties:
                                parentCpConfigId:
                                  description: >
                                    An identifier that is unique for the
                                    respective type within a VNF instance, but
                                    may not be globally unique.
                                  type: string
                                linkPortId:
                                  description: >
                                    An identifier with the intention of being
                                    globally unique.
                                  type: string
                                createExtLinkPort:
                                  description: >
                                    Indicates to the VNFM the need to create a
                                    dedicated link port for the external CP. If
                                    set to True, the VNFM shall create a link
                                    port. If set to False, the VNFM shall not
                                    create a link port. This attribute is only
                                    applicable for external CP instances without
                                    a floating IP address that expose a VIP CP
                                    instance for which a dedicated IP address is
                                    allocated. It shall be present in that case
                                    and shall be absent otherwise.
                                  type: boolean
                                netAttDefResourceId:
                                  description: >
                                    Identifier of the “NetAttDefResourceData”
                                    structure that provides the specification of
                                    the interface to attach the external CP to a
                                    secondary container cluster network. It is
                                    only applicable if the external CP is
                                    connected or to be connected to a secondary
                                    container cluster network. It shall not be
                                    present if the external CP is related to a
                                    virtual network not categorized as secondary
                                    container cluster network. See notes 2, 3
                                    and 4.
                                  type: array
                                  items:
                                    description: >
                                      An identifier with the intention of being
                                      globally unique.
                                    type: string
                                cpProtocolData:
                                  description: >
                                    Parameters for configuring the network
                                    protocols on the link port that connects the
                                    CP to a VL. See notes 1 and 2.
                                  type: array
                                  items:
                                    description: "This type represents network protocol data. * NOTE:\tThis attribute allows to signal the addition of further types of layer and protocol\n          in future versions of the present document in a backwards-compatible way. In the current\n          version of the present document, only IP over Ethernet is supported.\n"
                                    type: object
                                    required:
                                      - layerProtocol
                                    properties:
                                      layerProtocol:
                                        description: >
                                          Identifier of layer(s) and protocol(s).
                                          Permitted values:
                                            - IP_OVER_ETHERNET.
                                            - IP_FOR_VIRTUAL_CP
                                          See note
                                        type: string
                                        enum:
                                          - IP_OVER_ETHERNET
                                          - IP_FOR_VIRTUAL_CP
                                      ipOverEthernet:
                                        description: "This type represents network address data for IP over Ethernet. * NOTE 1:\tAt least one of \"macAddress\" or \"ipAddresses\" shall be present. * NOTE 2:\tExactly one of \"fixedAddresses\", \"numDynamicAddresses\" or \"ipAddressRange\" shall be present. * NOTE 3:\tIf the CP instance represents a subport in a trunk, segmentationId shall be present.\n          Otherwise it shall not be present.\n* NOTE 4:\tDepending on the NFVI networking infrastructure, the segmentationId may indicate the actual\n          network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header\n          of the packets or it may be an identifier used between the application and the NFVI networking\n          infrastructure to identify the network sub-interface of the trunk port in question. In the latter\n          case the NFVI infrastructure will map this local segmentationId to whatever segmentationId is\n          actually used by the NFVI's transport technology.\n"
                                        type: object
                                        anyOf:
                                          - required:
                                              - macAddress
                                          - required:
                                              - ipAddresses
                                        properties:
                                          macAddress:
                                            description: >
                                              A MAC address. Representation: string
                                              that consists of groups of two
                                              hexadecimal digits, separated by hyphens
                                              or colons.
                                            type: string
                                            format: MAC
                                          segmentationType:
                                            description: "Specifies the encapsulation type for the traffics coming in and out of the trunk subport. Permitted values:\n  -\tVLAN: the subport uses VLAN as encapsulation type.\n  -\tINHERIT: the subport gets its segmentation type from the network it's connected to.\nThis attribute may be present for CP instances that represent subports in a trunk and shall be absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used.\n"
                                            type: string
                                            enum:
                                              - VLAN
                                              - INHERIT
                                          segmentationId:
                                            description: >
                                              Identification of the network segment to
                                              which the CP instance connects to. See
                                              note 3 and note 4.
                                            type: string
                                          ipAddresses:
                                            description: >
                                              List of IP addresses to assign to the CP
                                              instance. Each entry represents IP
                                              address data for fixed or dynamic IP
                                              address assignment per subnet. If this
                                              attribute is not present, no IP address
                                              shall be assigned. See note 1.
                                            type: array
                                            items:
                                              type: object
                                              required:
                                                - type
                                              oneOf:
                                                - required:
                                                    - fixedAddresses
                                                - required:
                                                    - numDynamicAddresses
                                                - required:
                                                    - addressRange
                                              properties:
                                                type:
                                                  description: >
                                                    The type of the IP addresses. Permitted
                                                    values: IPV4, IPV6.
                                                  type: string
                                                  enum:
                                                    - IPV4
                                                    - IPV6
                                                fixedAddresses:
                                                  description: >
                                                    Fixed addresses to assign (from the
                                                    subnet defined by "subnetId" if
                                                    provided). See note 2.
                                                  type: array
                                                  items:
                                                    description: >
                                                      An IPV4 or IPV6 address. Representation:
                                                      In case of an IPV4 address, string that
                                                      consists of four decimal integers
                                                      separated by dots, each integer ranging
                                                      from 0 to 255. In case of an IPV6
                                                      address, string that consists of groups
                                                      of zero to four hexadecimal digits,
                                                      separated by colons.
                                                    type: string
                                                    format: IP
                                                numDynamicAddresses:
                                                  description: >
                                                    Number of dynamic addresses to assign
                                                    (from the subnet defined by "subnetId"
                                                    if provided). See note 2.
                                                  type: integer
                                                addressRange:
                                                  description: >
                                                    An IP address range to be used, e.g. in
                                                    case of egress connections. In case this
                                                    attribute is present, IP addresses from
                                                    the range will be used. See note 2.
                                                  type: object
                                                  required:
                                                    - minAddress
                                                    - maxAddress
                                                  properties:
                                                    minAddress:
                                                      description: >
                                                        An IPV4 or IPV6 address. Representation:
                                                        In case of an IPV4 address, string that
                                                        consists of four decimal integers
                                                        separated by dots, each integer ranging
                                                        from 0 to 255. In case of an IPV6
                                                        address, string that consists of groups
                                                        of zero to four hexadecimal digits,
                                                        separated by colons.
                                                      type: string
                                                      format: IP
                                                    maxAddress:
                                                      description: >
                                                        An IPV4 or IPV6 address. Representation:
                                                        In case of an IPV4 address, string that
                                                        consists of four decimal integers
                                                        separated by dots, each integer ranging
                                                        from 0 to 255. In case of an IPV6
                                                        address, string that consists of groups
                                                        of zero to four hexadecimal digits,
                                                        separated by colons.
                                                      type: string
                                                      format: IP
                                                subnetId:
                                                  description: >
                                                    An identifier maintained by the VIM  or
                                                    the CISM or other resource provider. It
                                                    is expected to be unique within the VIM
                                                    instance.
                                                  type: string
                                      virtualCpAddress:
                                        description: >
                                          This type represents network address
                                          data for a virtual CP.

                                          * NOTE 1: If the container cluster is
                                          set up to be able to configure an
                                          external load balancer this address will
                                          be used,
                                                    otherwise it will be ignored by the CISM.
                                          * NOTE 2: In case the cluster can
                                          configure an external load balancer but
                                          no loadBalancerIp is provided the
                                          container
                                                    cluster will assign an IP address.
                                          * NOTE 3: The attribute is only relevant
                                          if the virtual CP is instantiated in a
                                          cluster that supports configuration of
                                          IP
                                                    address pools for virtual CPs. Otherwise it shall be ignored. MetalLB is an example of a solution for
                                                    Kubernetes® that supports configuration of address pools for load balancer services.
                                          * NOTE 4: The loadBalancerIp and the
                                          addressPoolName attributes shall not be
                                          present at the same
                                          time.                
                                        type: object
                                        required:
                                          - type
                                        properties:
                                          type:
                                            description: >
                                              The type of the IP addresses. Permitted
                                              values: IPV4, IPV6.
                                            type: string
                                            enum:
                                              - IPV4
                                              - IPV6
                                          loadBalancerIp:
                                            description: >
                                              An IPV4 or IPV6 address. Representation:
                                              In case of an IPV4 address, string that
                                              consists of four decimal integers
                                              separated by dots, each integer ranging
                                              from 0 to 255. In case of an IPV6
                                              address, string that consists of groups
                                              of zero to four hexadecimal digits,
                                              separated by colons.
                                            type: string
                                            format: IP
                                          addressPoolName:
                                            description: >
                                              Name of an address pool from which the
                                              container cluster will assign an IP
                                              address to the virtual CP. See notes 3
                                              and 4.
                                            type: string
                    extLinkPorts:
                      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 except in the cases defined
                        below. See note 1.
                      type: array
                      items:
                        description: "This type represents an externally provided link port to be used to connect an external connection point to an external VL. * NOTE:\tThe value of \"trunkResourceId\" is scoped by the value of \"vimConnectionId\" in the \"resourceHandle\" attribute.\n"
                        type: object
                        required:
                          - id
                          - resourceHandle
                        properties:
                          id:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
                          trunkResourceId:
                            description: >
                              An identifier maintained by the VIM  or the CISM
                              or other resource provider. It is expected to be
                              unique within the VIM instance.
                            type: string
                    extNetAttDefResourceData:
                      description: >
                        Externally provided network attachment definition
                        resource(s) that provide the specification of the
                        interface to attach external CPs to this external VL.
                        See note 2. It is only applicable if the external VL is
                        realized by a secondary container cluster network. It
                        shall not be present otherwise.
                      type: array
                      items:
                        description: >
                          This type represents a network attachment definition
                          resource that provides the specification of the
                          interface to be used to connect one or multiple
                          connection points to a secondary container cluster
                          network realizing a VL.
                        type: object
                        required:
                          - netAttDefResourceId
                          - resourceHandle
                        properties:
                          netAttDefResourceId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
              extManagedVirtualLinks:
                description: >
                  Information about internal VLs that are managed by other
                  entities than the VNFM. See notes 4, 5, 7 and 8.
                type: array
                items:
                  description: >
                    This type represents an externally-managed internal VL.

                    * NOTE 1: It is only applicable if the externally-managed VL
                    is realized by a secondary container cluster network. It
                    shall
                              not be present otherwise.
                    * NOTE 2: A link port is not needed for a VNFC internal
                    connection point connected to a secondary container cluster
                              network.
                    * NOTE 3: An example of the network attachment definition
                    resource when the container infrastructure service
                              management is a Kubernetes® instance is a network attachment definition (NAD).

                    * NOTE 4: In the case that the cloud native template
                    included in the MCIOP describes the set of VNFC instances,
                    an 
                              instance of intCp need not be included for each VNFC instance as all instances would contain the same 
                              information. It is sufficient to include one intCp for the related CPD. The case of using, for a scalable VDU, a 
                              cloud native template in the MCIOP that describes one single VNFC instance is not specified in the present 
                              document version
                  type: object
                  required:
                    - id
                    - vnfVirtualLinkDescId
                    - resourceId
                  properties:
                    id:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    vnfVirtualLinkDescId:
                      description: |
                        An identifier that is unique within a VNF descriptor.
                      type: string
                    vimConnectionId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceProviderId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
                    resourceId:
                      description: >
                        An identifier maintained by the VIM  or the CISM or
                        other resource provider. It is expected to be unique
                        within the VIM instance.
                      type: string
                    netAttDefResourceData:
                      description: >
                        Externally provided network attachment definition
                        resource(s) that provide the specification of the
                        interface to attach VNFC connection points to this
                        externallymanaged VL. See notes 1 and 3.
                      type: array
                      items:
                        description: >
                          This type represents a network attachment definition
                          resource that provides the specification of the
                          interface to be used to connect one or multiple
                          connection points to a secondary container cluster
                          network realizing a VL.
                        type: object
                        required:
                          - netAttDefResourceId
                          - resourceHandle
                        properties:
                          netAttDefResourceId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
                    intCp:
                      description: >
                        Internal CPs of the VNF to be connected to this
                        externally-managed VL. See note 1 and 4.
                      type: array
                      items:
                        description: >
                          This type represents input information related to one
                          or more VNF internal CP instances created based on the
                          same CPD.

                          NOTE: Cardinality greater than 1 is only applicable
                          for specific cases where more than one network
                          attachment
                                definition resource is needed to fulfil the connectivity requirements of the VNF internal CP, e.g. to build a link
                                redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall
                                belong to the same namespace as defined by the corresponding "containerNamespace" attribute in the "resourceHandle" attribute
                                in the "NetAttDefResourceData".
                        type: object
                        required:
                          - cpdId
                          - netAttDefResourceId
                        properties:
                          cpdId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          netAttDefResourceId:
                            description: >
                              Identifiers of the “NetAttDefResourceData”
                              structure that provides the specification of the
                              interface to attach the VNF internal CP created
                              from the CPD identified by cpdId to a secondary
                              container cluster network. See note.
                            type: array
                            items:
                              description: >
                                An identifier with the intention of being
                                globally unique.
                              type: string
                    vnfLinkPort:
                      description: >
                        Externally provided link ports to be used to connect
                        VNFC connection points to this externally-managed VL on
                        this network resource. If this attribute is not present,
                        the VNFM shall create the link ports on the
                        externally-managed VL. See note 2.
                      type: array
                      items:
                        description: >
                          This type represents an externally provided link port
                          to be used to connect a VNFC connection point  to an
                          exernally managed VL.
                        type: object
                        required:
                          - vnfLinkPortId
                          - resourceHandle
                        properties:
                          vnfLinkPortId:
                            description: >
                              An identifier with the intention of being globally
                              unique.
                            type: string
                          resourceHandle:
                            required:
                              - resourceId
                            type: object
                            description: >
                              This type represents the information that allows
                              addressing a virtualised resource that is used by
                              a VNF instance. Information about the resource is
                              available from the VIM.

                              * NOTE 1: The value set of the
                              "vimLevelResourceType" attribute is within the
                              scope of the VIM or CISM 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). When the container 
                                        infrastructure service management is a Kubernetes® instance the vimLevelResourceType is the type of 
                                        resource, as would correspond to the 'kind' field if the resource is declared in its own Kubernetes® manifest, 
                                        e.g.: Pod, PersistentVolumeClaim, NetworkAttachmentDefinition.

                              * NOTE 2: When the container infrastructure
                              service management is a Kubernetes® instance the
                              resourceId shall be 
                                        populated in the following way:
                                        - For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide 
                                        per resource type.
                                        - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, 
                                        i.e. the value of the 'claimName' field in the Kubernetes® manifest, or a compound name built by 
                                        Kubernetes® if the persistent volume claim is defined inline in another template instead of in its own 
                                        manifest.
                                        - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of 
                                        the 'metadata.name' field in Kubernetes® manifest.
                            properties:
                              vimConnectionId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceProviderId:
                                description: >
                                  An identifier with the intention of being
                                  globally unique.
                                type: string
                              resourceId:
                                description: >
                                  An identifier maintained by the VIM  or the
                                  CISM or other resource provider. It is
                                  expected to be unique within the VIM instance.
                                type: string
                              vimLevelResourceType:
                                description: >
                                  Type of the resource in the scope of the VIM
                                  or the CISM or the resource provider. See note
                                  1.
                                type: string
                              vimLevelAdditionalResourceInfo:
                                description: >
                                  This type represents additional resource
                                  information which resource and resource type
                                  specific, and which is available from the VIM
                                  or the CISM or the resource provider.

                                  * NOTE: At least one attribute shall be
                                  present.
                                type: object
                                properties:
                                  hostName:
                                    description: >
                                      Name of the host where the resource is
                                      allocated. It shall be present for compute
                                      resources in the scope of the CISM and
                                      shall be absent otherwise. See note.
                                    type: string
                                  persistentVolume:
                                    description: >
                                      Name of the persistent volume to which the
                                      persistent volume claim representing the
                                      storage resource is bound. It may be
                                      present for storage resources in the scope
                                      of the CISM and shall be absent otherwise.
                                      See note.
                                    type: string
                                  additionalInfo:
                                    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.
                                    type: object
                              containerNamespace:
                                description: >
                                  The value of the namespace in which the MCIO
                                  corresponding to the resource is deployed.
                                  This attribute shall be present if the
                                  resource is managed by a CISM and it shall be
                                  absent otherwise.
                                type: string
                    extManagedMultisiteVirtualLinkId:
                      description: >
                        An identifier with the intention of being globally
                        unique.
                      type: string
              additionalParams:
                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.
                type: object
              _links:
                description: |
                  Links to resources related to this resource.
                type: object
                required:
                  - self
                  - vnfLcmOpOcc
                  - vnfInstance
                properties:
                  self:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
                  vnfLcmOpOcc:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
                  vnfInstance:
                    description: >
                      This type represents a link to a resource using an
                      absolute URI.
                    type: object
                    required:
                      - href
                    properties:
                      href:
                        description: |
                          String formatted according to IETF RFC 3986.
                        type: string
    IndividualGrant.Get.202:
      description: >
        202 ACCEPTED


        Shall be returned when the process of creating the grant is ongoing, no
        grant is available yet.

        The response body shall be empty.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the

            corresponding HTTP request has provided an invalid authorization
            token.
          style: simple
          explode: false
          schema:
            type: string
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
    IndividualGrant.Get.403:
      description: |
        403 FORBIDDEN

        Shall be returned upon the following error: The grant
        has been rejected.
        A ProblemDetails structure shall be included in the
        response to provide more details about the rejection in
        the "details" attribute.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the

            corresponding HTTP request has provided an invalid authorization
            token.
          style: simple
          explode: false
          schema:
            type: string
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: |
            The MIME type of the body of the response. Reference: IETF RFC 7231
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            description: >
              The definition of the general "ProblemDetails" data structure from
              IETF RFC 7807 is reproduced inthis structure. Compared to the
              general framework defined in IETF RFC 7807, 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 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.
            type: object
            required:
              - status
              - detail
            properties:
              type:
                description: >
                  A URI reference according to IETF RFC 3986 that identifies the
                  problem type. It is encouraged that the URI provides
                  human-readable documentation for the problem (e.g. using HTML)
                  when dereferenced. When this member is not present, its value
                  is assumed to be "about:blank".
                type: string
                format: URI
              title:
                description: >
                  A short, human-readable summary of the problem type. It should
                  not change from occurrence to occurrence of the problem,
                  except for purposes of localization. If type is given and
                  other than "about:blank", this attribute shall also be
                  provided. A short, human-readable summary of the problem
                  type.  It SHOULD NOT change from occurrence to occurrence of
                  the problem, except for purposes of localization (e.g., using
                  proactive content negotiation; see [RFC7231], Section 3.4).
                type: string
              status:
                description: >
                  The HTTP status code for this occurrence of the problem. The
                  HTTP status code ([RFC7231], Section 6) generated by the
                  origin server for this occurrence of the problem.
                type: integer
              detail:
                description: >
                  A human-readable explanation specific to this occurrence of
                  the problem.
                type: string
              instance:
                description: >
                  A URI reference that identifies the specific occurrence of the
                  problem. It may yield further information if dereferenced.
                type: string
                format: URI

