From eb8a950ef1d71ee2e38db798d94f874add8408ec Mon Sep 17 00:00:00 2001 From: mxzhao <mengxuan.zhao@eglobalmark.com> Date: Tue, 6 Nov 2018 12:50:46 +0100 Subject: [PATCH] SOL003 VNFLifecycleOperationGranting API --- .../Grants.robot | 83 + ...003-VNFLifecycleOperationGranting-API.yaml | 4058 +++++++++++++++++ .../jsons/grantRejectedRequest.json | 16 + .../jsons/grantRequest.json | 16 + .../variables.txt | 32 + TrackingStatus.txt | 4 +- 6 files changed, 4208 insertions(+), 1 deletion(-) create mode 100644 SOL003/VNFLifecycleOperationGranting-API_egm/Grants.robot create mode 100644 SOL003/VNFLifecycleOperationGranting-API_egm/SOL003-VNFLifecycleOperationGranting-API.yaml create mode 100644 SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRejectedRequest.json create mode 100644 SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRequest.json create mode 100644 SOL003/VNFLifecycleOperationGranting-API_egm/variables.txt diff --git a/SOL003/VNFLifecycleOperationGranting-API_egm/Grants.robot b/SOL003/VNFLifecycleOperationGranting-API_egm/Grants.robot new file mode 100644 index 00000000..7f87fc5e --- /dev/null +++ b/SOL003/VNFLifecycleOperationGranting-API_egm/Grants.robot @@ -0,0 +1,83 @@ +*** Settings *** +Resource variables.txt +Library REST http://${NFVO_HOST}:${NFVO_PORT} +... spec=SOL003-VNFLifecycleOperationGranting-API.yaml +Library OperatingSystem +Documentation This resource represents grants. The client can use this resource to obtain permission +... from the NFVO to perform a particular VNF lifecycle operation. + +*** Test Cases *** +Create a new Grant - Synchronous mode + Log Request a new Grant for a VNF LCM operation by POST to ${apiRoot}/${apiName}/${apiVersion}/grants + Pass Execution If ${SYNC_MODE} == 0 The Granting process is asynchronous mode. Skipping the test + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File json/grantRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/grants ${body} + Output response + Integer response status 201 + Log Status code validated + +Create a new Grant - Asynchronous mode + Log Request a new Grant for a VNF LCM operation by POST to ${apiRoot}/${apiName}/${apiVersion}/grants + Pass Execution If ${SYNC_MODE} == 1 The Granting process is synchronous mode. Skipping the test + Set Headers {"Accept": "${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body}= Get File json/grantRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/grants ${body} + Output response + Integer response status 202 + Log Status code validated + +Create a new Grant - Forbidden + # TODO: How to set up the pre-condition for this test? + Log Request a new Grant for a VNF LCM operation by POST to ${apiRoot}/${apiName}/${apiVersion}/grants + Log The grant request should be rejected + Set Headers {"Accept": "${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body}= Get File json/grantRejectedRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/grants ${body} + Output response + Integer response status 403 + Log Status code validated + +GET Grants - Method not implemented + Log Trying to perform a GET. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiVersion}/grants + Output response + Log Validate Status code + Integer response status 405 + +PUT subscriptions - Method not implemented + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Log Validate Status code + Output response + Integer response status 405 + +PATCH subscriptions - Method not implemented + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Log Validate Status code + Output response + Integer response status 405 + +DELETE subscriptions - Method not implemented + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Log Validate Status code + Output response + Integer response status 405 + \ No newline at end of file diff --git a/SOL003/VNFLifecycleOperationGranting-API_egm/SOL003-VNFLifecycleOperationGranting-API.yaml b/SOL003/VNFLifecycleOperationGranting-API_egm/SOL003-VNFLifecycleOperationGranting-API.yaml new file mode 100644 index 00000000..e68038cb --- /dev/null +++ b/SOL003/VNFLifecycleOperationGranting-API_egm/SOL003-VNFLifecycleOperationGranting-API.yaml @@ -0,0 +1,4058 @@ +swagger: '2.0' +info: + version: 1.1.1 + 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. + + + In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based filtering + mechanism is defined. This mechanism is currently not included in the + corresponding OpenAPI design for this GS version. Changes to the + attribute-based filtering mechanism are being considered in v2.5.1 of this + GS for inclusion in the corresponding future ETSI NFV OpenAPI design. + + Please report bugs to + https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + license: + name: ETSI Forge copyright notice + url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' +externalDocs: + description: ETSI GS NFV-SOL 003 V2.4.1 + url: >- + http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf +basePath: /grant/v1 +schemes: + - https +consumes: + - application/json +produces: + - application/json +paths: + /grants: + post: + description: > + Grant Lifecycle Operation + + + The POST method requests a grant for a particular VNF lifecycle + operation. + parameters: + - name: GrantRequest + in: body + required: true + schema: + description: | + This type represents a grant request. + 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 + flavourId: + description: | + An identifier with the intention of being globally unique. + type: string + operation: + description: > + Value | Description ------|------------ INSTANTIATE | + Represents the "Instantiate VNF" LCM operation. SCALE | + Represents the "Scale VNF" LCM operation. SCALE_TO_LEVEL | + Represents the "Scale VNF to Level" LCM operation. + CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM + operation. TERMINATE | Represents the "Terminate VNF" LCM + operation. HEAL | Represents the "Heal VNF" LCM operation. + OPERATE | Represents the "Operate VNF" LCM operation. + CHANGE_EXT_CONN | Represents the "Change external VNF + connectivity" LCM operation. MODIFY_INFO | Represents the + "Modify VNF Information" LCM operation. + type: string + enum: + - INSTANTIATE + - SCALE + - SCALE_TO_LEVEL + - CHANGE_FLAVOUR + - TERMINATE + - HEAL + - OPERATE + - CHANGE_EXT_CONN + - MODIFY_INFO + 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 + 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. If the granting request + is for InstantiateVNF, either instantiationLevel or + addResources shall be present. + type: array + items: + description: > + This type provides information of an existing or proposed + resource used by the VNF. + type: object + required: + - id + - type + 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 + type: string + enum: + - COMPUTE + - VL + - STORAGE + - LINKPORT + vduId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resourceTemplateId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resource: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows + addressing a virtualised resource that is used by a VNF + instance. Information about the resource is available + from the VIM. + properties: + vimConnectionId: + description: > + 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 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 + resource provider. + 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. The NFVO will assume that the VNFM will be + responsible to both allocate and release the temporary + resource during the runtime of the LCM operation. This means, + the resource can be allocated and consumed after the "start" + notification for the LCM operation is sent by the VNFM, and + the resource will be released before the "result" notification + of the VNF LCM operation is sent by the VNFM. + type: array + items: + description: > + This type provides information of an existing or proposed + resource used by the VNF. + type: object + required: + - id + - type + 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 + type: string + enum: + - COMPUTE + - VL + - STORAGE + - LINKPORT + vduId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resourceTemplateId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resource: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows + addressing a virtualised resource that is used by a VNF + instance. Information about the resource is available + from the VIM. + properties: + vimConnectionId: + description: > + 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 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 + resource provider. + 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. + type: array + items: + description: > + This type provides information of an existing or proposed + resource used by the VNF. + type: object + required: + - id + - type + 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 + type: string + enum: + - COMPUTE + - VL + - STORAGE + - LINKPORT + vduId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resourceTemplateId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resource: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows + addressing a virtualised resource that is used by a VNF + instance. Information about the resource is available + from the VIM. + properties: + vimConnectionId: + description: > + 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 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 + resource provider. + 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. + type: array + items: + description: > + This type provides information of an existing or proposed + resource used by the VNF. + type: object + required: + - id + - type + 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 + type: string + enum: + - COMPUTE + - VL + - STORAGE + - LINKPORT + vduId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resourceTemplateId: + description: | + An identifier that is unique within a VNF descriptor. + type: string + resource: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows + addressing a virtualised resource that is used by a VNF + instance. Information about the resource is available + from the VIM. + properties: + vimConnectionId: + description: > + 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 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 + resource provider. + 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. The affinity/anti-affinity + rules defined in the VNFD , and the placement constraints in + the GrantVnfLifecycleOperation as defined in this clause + should be conflict-free. In case of conflicts, the placement + constraints in the GrantVnfLifecycleOperation shall take + precedence. Passing constraints allows the VNFM or the + lifecycle management scripts to influence resource placement + decisions by the NFVO to ensure VNF properties such as + performance or fault tolerance. + 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}} + 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 + type: string + enum: + - NFVI_POP + - ZONE + - ZONE_GROUP + - NFVI_NODE + resource: + description: | + References to resources in the constraint rule. + type: array + 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 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 + 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 + 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 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 + key- value pairs is represented as an object. It shall comply + with the provisions defined in clause 4 of IETF RFC 7159. + 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. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + vnfInstance: + description: | + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + '201': + description: > + Created + + The grant was 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: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created VNF instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: | + This type represents a grant. + 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 + vimConnections: + description: > + Provides information regarding VIM connections that are + approved to be used by the VNFM to allocate resources, and + provides parameters of these VIM 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 VimConnection entries passed earlier; for that, the + VnfInfoModificationRequest structure shall be used. This + attribute shall only be supported when VNF-related Resource + Management in direct mode is applicable. In direct mode, this + parameter shall be absent if the VIM information was + configured to the VNFM in another way, present otherwise. This + interface allows to signal the use of multiple VIMs per VNF. + However, due to the partial support of this feature in the + present release, it is recommended in the present document + that the number of entries in the "vims" attribute in the + Grant is not greater than 1. + type: array + items: + description: > + This type represents parameters to connect to a VIM for + managing the resources of a VNF instance. This structure is + used to convey VIM-related parameters over the Or-Vnfm + interface. Additional parameters for a VIM may be configured + into the VNFM by means outside the scope of the present + document, and bound to the identifier of that VIM. + type: object + required: + - id + - vimType + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + 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. The set of + permitted values is expected to change over time as new + types or versions of VIMs become available. The ETSI NFV + registry of VIM-related information provides access to + information about VimConnectionInfo definitions for + various VIM types. The structure of the registry is + defined in Annex C of SOL003. + 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 key- value pairs is represented as an + object. It shall comply with the provisions defined in + clause 4 of IETF RFC 7159. + 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 key- value pairs is represented as an + object. It shall comply with the provisions defined in + clause 4 of IETF RFC 7159. + 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 key- value pairs is represented as an + object. It shall comply with the provisions defined in + clause 4 of IETF RFC 7159. + 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 + computeReservationId: + description: > + An identifier maintained by the VIM or other resource + provider. It is expected to be unique within the VIM instance. + type: string + networkReservationId: + description: > + An identifier maintained by the VIM or other resource + provider. It is expected to be unique within the VIM instance. + type: string + storageReservationId: + description: > + An identifier maintained by the VIM or other resource + provider. It is expected to be unique within the VIM instance. + type: string + addResources: + description: > + List of resources that are approved to be added, with one + entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + tempResources: + description: > + List of resources that are approved to be temporarily + instantiated during the runtime of the lifecycle operation, + with one entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + removeResources: + description: > + List of resources that are approved to be removed, with one + entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + updateResources: + description: > + List of resources that are approved to be modified, with one + entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + vimAssets: + description: > + Information about assets for the VNF that are managed by the + NFVO in the VIM, such as software images and virtualised + compute resource flavours. This attribute is not intended for + the modification of vimAssets entries passed earlier. + Modification of VIM assets during the lifetime of a VNF + instance is not necessary, since it is expected that all + applicable assets have been on boarded into the VIM before the + VNF is instantiated. + 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 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 which is needed during + compute resource instantiation. + 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 other + resource provider. It is expected to be unique + within the VIM instance. + type: string + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. External + and/or externally-managed internal VLs can be passed in VNF + lifecycle management operation requests such as InstantiateVnf + or ChangeVnfFlavor, and/or in the grant response. The NFVO may + choose to override in the grant response external and/or + externally-managed VL instances that have been passed + previously in the associated VNF lifecycle management request, + if the lifecycle management request has originated from the + NFVO itself. + type: array + items: + description: | + This type represents an external VL. + 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 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. + type: array + items: + description: > + This type represents configuration information for + external CPs created from a CPD. + type: object + required: + - cpdId + properties: + cpdId: + description: > + An identifier that is unique within a VNF + descriptor. + type: string + cpConfig: + description: > + List of instance data that need to be configured + on the CP instances created from the respective + CPD. + type: array + items: + description: > + This type represents an externally provided link + port or network address information per instance + of an external connection point. In case a link + port is provided, the VNFM shall use that link + port when connecting the external CP to the + external VL. In a link port is not provided, the + VNFM shall create a link port on the external + VL, and use that link port to connect the + external CP to the external VL. + type: object + properties: + cpInstanceId: + description: > + 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 + cpProtocolData: + description: > + Parameters for configuring the network + protocols on the link port that connects the + CP to a VL. The following conditions apply + to the attributes "linkPortId" and + "cpProtocolData": * The "linkPortId" and + "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + * At least one of these attributes shall be + present for a + to-be-created external CP instance or an existing external + CP instance. + * If the "linkPortId" attribute is absent, + the VNFM shall create a + link port. + * If the "cpProtocolData" attribute is + absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + * If both "cpProtocolData" and "linkportId" + are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + type: array + items: + description: > + This type represents network protocol + data. + type: object + required: + - layerProtocol + properties: + layerProtocol: + description: > + Identifier of layer(s) and protocol(s). + This attribute allows to signal the + addition of further types of layer and + protocol in future versions of the + present document in a + backwards-compatible way. In the current + version of the present document, only IP + over Ethernet is supported. + type: string + enum: + - IP_OVER_ETHERNET + ipOverEthernet: + description: > + This type represents network address + data for IP over Ethernet. + type: object + 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 + ipAddresses: + description: > + List of IP addresses to assign to the CP + instance. Each entry represents IP + address data for fixed or dynamic IP + address assignment per subnet. If this + attribute is not present, no IP address + shall be assigned. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. Permitted + values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + fixedAddresses: + description: > + Fixed addresses to assign (from the + subnet defined by "subnetId" if + provided). Exactly one of + "fixedAddresses", "numDynamicAddresses" + or "ipAddressRange" shall be present. + type: array + items: + 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). Exactly one of + "fixedAddresses", "numDynamicAddresses" + or "ipAddressRange" shall be present. + type: integer + addressRange: + description: > + An IP address range to be used, e.g. in + case of egress connections. In case this + attribute is present, IP addresses from + the range will be used. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + 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 + other resource provider. It is expected + to be unique within the VIM instance. + 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. + 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. + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + resourceHandle: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows + addressing a virtualised resource that is used by + a VNF instance. Information about the resource is + available from the VIM. + properties: + vimConnectionId: + description: > + 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 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 resource provider. + type: string + extManagedVirtualLinks: + description: > + Information about internal VLs that are managed by other + entities than the VNFM. The indication of externally-managed + internal VLs is needed in case networks have been + pre-configured for use with certain VNFs, for instance to + ensure that these networks have certain properties such as + security or acceleration features, or to address particular + network topologies. The present document assumes that + externally-managed internal VLs are managed by the NFVO and + created towards the VIM. External and/or externally-managed + internal VLs can be passed in VNF lifecycle management + operation requests such as InstantiateVnf or ChangeVnfFlavor, + and/or in the grant response. The NFVO may choose to override + in the grant response external and/or externally-managed VL + instances that have been passed previously in the associated + VNF lifecycle management request, if the lifecycle management + request has originated from the NFVO itself. + type: array + items: + type: object + required: + - id + - virtualLinkDescId + - resourceId + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + virtualLinkDescId: + 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 other resource + provider. It is expected to be unique within the VIM + instance. + 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 + key- value pairs is represented as an object. It shall comply + with the provisions defined in clause 4 of IETF RFC 7159. + 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. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + vnfLcmOpOcc: + description: | + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + vnfInstance: + description: | + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + '202': + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. 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 VNF instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + '400': + description: > + Bad Request + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, and + should include in the "detail" attribute more information about the + source of the problem. + + --- + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + --- + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '401': + description: > + Unauthorized + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '403': + description: > + Forbidden + + The grant was rejected. A ProblemDetails structure shall be included + in the response to provide more details about the rejection in the + "details" attribute. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '404': + description: > + Not Found + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '405': + description: > + Method Not Allowed + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '406': + description: > + Not Acceptable + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '416': + description: > + Requested Range Not Satisfiable + + This code is returned if the requested byte range in the Range HTTP + header is not present in the requested resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '422': + description: > + Unprocessable Entity + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. NOTE 2: + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '500': + description: > + Internal Server Error + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond withthis response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '503': + description: > + Service Unavailable + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the "Retry-After" HTTP header and for the alternative to + refuse the connection. The "ProblemDetails" structure may be + omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '/grants/{grantId}': + parameters: + - name: grantId + 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 payload body of that + response. + in: path + type: string + required: true + get: + description: > + Grant Lifecycle Operation + + + The GET method retrieves information about a specific grant by reading + an individual grant resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + '200': + description: > + OK + + The grant was read successfully. A representation of the "individual + grant" resource shall be returned in the response body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: | + This type represents a grant. + 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 + vimConnections: + description: > + Provides information regarding VIM connections that are + approved to be used by the VNFM to allocate resources, and + provides parameters of these VIM 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 VimConnection entries passed earlier; for that, the + VnfInfoModificationRequest structure shall be used. This + attribute shall only be supported when VNF-related Resource + Management in direct mode is applicable. In direct mode, this + parameter shall be absent if the VIM information was + configured to the VNFM in another way, present otherwise. This + interface allows to signal the use of multiple VIMs per VNF. + However, due to the partial support of this feature in the + present release, it is recommended in the present document + that the number of entries in the "vims" attribute in the + Grant is not greater than 1. + type: array + items: + description: > + This type represents parameters to connect to a VIM for + managing the resources of a VNF instance. This structure is + used to convey VIM-related parameters over the Or-Vnfm + interface. Additional parameters for a VIM may be configured + into the VNFM by means outside the scope of the present + document, and bound to the identifier of that VIM. + type: object + required: + - id + - vimType + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + 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. The set of + permitted values is expected to change over time as new + types or versions of VIMs become available. The ETSI NFV + registry of VIM-related information provides access to + information about VimConnectionInfo definitions for + various VIM types. The structure of the registry is + defined in Annex C of SOL003. + 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 key- value pairs is represented as an + object. It shall comply with the provisions defined in + clause 4 of IETF RFC 7159. + 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 key- value pairs is represented as an + object. It shall comply with the provisions defined in + clause 4 of IETF RFC 7159. + 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 key- value pairs is represented as an + object. It shall comply with the provisions defined in + clause 4 of IETF RFC 7159. + 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 + computeReservationId: + description: > + An identifier maintained by the VIM or other resource + provider. It is expected to be unique within the VIM instance. + type: string + networkReservationId: + description: > + An identifier maintained by the VIM or other resource + provider. It is expected to be unique within the VIM instance. + type: string + storageReservationId: + description: > + An identifier maintained by the VIM or other resource + provider. It is expected to be unique within the VIM instance. + type: string + addResources: + description: > + List of resources that are approved to be added, with one + entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + tempResources: + description: > + List of resources that are approved to be temporarily + instantiated during the runtime of the lifecycle operation, + with one entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + removeResources: + description: > + List of resources that are approved to be removed, with one + entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + updateResources: + description: > + List of resources that are approved to be modified, with one + entry per resource. + type: array + items: + description: > + This type contains information about a Compute, storage or + network resource whose addition/update/deletion was 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 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 + 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 other resource + provider. It is expected to be unique within the VIM + instance. + type: string + vimAssets: + description: > + Information about assets for the VNF that are managed by the + NFVO in the VIM, such as software images and virtualised + compute resource flavours. This attribute is not intended for + the modification of vimAssets entries passed earlier. + Modification of VIM assets during the lifetime of a VNF + instance is not necessary, since it is expected that all + applicable assets have been on boarded into the VIM before the + VNF is instantiated. + 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 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 which is needed during + compute resource instantiation. + 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 other + resource provider. It is expected to be unique + within the VIM instance. + type: string + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. External + and/or externally-managed internal VLs can be passed in VNF + lifecycle management operation requests such as InstantiateVnf + or ChangeVnfFlavor, and/or in the grant response. The NFVO may + choose to override in the grant response external and/or + externally-managed VL instances that have been passed + previously in the associated VNF lifecycle management request, + if the lifecycle management request has originated from the + NFVO itself. + type: array + items: + description: | + This type represents an external VL. + 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 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. + type: array + items: + description: > + This type represents configuration information for + external CPs created from a CPD. + type: object + required: + - cpdId + properties: + cpdId: + description: > + An identifier that is unique within a VNF + descriptor. + type: string + cpConfig: + description: > + List of instance data that need to be configured + on the CP instances created from the respective + CPD. + type: array + items: + description: > + This type represents an externally provided link + port or network address information per instance + of an external connection point. In case a link + port is provided, the VNFM shall use that link + port when connecting the external CP to the + external VL. In a link port is not provided, the + VNFM shall create a link port on the external + VL, and use that link port to connect the + external CP to the external VL. + type: object + properties: + cpInstanceId: + description: > + 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 + cpProtocolData: + description: > + Parameters for configuring the network + protocols on the link port that connects the + CP to a VL. The following conditions apply + to the attributes "linkPortId" and + "cpProtocolData": * The "linkPortId" and + "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + * At least one of these attributes shall be + present for a + to-be-created external CP instance or an existing external + CP instance. + * If the "linkPortId" attribute is absent, + the VNFM shall create a + link port. + * If the "cpProtocolData" attribute is + absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + * If both "cpProtocolData" and "linkportId" + are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + type: array + items: + description: > + This type represents network protocol + data. + type: object + required: + - layerProtocol + properties: + layerProtocol: + description: > + Identifier of layer(s) and protocol(s). + This attribute allows to signal the + addition of further types of layer and + protocol in future versions of the + present document in a + backwards-compatible way. In the current + version of the present document, only IP + over Ethernet is supported. + type: string + enum: + - IP_OVER_ETHERNET + ipOverEthernet: + description: > + This type represents network address + data for IP over Ethernet. + type: object + 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 + ipAddresses: + description: > + List of IP addresses to assign to the CP + instance. Each entry represents IP + address data for fixed or dynamic IP + address assignment per subnet. If this + attribute is not present, no IP address + shall be assigned. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. Permitted + values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + fixedAddresses: + description: > + Fixed addresses to assign (from the + subnet defined by "subnetId" if + provided). Exactly one of + "fixedAddresses", "numDynamicAddresses" + or "ipAddressRange" shall be present. + type: array + items: + 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). Exactly one of + "fixedAddresses", "numDynamicAddresses" + or "ipAddressRange" shall be present. + type: integer + addressRange: + description: > + An IP address range to be used, e.g. in + case of egress connections. In case this + attribute is present, IP addresses from + the range will be used. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + 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 + other resource provider. It is expected + to be unique within the VIM instance. + 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. + 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. + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + resourceHandle: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows + addressing a virtualised resource that is used by + a VNF instance. Information about the resource is + available from the VIM. + properties: + vimConnectionId: + description: > + 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 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 resource provider. + type: string + extManagedVirtualLinks: + description: > + Information about internal VLs that are managed by other + entities than the VNFM. The indication of externally-managed + internal VLs is needed in case networks have been + pre-configured for use with certain VNFs, for instance to + ensure that these networks have certain properties such as + security or acceleration features, or to address particular + network topologies. The present document assumes that + externally-managed internal VLs are managed by the NFVO and + created towards the VIM. External and/or externally-managed + internal VLs can be passed in VNF lifecycle management + operation requests such as InstantiateVnf or ChangeVnfFlavor, + and/or in the grant response. The NFVO may choose to override + in the grant response external and/or externally-managed VL + instances that have been passed previously in the associated + VNF lifecycle management request, if the lifecycle management + request has originated from the NFVO itself. + type: array + items: + type: object + required: + - id + - virtualLinkDescId + - resourceId + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + virtualLinkDescId: + 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 other resource + provider. It is expected to be unique within the VIM + instance. + 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 + key- value pairs is represented as an object. It shall comply + with the provisions defined in clause 4 of IETF RFC 7159. + 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. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + vnfLcmOpOcc: + description: | + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + vnfInstance: + description: | + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: | + URI of the referenced resource. + type: string + format: url + '202': + description: > + Accepted + + 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. + type: string + maximum: 1 + minimum: 0 + '400': + description: > + Bad Request + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, and + should include in the "detail" attribute more information about the + source of the problem. + + --- + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + --- + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '401': + description: > + Unauthorized + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '403': + description: > + Forbidden + + The grant was rejected. A ProblemDetails structure shall be included + in the response to provide more details about the rejection in the + "details" attribute. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '404': + description: > + Not Found + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '405': + description: > + Method Not Allowed + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '406': + description: > + Not Acceptable + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '416': + description: > + Requested Range Not Satisfiable + + This code is returned if the requested byte range in the Range HTTP + header is not present in the requested resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '422': + description: > + Unprocessable Entity + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. NOTE 2: + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '500': + description: > + Internal Server Error + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond withthis response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + '503': + description: > + Service Unavailable + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the "Retry-After" HTTP header and for the alternative to + refuse the connection. The "ProblemDetails" structure may be + omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + diff --git a/SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRejectedRequest.json b/SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRejectedRequest.json new file mode 100644 index 00000000..d8ae1e89 --- /dev/null +++ b/SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRejectedRequest.json @@ -0,0 +1,16 @@ +{ + "vnfInstanceId": "string", + "vnfLcmOpOccId": "string", + "vnfdId": "string", + "flavourId": "string", + "operation": "INSTANTIATE", + "isAutomaticInvocation": true, + "_links": { + "vnfLcmOpOcc": { + "href": "string" + }, + "vnfInstance": { + "href": "string" + } + } +} \ No newline at end of file diff --git a/SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRequest.json b/SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRequest.json new file mode 100644 index 00000000..d8ae1e89 --- /dev/null +++ b/SOL003/VNFLifecycleOperationGranting-API_egm/jsons/grantRequest.json @@ -0,0 +1,16 @@ +{ + "vnfInstanceId": "string", + "vnfLcmOpOccId": "string", + "vnfdId": "string", + "flavourId": "string", + "operation": "INSTANTIATE", + "isAutomaticInvocation": true, + "_links": { + "vnfLcmOpOcc": { + "href": "string" + }, + "vnfInstance": { + "href": "string" + } + } +} \ No newline at end of file diff --git a/SOL003/VNFLifecycleOperationGranting-API_egm/variables.txt b/SOL003/VNFLifecycleOperationGranting-API_egm/variables.txt new file mode 100644 index 00000000..c9c972fb --- /dev/null +++ b/SOL003/VNFLifecycleOperationGranting-API_egm/variables.txt @@ -0,0 +1,32 @@ +*** Variables *** +${VNFM_HOST} localhost # Hostname of the VNFM +${VNFM_PORT} 8080 # Listening port of the VNFM +${NFVO_HOST} localhost # Hostname of the NFVO +${NFVO_PORT} 8081 # Listening port of the NFVO +${VNFM_SCHEMA} https +${NFVO_SCHEMA} https +${AUTHORIZATION} Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ== +${CONTENT_TYPE} application/json +${CONTENT_TYPE_PATCH} application/merge-patch+json +${ACCEPT} application/json +${apiRoot} / +${apiName} grant +${apiVersion} v1 +${AUTH_USAGE} 1 +${WRONG_AUTHORIZATION} Bearer XXXXXWRONGXXXXX +${grantId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d +${vnfInstanceDescription} description vnf +${vnfInstanceDescription_Update} Updated description vnf +${SINGLE_FILE_VNFD} 1 # If VNFD is PLAIN TEXT +${ACCEPT_PLAIN} text/plain +${ACCEPT_ZIP} application/zip +${vnfPkgId_processing} 007c111c-38a1-42c0-a666-7475ecb1567c +${ARTIFACT_TYPE} application/octet-stream +${ARTIFACT_ID} artifactId +${WRONG_ACCEPT} application/json +${SYNC_MODE} 1 +${sub_filter} filter +${sub_filter_invalid} filter_invalid +${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f +${notification_ep} notification +${VrQuotaAvailNotification} {} \ No newline at end of file diff --git a/TrackingStatus.txt b/TrackingStatus.txt index 94f3e38a..2b2fca53 100644 --- a/TrackingStatus.txt +++ b/TrackingStatus.txt @@ -70,7 +70,9 @@ SOL003 * IndividualSubscription -----------------------------------> [DONE] * NotificationEndpoint -------------------------------------> [DONE] //to be reviewed with nxw on how notification server will be configured - - VNFLifecycleOperationGranting-API_egm -------------------> [NOT STARTED] + - VNFLifecycleOperationGranting-API_egm -------------------> [IN PROGRESS] + * Grants----------------------------------------------> [DONE] + * IndividualGrant----------------------------------------------> [IN PROGRESS] - VNFPackageManagement-API_nxw ----------------------------> [DONE] * VNFPackages -----------------------------------------------> [DONE] -- GitLab