From 134ff52d69c9e7141a70b4f2b7ccb34e0aca2649 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Tue, 25 Jun 2019 15:01:46 +0200 Subject: [PATCH 001/147] SOL003_4/SOL003_8: Common data types fixed according to SOL003 and SOL013 --- src/definitions/SOL002SOL003_def.yaml | 872 +++++++++++++------------- 1 file changed, 435 insertions(+), 437 deletions(-) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 81f18761..c1827f37 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -5,7 +5,6 @@ definitions: Link: description: > This type represents a link to a resource using an absolute URI. - It shall comply with the provisions defined in table 4.4.1.3-1. type: object required: - href @@ -13,14 +12,12 @@ definitions: href: description: > URI of another resource referenced from a resource. - Shall be an absolute URI (i.e. a UTI that contains {apiRoot}. + Shall be an absolute URI (i.e. a UTI that contains {apiRoot}). $ref: "#/definitions/Uri" NotificationLink: description: > - This type represents a link to a resource in a notification, - using an absolute or relative URI. It shall comply with the - provisions defined in table 4.4.1.3a-1. + This type represents a link to a resource in a notification, using an absolute or relative URI. type: object required: - href @@ -36,11 +33,61 @@ definitions: KeyValuePairs: description: > - This type represents a list of key-value pairs. The order of the pairs in the list is not significant. - In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions - defined in clause 4 of IETF RFC 7159. + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, + a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 + of IETF RFC 8259. In the following example, a list of key-value pairs with four keys ("aString", "aNumber", + "anArray" and "anObject") is provided to illustrate that the values associated with different keys can be of + different type. type: object + ApiVersionInformation: + description: > + This type represents API version information. + type: object + required: + - uriPrefix + - apiVersions + properties: + uriPrefix: + description: > + Specifies the URI prefix for the API, in the following + form {apiRoot}/{apiName}/{apiMajorVersion}/. + type: string + apiVersions: + description: > + Version(s) supported for the API signaled by the + uriPrefix attribute. + type: array + items: + type: object + required: + - version + properties: + version: + description: > + Identifies a supported version. The value of the + version attribute shall be a version identifier as + specified in clause 9.1 (SOL013). + type: string + isDeprecated: + description: > + If such information is available, this attribute indicates + whether use of the version signaled by the version + attribute is deprecated (true) or not (false). + + A deprecated version is still supported by the API producer but is recommended + not to be used any longer. + When a version is no longer supported, it does not appear in the response body. + type: boolean + retirementDate: + description: > + The date and time after which the API version will no + longer be supported. + This attribute may be included if the value of the + isDeprecated attribute is set to true and shall be + absent otherwise. + $ref: "#/definitions/DateTime" + VnfInstanceSubscriptionFilter: description: > This type represents subscription filter criteria to match VNF @@ -137,136 +184,200 @@ definitions: items: type: string - ApiVersionInformation: + VimConnectionInfo: description: > - This type represents API version information. It shall comply with the - provisions defined in table 4.4.1.13-1 (SOL003). + 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: - - uriPrefix - - apiVersions + - id + - vimType properties: - uriPrefix: + id: description: > - Specifies the URI prefix for the API, in the following - form {apiRoot}/{apiName}/{apiMajorVersion}/ + The identifier of the VIM Connection. This identifier is managed by + the NFVO. + $ref: "#/definitions/Identifier" + vimId: + description: > + The identifier of the VIM instance. This identifier is managed by + the NFVO. + Shall be present to address additional information about the VIM if + such information has been configured into the VNFM by means outside + the scope of the present document, and should be absent otherwise. + $ref: "#/definitions/Identifier" + vimType: + 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 - apiVersions: + interfaceInfo: description: > - Version(s) supported for the API signaled by the - uriPrefix attribute. - type: array - items: - type: object - required: - - version - properties: - version: - description: > - Identifies a supported version. The value of the - version attribute shall be a version identifier as - specified in clause 4.6.1. - type: string - isDeprecated: - description: > - If such information is available, this attribute - indicates whether use of the version signaled by the - version attribute is deprecated (true) or not (false). - A deprecated version is still supported by the API producer - but is recommended not to be used any longer. - When a version is no longer supported, it does not appear in - the response body. - type: boolean - retirementDate: - description: > - The date and time after which the API version will no - longer be supported. - This attribute may be included if the value of the - isDeprecated attribute is set to true and shall be - absent otherwise. - $ref: "#/definitions/DateTime" - - Identifier: - description: > - An identifier with the intention of being globally unique. - type: string - - IdentifierInVnfd: - description: > - An identifier that is unique within a VNF descriptor. - type: string - - IdentifierInVim: - description: > - An identifier maintained by the VIM or other resource provider. It is - expected to be unique within the VIM instance. - type: string - - IdentifierInVnf: - description: > - An identifier that is unique for the respective type within a VNF - instance, but may not be globally unique. - type: string - - IdentifierLocal: - 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 - - DateTime: - description: > - Date-time stamp. - Representation: String formatted according to IETF RFC 3339. - type: string - format: date-time - - Uri: - description: > - String formatted according to IETF RFC 3986. - type: string - - Boolean: - description: > - The Boolean is a data type having two values (true and false). - type: boolean - - MacAddress: - description: > - A MAC address. Representation: string that consists of groups of two hexadecimal digits, - separated by hyphens or colons. - type: string - format: MAC - - IpAddress: - description: > - An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal - integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that - consists of groups of zero to four hexadecimal digits, separated by colons. - type: string - format: IP + Information about the interface or interfaces to the VIM, if + applicable, such as the URI of an interface endpoint to + communicate with the VIM. The applicable keys are dependent on the + content of vimType. + Alternatively, such information may have been configured into the + VNFM and bound to the vimId. + $ref: "#/definitions/KeyValuePairs" + accessInfo: + description: > + Authentication credentials for accessing the VIM, and other + access-related information such as tenants or infrastructure + resource groups (see note). The applicable keys are dependent on the + content of vimType. + If the VimConnectionInfo structure is part of an HTTP response + payload body, sensitive attributes that are children of this attributes + (such as passwords) shall not be included. + If the VimConnectionInfo structure is part of an HTTP request payload + body, sensitive attributes that are children of this attribute (such + as passwords) shall be present if they have not been provisioned out + of band. + $ref: "#/definitions/KeyValuePairs" + extra: + description: > + VIM type specific additional information. The applicable structure, + and whether or not this attribute is available, is dependent on the + content of vimType. + $ref: "#/definitions/KeyValuePairs" - Version: + ResourceHandle: + required: + - vimConnectionId + - resourceId + type: object description: > - A version. - type: string + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. Information about the resource + is available from the VIM. + properties: + vimConnectionId: + description: > + Identifier of the VIM connection to manage the resource. This + attribute shall only be supported and present if VNF-related resource + management in direct mode is applicable. The applicable + "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the "vimConnectionInfo" + attribute of the "VnfInstance" structure. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifier of the entity responsible for the management of the + resource. This attribute shall only be supported and present when + VNF-related resource management in indirect mode is applicable. The + identification scheme is outside the scope of the present document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + Identifier of the resource in the scope of the VIM or the resource + provider. + $ref: "#/definitions/IdentifierInVim" + vimLevelResourceType: + description: > + The value set of the "vimLevelResourceType" attribute is within the scope + of the VIM or the resource provider and can be used as information that + complements the ResourceHandle. This value set is different from the value + set of the "type" attribute in the ResourceDefinition (refer to clause 9.5.3.2 in SOL003). + type: string - String: + VnfExtCpData: description: > - A string defined in IETF RFC 8259. - type: string + This type represents configuration information for external CPs created + from a CPD. + type: object + required: + - cpdId + properties: + cpdId: + description: > + The identifier of the CPD in the VNFD. + $ref: "#/definitions/IdentifierInVnfd" + cpConfig: + description: > + List of instance data that need to be configured on the CP instances + created from the respective CPD. + type: array + items: + $ref: "#/definitions/VnfExtCpConfig" - Number: + VnfExtCpConfig: description: > - A number defined in IETF RFC 8259. - type: number + This type represents an externally provided link port or network address + information per instance of an external connection point. In case a link + port is provided, the VNFM shall use that link port when connecting the + external CP to the external VL. In a link port is not provided, the VNFM + shall create a link port on the external VL, and use that link port to + connect the external CP to the external VL. + type: object + properties: + cpInstanceId: + description: > + Identifier of the external CP instance to which this set of + configuration parameters is requested to be applied. + Shall be present if this instance has already been created. + $ref: "#/definitions/IdentifierInVnf" + linkPortId: + description: > + Identifier of a pre-configured link port to which the external CP + will be associated. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + 1) The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + 2) At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + 3) If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + 4) If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + 5) If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + $ref: "#/definitions/Identifier" + cpProtocolData: + description: > + Parameters for configuring the network protocols on the link port + that connects the CP to a VL. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + 1) The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + 2) At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + 3) If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + 4) If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + 5) If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + type: array + items: + $ref: "#/definitions/CpProtocolData" -######################################################################################################################## -# TO CHECK IF INCLUDE THESE DATA TYPES IN ANOTHER DEF FILES CpProtocolData: description: > - This type represents network protocol data. + This type represents network protocol data. type: object required: - layerProtocol @@ -288,26 +399,128 @@ definitions: "IP_OVER_ETHERNET", and shall be absent otherwise. $ref: "#/definitions/IpOverEthernetAddressData" + IpOverEthernetAddressData: + description: > + This type represents network address data for IP over Ethernet. + type: object + properties: + macAddress: + description: > + MAC address. If this attribute is not present, it shall be chosen by + the VIM. + At least one of "macAddress" or "ipAddresses" shall be present. + $ref: "#/definitions/MacAddress" + ipAddresses: + description: > + List of IP addresses to assign to the CP instance. Each entry + represents IP address data for fixed or dynamic IP address + assignment per subnet. + If this attribute is not present, no IP address shall be assigned. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + fixedAddresses: + description: > + Fixed addresses to assign (from the subnet defined by + "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: array + items: + $ref: "#/definitions/IpAddress" + numDynamicAddresses: + description: > + Number of dynamic addresses to assign (from the subnet defined + by "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: integer + addressRange: + description: > + An IP address range to be used, e.g. in case of egress + connections. + In case this attribute is present, IP addresses from the range + will be used. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in the + VIM. + In case this attribute is present, IP addresses from that + subnet will be assigned; otherwise, IP addresses not bound to + a subnet will be assigned. + $ref: "#/definitions/IdentifierInVim" - - ExtLinkPortData: + ExtVirtualLinkData: description: > - This type represents an externally provided link port to be used to - connect an external connection point to an external VL. + This type represents an external VL. type: object required: - id - - resourceHandle + - resourceId + - extCps properties: id: description: > - Identifier of this link port as provided by the entity that has - created the link port. + The identifier of the external VL instance. The identifier is + assigned by the NFV-MANO entity that manages this VL instance. $ref: "#/definitions/Identifier" - resourceHandle: + vimConnectionId: description: > - Reference to the virtualised resource realizing this link port. - $ref: "#/definitions/ResourceHandle" + Identifier of the VIM connection to manage this resource. This + attribute shall only be supported and present if VNF-related + resource management in direct mode is applicable. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management of this + resource. This attribute shall only be supported and present + if VNF-related resource management in indirect mode is applicable. + The identification scheme is outside the scope of the present + document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + The identifier of the resource in the scope of the VIM or the + resource provider. + $ref: "#/definitions/IdentifierInVim" + extCps: + description: > + External CPs of the VNF to be connected to this external VL. + type: array + items: + $ref: "#/definitions/VnfExtCpData" + extLinkPorts: + description: > + Externally provided link ports to be used to connect external + connection points to this external VL. If this attribute is not + present, the VNFM shall create the link ports on the external VL. + type: array + items: + $ref: "#/definitions/ExtLinkPortData" ExtManagedVirtualLinkData: type: object @@ -345,53 +558,103 @@ definitions: resource provider. $ref: "#/definitions/IdentifierInVim" - ExtVirtualLinkData: + Identifier: description: > - This type represents an external VL. + An identifier with the intention of being globally unique. + type: string + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: date-time + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + Boolean: + description: > + The Boolean is a data type having two values (true and false). + type: boolean + + MacAddress: + description: > + A MAC address. Representation: string that consists of groups of two hexadecimal digits, + separated by hyphens or colons. + type: string + format: MAC + + IpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, separated by colons. + type: string + format: IP + + Version: + description: > + A version. + type: string + + String: + description: > + A string defined in IETF RFC 8259. + type: string + + Number: + description: > + A number defined in IETF RFC 8259. + type: number + + IdentifierInVnfd: + description: > + An identifier that is unique within a VNF descriptor. + type: string + + IdentifierInVim: + description: > + An identifier maintained by the VIM or other resource provider. It is + expected to be unique within the VIM instance. + type: string + + IdentifierInVnf: + description: > + An identifier that is unique for the respective type within a VNF + instance, but may not be globally unique. + type: string + + IdentifierLocal: + 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 + +######################################################################################################################## +# TO CHECK IF INCLUDE THESE DATA TYPES IN ANOTHER DEF FILES + + ExtLinkPortData: + description: > + This type represents an externally provided link port to be used to + connect an external connection point to an external VL. type: object required: - id - - resourceId - - extCps - properties: - id: - description: > - The identifier of the external VL instance. The identifier is - assigned by the NFV-MANO entity that manages this VL instance. - $ref: "#/definitions/Identifier" - vimConnectionId: - description: > - Identifier of the VIM connection to manage this resource. This - attribute shall only be supported and present if VNF-related - resource management in direct mode is applicable. - $ref: "#/definitions/Identifier" - resourceProviderId: + - resourceHandle + properties: + id: description: > - Identifies the entity responsible for the management of this - resource. This attribute shall only be supported and present - if VNF-related resource management in indirect mode is applicable. - The identification scheme is outside the scope of the present - document. + Identifier of this link port as provided by the entity that has + created the link port. $ref: "#/definitions/Identifier" - resourceId: - description: > - The identifier of the resource in the scope of the VIM or the - resource provider. - $ref: "#/definitions/IdentifierInVim" - extCps: - description: > - External CPs of the VNF to be connected to this external VL. - type: array - items: - $ref: "#/definitions/VnfExtCpData" - extLinkPorts: + resourceHandle: 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: - $ref: "#/definitions/ExtLinkPortData" + Reference to the virtualised resource realizing this link port. + $ref: "#/definitions/ResourceHandle" GrantedLcmOperationType: description: > @@ -418,81 +681,6 @@ definitions: - OPERATE - CHANGE_EXT_CONN - IpOverEthernetAddressData: - description: > - This type represents network address data for IP over Ethernet. - type: object - properties: - macAddress: - description: > - MAC address. If this attribute is not present, it shall be chosen by - the VIM. - At least one of "macAddress" or "ipAddresses" shall be present. - $ref: "#/definitions/MacAddress" - ipAddresses: - description: > - List of IP addresses to assign to the CP instance. Each entry - represents IP address data for fixed or dynamic IP address - assignment per subnet. - If this attribute is not present, no IP address shall be assigned. - type: array - items: - type: object - required: - - type - properties: - type: - description: > - The type of the IP addresses. - Permitted values: IPV4, IPV6. - type: string - enum: - - IPV4 - - IPV6 - fixedAddresses: - description: > - Fixed addresses to assign (from the subnet defined by - "subnetId" if provided). - Exactly one of "fixedAddresses", "numDynamicAddresses" or - "ipAddressRange" shall be present. - type: array - items: - $ref: "#/definitions/IpAddress" - numDynamicAddresses: - description: > - Number of dynamic addresses to assign (from the subnet defined - by "subnetId" if provided). - Exactly one of "fixedAddresses", "numDynamicAddresses" or - "ipAddressRange" shall be present. - type: integer - addressRange: - description: > - An IP address range to be used, e.g. in case of egress - connections. - In case this attribute is present, IP addresses from the range - will be used. - type: object - required: - - minAddress - - maxAddress - properties: - minAddress: - description: > - Lowest IP address belonging to the range. - $ref: "#/definitions/IpAddress" - maxAddress: - description: > - Highest IP address belonging to the range. - $ref: "#/definitions/IpAddress" - subnetId: - description: > - Subnet defined by the identifier of the subnet resource in the - VIM. - In case this attribute is present, IP addresses from that - subnet will be assigned; otherwise, IP addresses not bound to - a subnet will be assigned. - $ref: "#/definitions/IdentifierInVim" - LcmOperationType: description: > Value | Description @@ -577,44 +765,6 @@ definitions: format: URI #TODO: How to express "any additional attributes"? - ResourceHandle: - required: - - vimConnectionId - - resourceId - type: object - description: > - This type represents the information that allows addressing a virtualised - resource that is used by a VNF instance. Information about the resource - is available from the VIM. - properties: - vimConnectionId: - description: > - Identifier of the VIM connection to manage the resource. This - attribute shall only be supported and present if VNF-related resource - management in direct mode is applicable. The applicable - "VimConnectionInfo" structure, which is referenced by - vimConnectionId, can be obtained from the "vimConnectionInfo" - attribute of the "VnfInstance" structure. - $ref: "#/definitions/Identifier" - resourceProviderId: - description: > - Identifier of the entity responsible for the management of the - resource. This attribute shall only be supported and present when - VNF-related resource management in indirect mode is applicable. The - identification scheme is outside the scope of the present document. - $ref: "#/definitions/Identifier" - resourceId: - description: > - Identifier of the resource in the scope of the VIM or the resource - provider. - $ref: "#/definitions/IdentifierInVim" - vimLevelResourceType: - description: > - Type of the resource in the scope of the VIM or the resource - provider. - type: string - #TODO: Note of Table 4.4.1.7-1 - SubscriptionAuthentication: type: object required: @@ -696,158 +846,6 @@ definitions: Shall be present if it has not been provisioned out of band. $ref: "#/definitions/Uri" - VimConnectionInfo: - 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: > - The identifier of the VIM Connection. This identifier is managed by - the NFVO. - $ref: "#/definitions/Identifier" - vimId: - description: > - The identifier of the VIM instance. This identifier is managed by - the NFVO. - Shall be present to address additional information about the VIM if - such information has been configured into the VNFM by means outside - the scope of the present document, and should be absent otherwise. - $ref: "#/definitions/Identifier" - vimType: - 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: > - Information about the interface or interfaces to the VIM, if - applicable, such as the URI of an interface endpoint to - communicate with the VIM. The applicable keys are dependent on the - content of vimType. - Alternatively, such information may have been configured into the - VNFM and bound to the vimId. - $ref: "#/definitions/KeyValuePairs" - accessInfo: - description: > - Authentication credentials for accessing the VIM, and other - access-related information such as tenants or infrastructure - resource groups (see note). The applicable keys are dependent on the - content of vimType. - If the VimConnectionInfo structure is part of an HTTP response - payload body, sensitive attributes that are children of this attributes - (such as passwords) shall not be included. - If the VimConnectionInfo structure is part of an HTTP request payload - body, sensitive attributes that are children of this attribute (such - as passwords) shall be present if they have not been provisioned out - of band. - $ref: "#/definitions/KeyValuePairs" - extra: - description: > - VIM type specific additional information. The applicable structure, - and whether or not this attribute is available, is dependent on the - content of vimType. - $ref: "#/definitions/KeyValuePairs" - - VnfExtCpConfig: - description: > - This type represents an externally provided link port or network address - information per instance of an external connection point. In case a link - port is provided, the VNFM shall use that link port when connecting the - external CP to the external VL. In a link port is not provided, the VNFM - shall create a link port on the external VL, and use that link port to - connect the external CP to the external VL. - type: object - properties: - cpInstanceId: - description: > - Identifier of the external CP instance to which this set of - configuration parameters is requested to be applied. - Shall be present if this instance has already been created. - $ref: "#/definitions/IdentifierInVnf" - linkPortId: - description: > - Identifier of a pre-configured link port to which the external CP - will be associated. - The following conditions apply to the attributes "linkPortId" and - "cpProtocolData": - * The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - * At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external - CP instance. - * If the "linkPortId" attribute is absent, the VNFM shall create a - link port. - * If the "cpProtocolData" attribute is absent, the "linkPortId" - attribute shall be provided referencing a pre-created link port, - and the VNFM can use means outside the scope of the present - document to obtain the pre-configured address information for the - connection point from the resource representing the link port. - * If both "cpProtocolData" and "linkportId" are provided, the API - consumer shall ensure that the cpProtocolData can be used with the - pre-created link port referenced by "linkPortId". - $ref: "#/definitions/Identifier" - cpProtocolData: - description: > - Parameters for configuring the network protocols on the link port - that connects the CP to a VL. - The following conditions apply to the attributes "linkPortId" and - "cpProtocolData": - * The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - * At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external - CP instance. - * If the "linkPortId" attribute is absent, the VNFM shall create a - link port. - * If the "cpProtocolData" attribute is absent, the "linkPortId" - attribute shall be provided referencing a pre-created link port, - and the VNFM can use means outside the scope of the present - document to obtain the pre-configured address information for the - connection point from the resource representing the link port. - * If both "cpProtocolData" and "linkportId" are provided, the API - consumer shall ensure that the cpProtocolData can be used with the - pre-created link port referenced by "linkPortId". - type: array - items: - $ref: "#/definitions/CpProtocolData" - - VnfExtCpData: - description: > - This type represents configuration information for external CPs created - from a CPD. - type: object - required: - - cpdId - properties: - cpdId: - description: > - The identifier of the CPD in the VNFD. - $ref: "#/definitions/IdentifierInVnfd" - cpConfig: - description: > - List of instance data that need to be configured on the CP instances - created from the respective CPD. - type: array - items: - $ref: "#/definitions/VnfExtCpConfig" - AffectedVnfc: description: > This type provides information about added, deleted, modified and -- GitLab From 94e8bea9e3307b900645e1bc19b47bf20bace961 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Tue, 25 Jun 2019 15:12:14 +0200 Subject: [PATCH 002/147] SOL003_11: VNF LCM interface version changed to 1.3.0 --- src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 2 +- .../VNFLifecycleManagementNotification.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 9655467b..3a47276e 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Lifecycle Management interface description: > SOL003 - VNF Lifecycle Management interface definition diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 389f2b3b..6b92041e 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Lifecycle Management Notification interface description: > SOL003 - VNF Lifecycle Management Notification interface -- GitLab From a9e90dfde722af46996f1b23eafc61240ff60e69 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Tue, 25 Jun 2019 16:01:34 +0200 Subject: [PATCH 003/147] SOL003_26/SOL003_27: Responses' codes updated according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 37 +++++++++---------- .../VNFLifecycleManagementNotification.yaml | 4 +- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 3a47276e..0c0eecb1 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnflcm/v1" @@ -51,11 +51,8 @@ paths: '/vnf_instances': #SOL003 location: 5.4.2 post: - #TODO: Add headers defined in 4.3.4.2 description: > - Create VNF Identifier - - + Create VNF Identifier. The POST method creates a new VNF instance resource. parameters: - name: createVnfRequest @@ -93,7 +90,10 @@ paths: type: string responses: 201: - description: A VNF Instance identifier was created successfully + description: > + 201 CREATED + + A VNF Instance identifier was created successfully. headers: Content-Type: description: The MIME type of the body of the response. @@ -101,7 +101,7 @@ paths: maximum: 1 minimum: 1 Location: - description: The resource URI of the created VNF instance + description: The resource URI of the created VNF instance. type: string format: url WWW-Authenticate: @@ -129,24 +129,20 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: description: > - Query VNF - - + Query VNF. The GET method queries information about multiple VNF instances. parameters: - name: Accept @@ -227,7 +223,7 @@ paths: responses: 200: description: > - OK + 200 OK Information about zero or more VNF instances was queried successfully. The response body shall contain in an array @@ -276,17 +272,18 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF instance # ############################################################################### diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 6b92041e..e5026405 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" -- GitLab From 36dda96802e5ed9a5841d5b20a88d24d0fee35b9 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Tue, 25 Jun 2019 17:47:22 +0200 Subject: [PATCH 004/147] SOL003_31/SOL003_33/SOL003_34: Responses' codes updated according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 64 ++++++++++++++----- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 0c0eecb1..0f131cb8 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -283,7 +283,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - + ############################################################################### # Individual VNF instance # ############################################################################### @@ -338,7 +338,7 @@ paths: responses: 200: description: > - OK + 200 OK Information about zero or more VNF instances was queried successfully. The response body shall contain @@ -374,23 +374,21 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" patch: #SOL003 location: 5.4.3.3.4 description: > - Modify VNF Information - - + Modify VNF Information. This method modifies an individual VNF instance resource. Changes to the VNF configurable properties are applied to the configuration in the VNF instance, and are reflected in the representation of this @@ -428,7 +426,36 @@ paths: type: string responses: 202: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location-empty" + description: > + 202 ACCEPTED + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "VNF LCM operation occurrence" resource corresponding to the + operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -442,7 +469,11 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the "Individual VNF instance" resource. + Typically, this is due to the fact that another LCM operation is ongoing. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 500: @@ -452,9 +483,7 @@ paths: delete: #SOL003 location: 5.4.3.3.5 description: > - Delete VNF Identifier - - + Delete VNF Identifier. This method deletes an individual VNF instance resource. parameters: - name: Authorization @@ -473,7 +502,7 @@ paths: responses: 204: description: > - No Content + 204 NO CONTENT The VNF instance resource and the associated VNF identifier were deleted successfully. @@ -506,13 +535,18 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Instantiate VNF task # ############################################################################### -- GitLab From 5f42b5a5bcb77aa70dc61940bbf21ccab90363fb Mon Sep 17 00:00:00 2001 From: moscatelli Date: Tue, 25 Jun 2019 17:59:33 +0200 Subject: [PATCH 005/147] SOL003_36: Responses' codes updated according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 0f131cb8..ddd7b608 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -546,7 +546,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - + ############################################################################### # Instantiate VNF task # ############################################################################### @@ -566,9 +566,7 @@ paths: post: #SOL003 location: 5.4.4.3.1 description: > - Instantiate VNF - - + Instantiate VNF. The POST method instantiates a VNF instance. parameters: - name: InstantiateVnfRequest @@ -607,7 +605,7 @@ paths: responses: 202: description: > - Accepted + 202 ACCEPTED The request was accepted for processing, but the processing has not been completed. @@ -620,6 +618,8 @@ paths: description: The resource URI of the created VNF instance type: string format: url + maximum: 1 + minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided @@ -647,13 +647,22 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state, + or that a required child attribute of the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Scale VNF task # ############################################################################### -- GitLab From e59ff092d4c9ea3304d338742dcf6454b0e4e668 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Tue, 25 Jun 2019 18:08:54 +0200 Subject: [PATCH 006/147] SOL003_39: Responses' codes updated according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 71 +++++++++++++++---- 1 file changed, 56 insertions(+), 15 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index ddd7b608..03dc62b6 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -465,7 +465,7 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: @@ -531,7 +531,7 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: @@ -607,8 +607,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has - not been completed. + Shall be returned when the request has been accepted for processing The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation @@ -643,7 +642,7 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: @@ -662,7 +661,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - + ############################################################################### # Scale VNF task # ############################################################################### @@ -682,9 +681,7 @@ paths: post: #SOL003 location: 5.4.5.3.1 description: > - Scale VNF - - + Scale VNF. The POST method requests to scale a VNF instance resource incrementally. parameters: @@ -723,7 +720,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -731,17 +756,35 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 4.3.5.4,6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if + the task is not supported for the VNF instance represented by the parent resource, which means that the + task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the "Individual VNF instance" resource is in + NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing, or that + a required child attribute of the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Scale VNF to Level task # ############################################################################### @@ -761,9 +804,7 @@ paths: post: #SOL003 location: 5.4.6.3.1 description: > - Scale VNF to Level - - + Scale VNF to Level. The POST method requests to scale a VNF instance resource to a target level. parameters: -- GitLab From 82b44aceb969a593cbdde18539bdf970bbf60dbe Mon Sep 17 00:00:00 2001 From: moscatelli Date: Tue, 25 Jun 2019 18:21:58 +0200 Subject: [PATCH 007/147] SOL003_43: Responses' codes updated according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 03dc62b6..19dd556e 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -843,7 +843,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -851,17 +879,35 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 4.3.5.4,6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task + is not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Change VNF Flavour task # ############################################################################### -- GitLab From 400f77a9b2d8a17c07077d85b2485acb621ce7e3 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 10:38:23 +0200 Subject: [PATCH 008/147] SOL003_45: Responses' codes fixed according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 56 ++++++++++++++++--- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 19dd556e..e0064a7e 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -907,7 +907,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - + ############################################################################### # Change VNF Flavour task # ############################################################################### @@ -927,9 +927,7 @@ paths: required: true post: description: > - Change VNF Flavour - - + Change VNF Flavour. The POST method changes the deployment flavour of a VNF instance. parameters: - name: ChangeVnfFlavourRequest @@ -967,7 +965,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -975,17 +1001,33 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 4.3.5.4,6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task + is not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Terminate VNF task # ############################################################################### -- GitLab From 23d816323b90235784562425ea8f53bd6f12cf62 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 12:27:26 +0200 Subject: [PATCH 009/147] SOL003_48/SOL003_51/SOL003_54: Responses' codes fixed according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 170 +++++++++++++++--- 1 file changed, 148 insertions(+), 22 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index e0064a7e..a1d961b5 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -759,7 +759,7 @@ paths: description: > Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. - The general cause for this error and its handling is specified in clause 4.3.5.4,6.4 of ETSI GS NFV-SOL 013, + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the response body. Specifically in case of this task resource, the response code 404 shall also returned if the task is not supported for the VNF instance represented by the parent resource, which means that the @@ -882,7 +882,7 @@ paths: description: > Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. - The general cause for this error and its handling is specified in clause 4.3.5.4,6.4 of ETSI GS NFV-SOL 013, + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the response body. Specifically in case of this task resource, the response code 404 shall also returned if the task is not supported for the VNF instance represented by the parent resource, which means that the task resource @@ -1004,7 +1004,7 @@ paths: description: > Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. - The general cause for this error and its handling is specified in clause 4.3.5.4,6.4 of ETSI GS NFV-SOL 013, + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the response body. Specifically in case of this task resource, the response code 404 shall also returned if the task is not supported for the VNF instance represented by the parent resource, which means that the task resource @@ -1027,7 +1027,9 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Terminate VNF task # ############################################################################### @@ -1046,9 +1048,7 @@ paths: required: true post: description: > - Terminate VNF - - + Terminate VNF. The POST method terminates a VNF instance. parameters: - name: TerminateVnfRequest @@ -1086,7 +1086,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1096,15 +1124,25 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Heal VNF task # ############################################################################### @@ -1123,9 +1161,7 @@ paths: required: true post: description: > - Heal VNF - - + Heal VNF. The POST method requests to heal a VNF instance resource. parameters: - name: HealVnfRequest @@ -1163,7 +1199,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1171,17 +1235,35 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task is + not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Operate VNF task # ############################################################################### @@ -1200,9 +1282,7 @@ paths: required: true post: description: > - Operate VNF - - + Operate VNF. The POST method changes the operational state of a VNF instance resource. parameters: - name: OperateVnfRequest @@ -1240,7 +1320,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1248,17 +1356,35 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task is + not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Change external VNF connectivity task # ############################################################################### -- GitLab From 5b535633f36209c19f5a03f3f0a6dfc9a51279b3 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 15:00:48 +0200 Subject: [PATCH 010/147] SOL003_47: Responses' codes fixed according to SOL003 and SOL013 --- .../VNFLifecycleManagement.yaml | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index a1d961b5..009ffc7b 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1404,9 +1404,7 @@ paths: required: true post: description: > - Change External VNF Connectivity - - + Change External VNF Connectivity. The POST method changes the external connectivity of a VNF instance. parameters: - name: ChangeExtVnfConnectivityRequest @@ -1445,7 +1443,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1455,15 +1481,24 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that another lifecycle management operation is ongoing, + or that a required child attribute of the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNF LCM operation occurrences # ############################################################################### -- GitLab From c4705b0ffe63ee0086d306b802cedfd80f2d60d0 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 15:42:02 +0200 Subject: [PATCH 011/147] SOL003_61: 202 response description fixes --- .../VNFLifecycleManagement.yaml | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 009ffc7b..f8acfcdb 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1506,9 +1506,7 @@ paths: #SOL003 location: 5.4.12 get: description: > - Get Operation Status - - + Get Operation Status. The client can use this method to query status information about multiple VNF lifecycle management operation occurrences. parameters: @@ -1592,14 +1590,17 @@ paths: description: > 200 OK - Status information for zero or more VNF lifecycle management - operation occurrences was queried successfully. The response body - shall contain in an array the status information about zero or - more VNF lifecycle operation occurrences. - If the VNFM supports alternative 2 (paging) according to - clause 4.7.2.1 for this resource, inclusion of the Link - HTTP header in this response shall follow the provisions - in clause 4.7.2.3. + Shall be returned when status information for zero or more VNF lifecycle management + operation occurrences has been queried successfully. + The response body shall contain in an array the status information about zero or more + VNF lifecycle operation occurrences, as defined in clause 5.5.2.13. + If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), + "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in the request, + the data in the response body shall have been transformed according to the rules specified + in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. @@ -1637,15 +1638,16 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF LCM operation occurrence # ############################################################################### @@ -1665,9 +1667,7 @@ paths: type: string get: description: > - Get Operation Status - - + Get Operation Status. The client can use this method to retrieve status information about a VNF lifecycle management operation occurrence by reading an individual "VNF LCM operation occurrence" resource. -- GitLab From 8911ef518a09b26e0cd65a1eeee63b12c0a005a4 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 16:08:34 +0200 Subject: [PATCH 012/147] SOL003_66: 202 response description fixed --- .../VNFLifecycleManagement.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index f8acfcdb..832bc40b 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1697,10 +1697,9 @@ paths: description: > 200 OK - Information about an individual VNF instance was queried - successfully. The response body shall contain status - information about a VNF lifecycle management operation - occurrence. + Shall be returned when information about a VNF LCM operation occurrence washas been read successfully. + The response body shall contain status information about a VNF lifecycle management operation occurrence + (see clause 5.5.2.13). headers: Content-Type: description: The MIME type of the body of the response. @@ -1732,15 +1731,16 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Retry operation task # ############################################################################### -- GitLab From 367724c5eac92e2390019945dfd4449d642f375f Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 16:30:33 +0200 Subject: [PATCH 013/147] SOL003_70: responses description fixed --- .../VNFLifecycleManagement.yaml | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 832bc40b..8daa81f3 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1740,7 +1740,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - + ############################################################################### # Retry operation task # ############################################################################### @@ -1782,7 +1782,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + Shall be returned when the request has been accepted for processing. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -1805,17 +1805,33 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also be returned if the task + is not supported for the VNF LCM operation occurrence represented by the parent resource, + which means that the task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the VNF LCM operation occurrence. + Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, + or another error handling action is starting, such as rollback or fail. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Rollback operation task # ############################################################################### -- GitLab From ce879fd0424ffbabc73e5b5cc70f0297080db791 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 16:40:35 +0200 Subject: [PATCH 014/147] SOL003_74: responses description fixed --- .../VNFLifecycleManagement.yaml | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 8daa81f3..9a79c654 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1873,7 +1873,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + Shall be returned when the request has been accepted for processing. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -1896,17 +1896,33 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also be returned if the task + is not supported for the VNF LCM operation occurrence represented by the parent resource, + which means that the task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the VNF LCM operation occurrence. + Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, + or another error handling action is starting, such as rollback or fail. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Fail operation task # ############################################################################### -- GitLab From 1f3df4c0b05971a6c073eebe423fa911228057ae Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 16:54:48 +0200 Subject: [PATCH 015/147] SOL003_78: responses description fixed --- .../VNFLifecycleManagement.yaml | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 9a79c654..a694f929 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1971,9 +1971,9 @@ paths: description: > 200 OK - The state of the VNF lifecycle management operation occurrence was - changed successfully. The response shall include a representation - of the VNF lifecycle operation occurrence resource. + Shall be returned when the state of the VNF lifecycle management operation occurrence + has been changed successfully. + The response shall include a representation of the "Individual VNF lifecycle operation occurrence" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -2003,17 +2003,33 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + Shall be returned upon the following error: The API producer did not find a current representation + for the target resource or is not willing to disclose that one exists. + The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task + is not supported for the VNF LCM operation occurrence represented by the parent resource, which means + that the task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict + with the state of the VNF LCM operation occurrence. + Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, + or another error handling action is starting, such as retry or rollback. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Cancel operation task # ############################################################################### -- GitLab From 2a40064dc11c1f50ce3900bc3aea16bddd0398d3 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 17:03:36 +0200 Subject: [PATCH 016/147] SOL003_82: responses description fixed --- .../VNFLifecycleManagement.yaml | 37 +++++-------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index a694f929..c4150b4a 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2072,7 +2072,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + Shall be returned when the request has been accepted for processing. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -2097,40 +2097,23 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > - Conflict - - The operation cannot be executed currently, due to a conflict with - the state of the VNF LCM operation occurrence resource. - Typically, this is due to the fact that the operation occurrence - is not in STARTING, PROCESSING or ROLLING_BACK state. - The response body shall contain a ProblemDetails structure, in - which the "detail" attribute shall convey more information about - the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the VNF LCM operation occurrence. + Typically, this is due to the fact that the operation occurrence is not in STARTING, + PROCESSING or ROLLING_BACK state. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### -- GitLab From 906d3449ea469601a594938fd291b5e20aed451b Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 17:17:08 +0200 Subject: [PATCH 017/147] SOL003_86/SOL003_87: responses description fixed --- .../VNFLifecycleManagement.yaml | 102 ++++++------------ 1 file changed, 30 insertions(+), 72 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index c4150b4a..c923ba3b 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2121,9 +2121,7 @@ paths: #SOL003 location: 5.4.18 post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. Creation of two subscription resources with the same callbackURI and the same filter can result in performance degradation and will provide @@ -2175,10 +2173,10 @@ paths: description: > 201 CREATED - The subscription was created successfully. The response body shall - contain a representation of the created subscription resource. - The HTTP response shall include a "Location" HTTP header that - points to the created subscription resource. + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created "Individual subscription" resource. + The HTTP response shall include a "Location" HTTP header that points to the created + "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -2207,33 +2205,14 @@ paths: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 303: description: > - See Other + 303 SEE OTHER - A subscription with the same callbackURI and the same filter already - exists and the policy of the VNFM is to not create redundant - subscriptions. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the existing subscription resource. + Shall be returned if a subscription with the same callbackURI and the same filter already exists + and the policy of the VNFM is to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing + "Individual subscription" resource. The response body shall be empty. - 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 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -2241,7 +2220,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -2250,11 +2229,11 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations. @@ -2303,15 +2282,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. The response - body shall contain the in an array representations of all active - subscriptions of the functional block that invokes the method, - i.e. zero or more representations of lifecycle change notification - subscriptions as defined in clause 5.5.2.16. - If the VNFM supports alternative 2 (paging) according to - clause 4.7.2.1 for this resource, inclusion of the Link - HTTP header in this response shall follow the provisions - in clause 4.7.2.3. + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active subscriptions of + the functional block that invokes the method, i.e. zero or more representations of lifecycle change + notification subscriptions as defined in clause 5.5.2.16. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.7.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 4.7.2.3.5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. @@ -2341,29 +2320,7 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 400: - description: > - Bad Request - - Invalid attribute-based filtering parameters. - The response body shall contain a ProblemDetails structure, in - which the "detail" attribute should convey more information about - the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: @@ -2371,13 +2328,16 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -2396,9 +2356,7 @@ paths: required: true get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method retrieves information about a subscription by reading an individual subscription resource. parameters: -- GitLab From a84eab394cd2e42adcf74ef2e19dbee4dad6b26b Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 17:23:49 +0200 Subject: [PATCH 018/147] SOL003_91/SOL003_93: responses description fixed --- .../VNFLifecycleManagement.yaml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index c923ba3b..1a000d5e 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2385,9 +2385,8 @@ paths: description: > 200 OK - The operation has completed successfully. - The response body shall contain a representation of the - subscription resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -2419,18 +2418,18 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" delete: description: > - Terminate Subscription - - + Terminate Subscription. The DELETE method terminates an individual subscription. parameters: - name: Authorization @@ -2451,7 +2450,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -2477,10 +2476,12 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file -- GitLab From cbb9cf54325b94605bc17374b3bfaec0de5db5e7 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 26 Jun 2019 17:36:33 +0200 Subject: [PATCH 019/147] SOL003_94/SOL003_95: responses description fixed --- .../VNFLifecycleManagementNotification.yaml | 196 ++++++++++++++++-- 1 file changed, 173 insertions(+), 23 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index e5026405..2b9f22bb 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -45,13 +45,11 @@ paths: '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification': post: description: > - Notify - - + Notify. The POST method delivers a notification from the server to the client. parameters: - name: VnfLcmOperationOccurrenceNotification - description: A notification about on-boarding of a VNF package. + description: A notification about lifecycle changes triggered by a VNF LCM operation occurrence.. in: body required: true schema: @@ -81,7 +79,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -103,8 +101,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: @@ -113,21 +109,73 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + get: + description: > + The GET method allows the server to test the notification endpoint + that is provided by the client, e.g. during subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 204: + description: > + 204 NO CONTENT + + The notification endpoint was tested successfully. + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint VnfIdentifierCreationNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification': post: description: > - Notify - - + Notify. The POST method delivers a notification from the server to the client. parameters: - name: VnfIdentifierCreationNotification description: > - A notification about the creation of a VNF identifier and the - related VNF instance resource. + A notification about the creation of a VNF identifier and the related "Individual VNF instance" resource. in: body required: true schema: @@ -157,7 +205,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -179,8 +227,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: @@ -189,21 +235,73 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + get: + description: > + The GET method allows the server to test the notification endpoint + that is provided by the client, e.g. during subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 204: + description: > + 204 NO CONTENT + + The notification endpoint was tested successfully. + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint VnfIdentifierDeletionNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification': post: description: > - Notify - - + Notify. The POST method delivers a notification from the server to the client. parameters: - name: VnfIdentifierDeletionNotification description: > - A notification about the deletion of a VNF identifier and the - related VNF instance resource. + A notification about the deletion of a VNF identifier and the related "Individual VNF instance" resource. in: body required: true schema: @@ -233,7 +331,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -255,8 +353,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: @@ -265,3 +361,57 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + get: + description: > + The GET method allows the server to test the notification endpoint + that is provided by the client, e.g. during subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 204: + description: > + 204 NO CONTENT + + The notification endpoint was tested successfully. + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file -- GitLab From a39ca7e043dcdc9d7d35a6ef70d80d5679f41f71 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 09:58:18 +0200 Subject: [PATCH 020/147] SOL003_97: VnfInstance datatype updated --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 86 ++++++++++++------- 1 file changed, 54 insertions(+), 32 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 51f26768..85ff0821 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -1430,7 +1430,6 @@ definitions: - vnfProductName - vnfSoftwareVersion - vnfdVersion - - vnfPkgId - instantiationState properties: id: @@ -1467,20 +1466,6 @@ definitions: description: > Identifies the version of the VNFD. The value is copied from the VNFD. $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfPkgId: - description: > - Identifier of information held by the NFVO about the specific VNF - package on which the VNF is based. This identifier was allocated by - the NFVO. This attribute can be modified with the PATCH method. - Modifying the value of this attribute shall not be performed when - conflicts exist between the previous and the newly referred VNF - package, i.e. when the new VNFD is not changed with respect to the - previous VNFD apart from referencing to other VNF software images. - In order to avoid misalignment of the VnfInstance with the current - VNF's on-boarded VNF Package, the values of attributes in the - VnfInstance that have corresponding attributes in the VNFD shall be - kept in sync with the values in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > Current values of the configurable properties of the VNF instance. @@ -1544,8 +1529,10 @@ definitions: $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" scaleStatus: description: > - Scale status of the VNF, one entry per aspect. Represents for every - scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + Scale status of the VNF, one entry per aspect. + Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + This attribute shall be present if the VNF supports scaling. + See clause B.2 for an explanation of VNF scaling. type: array items: $ref: "#/definitions/ScaleInfo" @@ -1604,16 +1591,51 @@ definitions: $ref: "#/definitions/VirtualStorageResourceInfo" metadata: description: > - Additional VNF-specific metadata describing the VNF instance. - Metadata that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. + Additional VNF-specific attributes that provide metadata describing the VNF instance. + These attributes represent values that are stored persistently in the VnfInstance structure + for consumption by functional blocks that invoke the VNF lifecycle management interface. + They are not consumed by the VNFM, or the lifecycle management scripts. + Modifying the values of these attributes has no effect on the VNF instance, it only affects + the information represented in the VnfInstance structure. + Metadata that are writeable are the VNF provider foresees are expected to be declared in the VNFD. + The declaration of metadata in the VNFD can optionally contain the specification of initial values. + The VNFM shall accept requests to write metadata that are not declared in the VNFD. + These attributes can be initialized with default values from the VNFD or with values + passed in the CreateVnfRequest structure (see clause 5.5.2.3). + This attributeThese attributes can be created, modified or removed with the PATCH method. + + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with + a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" + that have no declared initial value shall not be created, in order to be consistent with the semantics + of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - VNF-specific attributes that affect the lifecycle management of this - VNF instance by the VNFM, or the lifecycle management scripts. - Extensions that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. + Additional VNF-specific attributes that affect the lifecycle management of this VNF instance. + These attributes represent values that are stored persistently in the VnfInstance structure + for consumption by the VNFM or the lifecycle management scripts during the execution of + VNF lifecycle management operations. + All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension + in the VNFD contains information on whether its presence is optional or required, and optionally + can specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension + attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined + in clause 6.4 of ETSI GS NFV-SOL 013. + Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified + attribute values can be considered during subsequent VNF lifecycle management operations, which means that + the modified values can indirectly affect the configuration of the VNF instance. + These attributes can be initialized with default values from the VNFD or with values passed in the + InstantiateVnfRequest structure (see clause 5.5.2.4). + Attributes initialized with default values from the VNFD can be updated with values passed in the + InstantiateVnfRequest structure. + Further, these attributes can be created, modified or deleted with the PATCH method. + + Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with + a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" + that have no declared initial value shall not be created, in order to be consistent with the semantics + of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > @@ -1630,54 +1652,54 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Link" instantiate: description: > - Link to the "instantiate" task resource, if the related operation + Link to the "Instantiate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance in NOT_INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" terminate: description: > - Link to the "terminate" task resource, if the related operation + Link to the "Terminate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" scale: description: > - Link to the "scale" task resource, if the related operation is + Link to the "Scale VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" scaleToLevel: description: > - Link to the "scale_to_level" task resource, if the related + Link to the "Scale VNF to level task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" changeFlavour: description: > - Link to the "change_flavour" task resource, if the related + Link to the "Change VNF flavour task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" heal: description: > - Link to the "heal" task resource, if the related operation is + Link to the "Heal VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" operate: description: > - Link to the "operate" task resource, if the related operation is + Link to the "Operate VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" changeExtConn: description: > - Link to the "change_ext_conn" task resource, if the related + Link to the "Change external VNF connectivity task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "SOL002SOL003_def.yaml#/definitions/Link" -- GitLab From ceb858632b89294db096adeed6492f29f622dfb6 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 10:01:29 +0200 Subject: [PATCH 021/147] SOL003_98: CreateVnfRequest datatype updated --- .../SOL002SOL003VNFLifecycleManagement_def.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 85ff0821..b3992aa2 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -388,6 +388,14 @@ definitions: description: > Human-readable description of the VNF instance to be created. type: string + metadata: + description: > + If present, this attribute provides values for the "metadata" attribute in "VnfInstance", + as defined in clause 5.5.2.2. + If a “metadata” entry in this CreateVnfRequest data structure has a corresponding default + value declared in the VNFD, the value in the “metadata” entry in the CreateVnfRequest + structure takes precedence. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ExtManagedVirtualLinkInfo: type: object -- GitLab From 7a399ca855cbbcbb5e436e69400e51931aff2c55 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 10:04:53 +0200 Subject: [PATCH 022/147] SOL003_99: InstantiateVnfRequest datatype updated --- src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index b3992aa2..af0c0951 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -40,6 +40,12 @@ definitions: to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute provides values for the "extensions" attribute in "VnfInstance", + as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, + the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" VnfLcmOpOcc: description: > -- GitLab From 2cbb97c355860eb4093ab6d030bbf9b35610c1f0 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 10:06:34 +0200 Subject: [PATCH 023/147] SOL003_100: VnfInfoModificationRequest datatype updated --- src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index af0c0951..41fbbe51 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -1396,9 +1396,9 @@ definitions: description: > New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. type: string - vnfPkgId: + vnfdId: description: > - New value of the "vnfPkgId" attribute in "VnfInstance". The value "null" is not permitted. + New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > -- GitLab From f6132fbeda807d126767238207692e261a200dc3 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 10:11:58 +0200 Subject: [PATCH 024/147] SOL003_101: VnfInfoModifications datatype updated --- .../SOL002SOL003VNFLifecycleManagement_def.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 41fbbe51..70d96272 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -1328,20 +1328,10 @@ definitions: type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfPkgId: - description: > - If present, this attribute signals modifications of the "vnfPkgId" - attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfdId: description: > If present, this attribute signals modifications of the "vnfdId" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > -- GitLab From 76415a094fe3e6e74812dc42405c9578de297155 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 10:13:09 +0200 Subject: [PATCH 025/147] SOL003_102: VnfLcmOpOcc datatype updated --- src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 70d96272..e74a18e8 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -71,7 +71,7 @@ definitions: $ref: "#/definitions/LcmOperationStateType" stateEnteredTime: description: > - Date-time when the current state was entered. + Date-time when the current state has been entered. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" startTime: description: > -- GitLab From b8aeefeff26267d502d61d62f358b58ac13fcdfa Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 10:14:19 +0200 Subject: [PATCH 026/147] SOL003_103: LccnSubscriptionRequest datatype updated --- src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index e74a18e8..fb87e138 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -811,7 +811,7 @@ definitions: description: > Authentication parameters to configure the use of Authorization when sending notifications corresponding to this subscription, as defined - in clause 4.5.3.4. + in clause 8.3.4 of ETSI GS NFV-SOL 013. This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" -- GitLab From fd39a707ac665838a1211ba066c5aa5a2cfb117f Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 10:21:59 +0200 Subject: [PATCH 027/147] SOL003_104: VnfLcmOperationOccurrenceNotification datatype updated --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index fb87e138..3a290d1a 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -621,7 +621,7 @@ definitions: lifecycle caused by a VNF LCM operation occurrence. The support of the notification is mandatory. This notification shall be triggered by the VNFM when there is a change - in the VNF lifecycle caused by a VNF LCM operation occurrence, + in the state of a VNF LCM operation occurrence that changes the VNF lifecycle, including: * Instantiation of the VNF * Scaling of the VNF instance (including auto-scaling) @@ -633,18 +633,20 @@ definitions: * Modification of VNF instance information and/or VNF configurable properties through the "PATCH" method on the "Individual VNF instance" resource. - If this is the initial notification about the start of a VNF LCM - operation occurrence, it is assumed that the notification is sent by the - VNFM before any action (including sending the grant request) is taken as - part of the LCM operation. Due to possible race conditions, the "start" - notification, the grant request and the LCM operation acknowledgment can - arrive in any order at the NFVO, and the NFVO shall be able to handle - such a situation. - If this is a notification about a final or intermediate result state of - a VNF LCM operation occurrence, the notification shall be sent after - all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. + Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, + and also specifies details of the notifications to be emitted at each state transition. + If this is the initial notification about the start of a VNF LCM operation occurrence, + it is assumed that the notification is sent by the VNFM before any action (including sending the grant request) + is taken as part of the LCM operation. Due to possible race conditions, the "start" notification, + the grant request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) + can arrive in any order at the NFVO, and the NFVO shall be able to handle such a situation. + If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, + the notification shall be sent after all related actions of the LCM operation that led + to this state have been executed. + The new state shall be set in the "Individual VNF LCM operation occurrence" resource before + the notification about the state change is sent. + See clause 5.6.2.2 for further provisions regarding sending this notification, including + in cases of handling LCM operation errors. type: object required: - id @@ -768,20 +770,20 @@ definitions: $ref: "#/definitions/VnfInfoModifications" changedExtConnectivity: description: > - Information about changed external connectivity, if this - notification represents the result of a lifecycle operation - occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". - Shall be absent otherwise. + Information about changed external connectivity, if this notification + represents the result of a lifecycle operation occurrence. + Shall be present if the "notificationStatus" is set to "RESULT" and + the "operation" has made any changes to the external connectivity of + the VNF instance. Shall be absent otherwise. type: array items: $ref: "#/definitions/ExtVirtualLinkInfo" error: description: > Details of the latest error, if one has occurred during executing - the LCM operation. Shall be present if the "operationState" - attribute is "FAILED_TEMP" or "FAILED", and shall be absent - otherwise. + the LCM operation (see clause 6.3 of ETSI GS NFV-SOL 013). + Shall be present if the "operationState" attribute is "FAILED_TEMP" or "FAILED", + and shall be absent otherwise. $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" _links: description: > -- GitLab From ba964c2e1b877ffa5385f1da0fac5ff52d09b0fd Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 13:06:36 +0200 Subject: [PATCH 028/147] SOL003 VNF LCM interface overall consolidation --- .../VNFLifecycleManagement.yaml | 335 ++++++++++++------ .../VNFLifecycleManagementNotification.yaml | 33 +- ...OL002SOL003VNFLifecycleManagement_def.yaml | 12 +- 3 files changed, 261 insertions(+), 119 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 1a000d5e..13a4c45b 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -54,6 +54,13 @@ paths: description: > Create VNF Identifier. The POST method creates a new VNF instance resource. + This method shall follow the provisions specified in the tables 5.4.2.3.1-1 and 5.4.2.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual VNF instance" + resource as defined in clause 5.4.3 shall have been created, and the value of the + "instantiationState" attribute in the representation of that resource shall be "NOT_INSTANTIATED". + A notification of type VnfIdentifierCreationNotification shall be triggered as part of successfully + executing this method as defined in clause 5.5.2.18. parameters: - name: createVnfRequest description: The VNF creation parameters @@ -93,7 +100,12 @@ paths: description: > 201 CREATED - A VNF Instance identifier was created successfully. + Shall be returned when a new "Individual VNF instance" resource and + the associated VNF instance identifier washas been created successfully. + The response body shall contain a representation of the created VNF instance, + as defined in clause 5.5.2.2. + The HTTP response shall include a "Location" HTTP header that contains the resource + URI of the created VNF instance. headers: Content-Type: description: The MIME type of the body of the response. @@ -104,6 +116,8 @@ paths: description: The resource URI of the created VNF instance. type: string format: url + maximum: 1 + minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided @@ -140,6 +154,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > Query VNF. @@ -161,45 +176,44 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. - The VNFM shall support receiving this parameter as part of the - URI query string. The NFVO may supply this parameter. - All attribute names that appear in the VnfInstance and in data - types referenced from it shall be supported by the VNFM in the - filter expression. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. + The VNFM shall support receiving this parameter as part of the URI query string. + The NFVO may supply this parameter. + All attribute names that appear in the VnfInstance and in data types referenced from + it shall be supported by the VNFM in the filter expression. in: query required: false type: string - name: all_fields description: > - Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > - Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > - Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfInstance structure in the response body if this parameter is provided, or none of the parameters - "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - vnfConfigurableProperties - - vimConnectionInfo + - vimConnectionInfo - instantiatedVnfInfo - metadata - extensions @@ -209,8 +223,8 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 - for this resource. + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -225,14 +239,16 @@ paths: description: > 200 OK - Information about zero or more VNF instances was queried - successfully. The response body shall contain in an array - the representations of zero or more VNF instances, as defined - in clause 5.5.2.2. - If the VNFM supports alternative 2 (paging) according to - clause 4.7.2.1 for this resource, inclusion of the Link - HTTP header in this response shall follow the provisions - in clause 4.7.2.3. + Shall be returned when information about zero or more VNF instances has been queried successfully. + The response body shall contain in an array the representations of zero or more VNF instances, + as defined in clause 5.5.2.2. + If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" + (if supported) or "exclude_default" URI parameters was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of + ETSI GS NFV-SOL 013, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4.7.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 4.7.2.3.5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. @@ -300,13 +316,14 @@ paths: in: path type: string required: true + get: description: > - Query VNF - + Query VNF. - The GET method retrieves information about a VNF instance by reading - an individual VNF instance resource. + The GET method retrieves information about a VNF instance by reading an "Individual VNF instance" resource. + This method shall follow the provisions specified in the tables 5.4.3.3.2-1 and 5.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -340,9 +357,8 @@ paths: description: > 200 OK - Information about zero or more VNF instances was queried - successfully. The response body shall contain - representations of zero or more VNF instances. + Shall be returned when information about an individual VNF instance has been read successfully. + The response body shall contain a representation of the VNF instance, as defined in clause 5.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. @@ -385,20 +401,25 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + patch: #SOL003 location: 5.4.3.3.4 description: > Modify VNF Information. - This method modifies an individual VNF instance resource. Changes to - the VNF configurable properties are applied to the configuration in - the VNF instance, and are reflected in the representation of this - resource. Other changes are applied to the VNF instance information - managed by the VNFM, and are reflected in the representation of this - resource + This method modifies an "Individual VNF instance" resource. + Changes to the VNF configurable properties are applied to the configuration in the VNF instance, + and are reflected in the representation of this resource. + Other changes are applied to the VNF instance information managed by the VNFM, and are reflected + in the representation of this resource. + This method shall follow the provisions specified in the tables 5.4.3.3.4-1 and 5.4.3.3.4-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method are + specified in clause 5.4.1.2. parameters: - name: VnfInfoModificationRequest description: > - Input parameters for VNF info modification. + Parameters for the VNF modification, as defined in clause 5.5.2.12. + The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. required: true in: body schema: @@ -429,11 +450,11 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not - been completed. On success, the HTTP response shall include a - "Location" HTTP header that contains the URI of the newly-created - "VNF LCM operation occurrence" resource corresponding to the - operation. + Shall be returned when the request has been accepted for processing. + On success, the HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "Individual VNF LCM operation occurrence" + resource corresponding to the operation. + The response body shall be empty. headers: Content-Type: description: The MIME type of the body of the response. @@ -480,11 +501,18 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + delete: #SOL003 location: 5.4.3.3.5 description: > Delete VNF Identifier. - This method deletes an individual VNF instance resource. + This method deletes an "Individual VNF instance" resource. + This method shall follow the provisions specified in the tables 5.4.3.3.5-1 and 5.4.3.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual VNF instance" resource + shall not exist any longer. + A notification of type "VnfIdentifierDeletionNotification" shall be triggered as part of successfully + executing this method as defined in clause 5.5.2.19. parameters: - name: Authorization description: > @@ -504,8 +532,8 @@ paths: description: > 204 NO CONTENT - The VNF instance resource and the associated VNF identifier were - deleted successfully. + Shall be returned when the "Individual VNF instance" resource and the associated + VNF identifier were deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -568,6 +596,13 @@ paths: description: > Instantiate VNF. The POST method instantiates a VNF instance. + This method shall follow the provisions specified in the tables 5.4.4.3.1-1 and 5.4.4.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method + are specified in clause 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "instantiationState" attribute to the value "INSTANTIATED" and the "vnfState" + attribute to the value "STARTED" in the representation of the "Individual VNF instance" resource. parameters: - name: InstantiateVnfRequest description: Parameters for the VNF instantiation. @@ -610,7 +645,7 @@ paths: Shall be returned when the request has been accepted for processing The response body shall be empty. The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "VNF LCM operation + contains the URI of the newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Location: @@ -672,7 +707,7 @@ paths: description: > Identifier of the VNF instance to be scaled. This identifier can be retrieved from the resource referenced by the "Location" HTTP header - in the response to a POST request creating a new VNF instance + in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -682,8 +717,14 @@ paths: #SOL003 location: 5.4.5.3.1 description: > Scale VNF. - The POST method requests to scale a VNF instance resource - incrementally. + The POST method requests to scale a VNF instance resource incrementally. + This method shall follow the provisions specified in the tables 5.4.5.3.1-1 and 5.4.5.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method are + specified in clause 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute + in the representation of the "Individual VNF instance" resource. parameters: - name: ScaleVnfRequest description: Parameters for the scale VNF operation. @@ -796,7 +837,7 @@ paths: Identifier of the VNF instance to be scaled to a target level. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new VNF instance resource. It can also be retrieved from the "id" + new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string @@ -805,8 +846,14 @@ paths: #SOL003 location: 5.4.6.3.1 description: > Scale VNF to Level. - The POST method requests to scale a VNF instance resource to a target - level. + The POST method requests to scale a VNF instance resource to a target level. + This method shall follow the provisions specified in the tables 5.4.6.3.1-1 and 5.4.6.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method are + specified in clause 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute + in the representation of the "Individual VNF instance" resource. parameters: - name: ScaleVnfToLevelRequest description: Parameters for the scale VNF to Level operation. @@ -919,7 +966,7 @@ paths: The identifier of the VNF instance of which the deployment flavour is requested to be changed. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the - response to a POST request creating a new VNF instance resource. It + response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -928,7 +975,14 @@ paths: post: description: > Change VNF Flavour. - The POST method changes the deployment flavour of a VNF instance. + This method shall follow the provisions specified in the tables 5.4.7.3.1-1 and 5.4.7.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method + are specified in clause 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "flavourId" attribute in the representation of the "Individual VNF instance" + resource to the value of the "newFlavourId" attribute passed in the "ChangeVnfFlavourRequest" + data in the POST request. parameters: - name: ChangeVnfFlavourRequest description: Parameters for the Change VNF Flavour operation. @@ -1040,7 +1094,7 @@ paths: description: > The identifier of the VNF instance to be terminated. This identifier can be retrieved from the resource referenced by the "Location" HTTP - header in the response to a POST request creating a new VNF instance + header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -1050,6 +1104,13 @@ paths: description: > Terminate VNF. The POST method terminates a VNF instance. + This method shall follow the provisions specified in the tables 5.4.8.3.1-1 and 5.4.8.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method + are specified in clause 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "instantiationState" attribute in the representation of the "Individual VNF instance" + resource to the value "NOT_INSTANTIATED". parameters: - name: TerminateVnfRequest description: Parameters for the VNF termination. @@ -1153,7 +1214,7 @@ paths: description: > Identifier of the VNF instance to be healed. This identifier can be retrieved from the resource referenced by the "Location" HTTP - header in the response to a POST request creating a new VNF instance + header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -1162,7 +1223,11 @@ paths: post: description: > Heal VNF. - The POST method requests to heal a VNF instance resource. + The POST method requests to heal a VNF instance. + This method shall follow the provisions specified in the tables 5.4.9.3.1-1 and 5.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method + are specified in clause 5.4.1.2. parameters: - name: HealVnfRequest description: Parameters for the Heal VNF operation. @@ -1274,7 +1339,7 @@ paths: description: > Identifier of the VNF instance to be operated. This identifier can be retrieved from the resource referenced by the "Location" HTTP - header in the response to a POST request creating a new VNF instance + header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -1284,6 +1349,13 @@ paths: description: > Operate VNF. The POST method changes the operational state of a VNF instance resource. + This method shall follow the provisions specified in the tables 5.4.10.3.1-1 and 5.4.10.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method + are specified in clause 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "vnfState" attribute in the representation of the "Individual VNF instance" resource + to the value of the "changeStateTo" attribute passed in the "OperateVnfRequest" data in the POST request. parameters: - name: OperateVnfRequest description: Parameters for the Operate VNF operation. @@ -1396,7 +1468,7 @@ paths: Identifier of the VNF instance of which the external connectivity is requested to be changed. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to - a POST request creating a new VNF instance resource. It can also be + a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -1406,6 +1478,10 @@ paths: description: > Change External VNF Connectivity. The POST method changes the external connectivity of a VNF instance. + This method shall follow the provisions specified in the tables 5.4.11.3.1-1 and 5.4.11.3.1-2 + for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method + are specified in clause 5.4.1.2. parameters: - name: ChangeExtVnfConnectivityRequest description: > @@ -1507,8 +1583,10 @@ paths: get: description: > Get Operation Status. - The client can use this method to query status information about - multiple VNF lifecycle management operation occurrences. + The client can use this method to query status information about multiple + VNF lifecycle management operation occurrences. + This method shall follow the provisions specified in the tables 5.4.12.3.2-1 and 5.4.12.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1526,45 +1604,44 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. - The VNFM shall support receiving this parameter as part of the - URI query string. The NFVO may supply this parameter. - All attribute names that appear in the VnfLcmOpOcc and in data - types referenced from it shall be supported by the VNFM in the - filter expression. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. + The VNFM shall support receiving this parameter as part of the URI query string. + The NFVO may supply this parameter. + All attribute names that appear in the VnfLcmOpOcc and in data types referenced from it + shall be supported by the VNFM in the filter expression. in: query required: false type: string - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfLcmOpOcc structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - vnfConfigurableProperties - - vimConnectionInfo + - vimConnectionInfo - instantiatedVnfInfo - metadata - extensions @@ -1574,7 +1651,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -1668,9 +1745,10 @@ paths: get: description: > Get Operation Status. - The client can use this method to retrieve status information about a - VNF lifecycle management operation occurrence by reading an individual - "VNF LCM operation occurrence" resource. + The client can use this method to retrieve status information about a VNF lifecycle + management operation occurrence by reading an "Individual VNF LCM operation occurrence" resource. + This method shall follow the provisions specified in the tables 5.4.13.3.2-1 and 5.4.13.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1760,9 +1838,15 @@ paths: type: string post: description: > - The POST method initiates retrying a VNF lifecycle operation if that - operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + The POST method initiates retrying a VNF lifecycle operation if that operation + has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" + resource is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the tables 5.4.14.3.1-1 and 5.4.14.3.1-2 + for URI query parameters, request and response data structures, and response codes. + In case of success of processing the asynchronous request, the "operationState" attribute + in the representation of the parent resource shall be changed to "PROCESSING" and the applicable + "start" notification according to clause 5.6.2.2 shall be emitted to indicate that the underlying + VNF LCM operation occurrence proceeds. parameters: - name: Authorization description: > @@ -1851,9 +1935,15 @@ paths: type: string post: description: > - The POST method initiates rolling back a VNF lifecycle operation if - that operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + The POST method initiates rolling back a VNF lifecycle operation if that operation + has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" + resource is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the tables 5.4.15.3.1-1 and 5.4.15.3.1-2 + for URI query parameters, request and response data structures, and response codes. + In case of success of processing the asynchronous request, the "operationState" attribute + in the representation of the parent resource shall be changed to "ROLLING_BACK" and the applicable + "start" notification according to clause 5.6.2.2 shall be emitted to indicate that rollback of the + underlying VNF LCM operation occurrence is attempted. parameters: - name: Authorization description: > @@ -1942,9 +2032,14 @@ paths: type: string post: description: > - The POST method marks a VNF lifecycle management operation occurrence - as "finally failed" if that operation occurrence is in "FAILED_TEMP" - state. + The POST method marks a VNF lifecycle management operation occurrence as "finally failed" + if that operation occurrence is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the tables 5.4.16.3.1-1 and 5.4.16.3.1-2 + for URI query parameters, request and response data structures, and response codes. + In case of success, the "operationState" attribute in the representation of the parent resource + shall be changed to "FAILED" and the applicable "result" notification according to clause 5.6.2.2 + shall be emitted to indicate that the execution of the underlying VNF LCM operation occurrence + has finally and unrecoverably failed. parameters: - name: Accept description: > @@ -2049,10 +2144,30 @@ paths: type: string post: description: > - The POST method initiates cancelling an ongoing VNF lifecycle - operation while it is being executed or rolled back, i.e. the related - "VNF LCM operation occurrence" is either in "PROCESSING" or - "ROLLING_BACK" state. + The POST method initiates cancelling an ongoing VNF lifecycle operation while + it is being executed or rolled back, i.e. the related "Individual VNF LCM operation occurrence" + resource is either in "STARTING" or "PROCESSING" or "ROLLING_BACK" state. + This method shall follow the provisions specified in the tables 5.4.17.3.1-1 and 5.4.17.3.1-2 + for URI query parameters, request and response data structures, and response codes. + Before returning the "202 Accepted" response, the VNFM shall update the "isCancelPending" + and "cancelMode" attributes in the representation of the parent resource according to the + provisions in clause 5.5.2.13. + + In case of success of processing the asynchronous request: + 1) If the request has been processed in "STARTING" state, the "operationState" attribute + in the representation of the parent resource shall be changed to "ROLLED_BACK". + 2) If the request has been processed in "PROCESSING" or "ROLLING_BACK" state, + the "operationState" attribute in the representation of the parent resource + shall be changed to "FAILED_TEMP". + + In both cases, the VNFM shall update the "isCancelPending" and "cancelMode" attributes + in the representation of the parent resource according to the provisions in clause 5.5.2.13 + to reflect the new status, and the applicable "result" notification according to clause 5.6.2.2 + shall be emitted to indicate that the execution of the underlying VNF LCM operation occurrence + has temporarily failed. + Due to race conditions, the processing of the actual operation that is to be cancelled may eventually + still succeed, in which case the "operationState" attribute in the representation of the parent + resource shall represent the result of that operation, rather than the result of the cancellation. parameters: - name: Authorization description: > @@ -2123,16 +2238,18 @@ paths: description: > Subscribe. The POST method creates a new subscription. - Creation of two subscription resources with the same callbackURI and - the same filter can result in performance degradation and will provide - duplicates of notifications to the NFVO, and might make sense only in - very rare use cases. Consequently, the VNFM may either allow creating - a subscription resource if another subscription resource with the same - filter and callbackUri already exists (in which case it shall return - the “201 Created” response code), or may decide to not create a - duplicate subscription resource (in which case it shall return a - “303 See Other” response code referencing the existing subscription - resource with the same filter and callbackUri). + This method shall follow the provisions specified in the tables 5.4.18.3.1-1 and 5.4.18.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual subscription" + resource as defined in clause 5.4.3 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + an "Individual subscription" resource if another "Individual subscription" resource with the same + filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + or may decide to not create a duplicate "Individual subscription" resource (in which case it shall + return a "303 See Other" response code referencing the existing "Individual subscription" resource + with the same filter and callbackUri). parameters: - name: LccnSubscriptionRequest description: > @@ -2357,8 +2474,9 @@ paths: get: description: > Query Subscription Information. - The GET method retrieves information about a subscription by reading - an individual subscription resource. + The GET method retrieves information about a subscription by reading an "Individual subscription" resource. + This method shall follow the provisions specified in the tables 5.4.19.3.2-1 and 5.4.19.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -2431,6 +2549,15 @@ paths: description: > Terminate Subscription. The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 5.4.19.3.5-1 and 5.4.19.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual subscription" resource + shall not exist any longer. This means that no notifications for that subscription shall be + sent to the formerly-subscribed API consumer. + + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed + + API consumer for a certain time period after the deletion. parameters: - name: Authorization description: > diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 2b9f22bb..4677af39 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -46,7 +46,10 @@ paths: post: description: > Notify. - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the tables 5.4.20.3.1-1 and 5.4.20.3.1-2 for + URI query parameters, request and response data structures, and response codes. parameters: - name: VnfLcmOperationOccurrenceNotification description: A notification about lifecycle changes triggered by a VNF LCM operation occurrence.. @@ -112,8 +115,10 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -171,7 +176,10 @@ paths: post: description: > Notify. - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the tables 5.4.20.3.1-1 and 5.4.20.3.1-2 for + URI query parameters, request and response data structures, and response codes. parameters: - name: VnfIdentifierCreationNotification description: > @@ -238,8 +246,10 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -297,7 +307,10 @@ paths: post: description: > Notify. - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the tables 5.4.20.3.1-1 and 5.4.20.3.1-2 for + URI query parameters, request and response data structures, and response codes. parameters: - name: VnfIdentifierDeletionNotification description: > @@ -364,8 +377,10 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 3a290d1a..1605fba6 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -1194,10 +1194,10 @@ definitions: VnfIdentifierCreationNotification: description: > This type represents a VNF identifier creation notification, which - informs the receiver of the creation of a new VNF instance resource and + informs the receiver of the creation of a new "Individual VNF instance" resource and the associated VNF instance identifier. - This notification shall be triggered by the VNFM when it has created a - VNF instance resource and the associated VNF instance identifier. + This notification shall be triggered by the VNFM when it has created an + "Individual VNF instance" resource and the associated VNF instance identifier. type: object required: - id @@ -1238,10 +1238,10 @@ definitions: VnfIdentifierDeletionNotification: description: > This type represents a VNF identifier deletion notification, which - informs the receiver of the deletion of a new VNF instance resource and + informs the receiver of the deletion of a new "Individual VNF instance" resource and the associated VNF instance identifier. - This notification shall be triggered by the VNFM when it has deleted a - VNF instance resource and the associated VNF instance identifier. + This notification shall be triggered by the VNFM when it has deleted an + "Individual VNF instance" resource and the associated VNF instance identifier. type: object required: - id -- GitLab From c47c0e296db8db9af7a6fd3bfcba068d2a431908 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 14:51:00 +0200 Subject: [PATCH 029/147] SOL003_114/SOL003_115: PM Jobs POST and GET description fields updated --- .../VNFPerformanceManagement.yaml | 73 ++++++++++++------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index bbe5b816..2d5713b9 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnfpm/v1" @@ -52,10 +52,12 @@ paths: #SOL003 location: 6.4.2 post: description: > - Create PM Job - - + Create PM Job. The POST method creates a PM job. + This method shall follow the provisions specified in the tables 6.4.2.3.1-1 and 6.4.2.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual PM job" resource as defined + in clause 6.4.3 shall have been created. parameters: - name: CreatePmJobRequest description: The VNF creation parameters @@ -95,10 +97,11 @@ paths: description: > 201 CREATED - The PM job was created successfully. The response body shall - contain a representation of the created PM job resource. - The HTTP response shall include a "Location" HTTP header that - points to the created PM job resource. + Shall be returned when the PM job has been created successfully. + The response body shall contain a representation of the created "Individual PM job" resource, + as defined in clause 6.5.2.7. + The HTTP response shall include a "Location" HTTP header that points to the created + "Individual PM job" resource. headers: Location: description: The resource URI of the created PM Job @@ -126,19 +129,27 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query PM Job - - + Query PM Job. + The client can use this method to retrieve information about PM jobs. + This method shall follow the provisions specified in the tables 6.4.2.3.2-1 and 6.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. The client can use this method to retrieve information about PM jobs. parameters: - name: Accept @@ -157,7 +168,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the PmJob and in data @@ -169,31 +180,31 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the PmJob structure in the response body if this parameter is provided, or none of the parameters - "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - Reports in: query required: false @@ -201,7 +212,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -217,13 +228,16 @@ paths: description: > 200 OK - Information about zero or more PM jobs was queried successfully. - The response body shall contain in an array representations of - zero or more PM jobs, as defined in clause 6.5.2.7. - If the VNFM supports alternative 2 (paging) according to - clause 4.7.2.1 for this resource, inclusion of the Link - HTTP header in this response shall follow the provisions - in clause 4.7.2.3. + Shall be returned when information about zero or more PM jobs has been queried successfully. + The response body shall contain in an array the representations of zero or more PM jobs, + as defined in clause 6.5.2.7. + If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" + (if supported) or "exclude_default" URI parameters was supplied in the request, the data in the + response body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 + of ETSI GS NFV-SOL 013, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4..2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: > @@ -262,14 +276,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual PM job # ############################################################################### -- GitLab From 5641274365bfed922fb00c55299a16f01d0dbd83 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 15:50:04 +0200 Subject: [PATCH 030/147] SOL003_118/SOL003_119/SOL003_120: Individual PM job POST and GET description fields updated --- .../VNFPerformanceManagement.yaml | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 2d5713b9..7201dfc6 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -290,7 +290,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - + ############################################################################### # Individual PM job # ############################################################################### @@ -302,17 +302,17 @@ paths: Identifier of the PM job. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new PM job resource. It can also be retrieved from the "id" + new "Individual PM job" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query PM Job - - + Query PM Job. The client can use this method for reading an individual PM job. + This method shall follow the provisions specified in the tables 6.4.3.3.2-1 and 6.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -339,9 +339,9 @@ paths: description: > 200 OK - Information about an individual PM job was queried successfully. - The response body shall contain a representation of the PM job - resource. + Shall be returned when information about an individual PM job has been read successfully. + The response body shall contain a representation of the "Individual PM job" resource, + as defined in clause 6.5.2.7. headers: Content-Type: description: > @@ -372,20 +372,28 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Delete PM Job - - + Delete PM Job. This method terminates an individual PM job. + This method shall follow the provisions specified in the tables 6.4.3.3.5-1 and 6.4.3.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual PM job" resource shall not exist any longer. parameters: - name: Authorization description: > @@ -405,7 +413,7 @@ paths: description: > 204 NO CONTENT - The PM job was deleted successfully. + Shall be returned when the PM job has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -428,14 +436,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual performance report # ############################################################################### -- GitLab From f50e77f3cc00dc9ea389145975f59ee198628610 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 16:06:36 +0200 Subject: [PATCH 031/147] SOL003_122/SOL003_123/SOL003_124/SOL003_125: Thresholds POST and GET description fields updated --- .../VNFPerformanceManagement.yaml | 89 +++++++++++-------- 1 file changed, 51 insertions(+), 38 deletions(-) diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 7201dfc6..c347eec8 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -450,7 +450,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - + ############################################################################### # Individual performance report # ############################################################################### @@ -471,8 +471,9 @@ paths: required: true get: description: > - The client can use this method for reading an individual performance - report. + The client can use this method for reading an individual performance report. + This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -499,10 +500,9 @@ paths: description: > 200 OK - Information of an individual performance report was read - successfully. - The response body shall contain a representation of the - performance report resource. + Shall be returned when information of an individual performance report has been read successfully. + The response body shall contain a representation of the "Individual performance report" resource, + as defined in clause 6.5.2.10. headers: Content-Type: description: > @@ -533,14 +533,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Thresholds # ############################################################################### @@ -548,10 +555,12 @@ paths: #SOL003 location: 6.4.5 post: description: > - Create Threshold - - + Create Threshold. The POST method can be used by the client to create a threshold. + This method shall follow the provisions specified in the tables 6.4.5.3.1-1 and 6.4.5.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual threshold" resource + as defined in clause 6.4.6 shall have been created. parameters: - name: CreateThresholdRequest description: > @@ -592,10 +601,11 @@ paths: description: > 201 CREATED - A threshold was created successfully. The response body shall - contain a representation of the created threshold resource. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created threshold resource. + Shall be returned when a threshold has been created successfully. + The response body shall contain a representation of the created "Individual threshold" resource, + as defined in clause 6.5.2.9. + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the + created threshold resource. headers: Location: description: The resource URI of the created VNF instance @@ -630,20 +640,27 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Threshold - - + Query Threshold. The client can use this method to query information about thresholds. + This method shall follow the provisions specified in the tables 6.4.5.3.2-1 and 6.4.5.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -661,24 +678,19 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. - The VNFM shall support receiving this parameter as part of the - URI query string. The NFVO may supply this parameter. - All attribute names that appear in the Thresholds and in - data types referenced from it shall be supported by the VNFM - in the filter expression. - - NOTE: There are no attribute selectors defined for this resource as - the threshold attributes with cardinality 0..1 or 0..N are not - structurally complex in nature. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. + The VNFM shall support receiving this parameter as part of the URI query string. + The NFVO may supply this parameter. + All attribute names that appear in the Thresholds data type and in data types referenced + from it shall be supported by the VNFM in the filter expression. in: query required: false type: string - name: nextpage_opaque_marker description: > - Marker to obtain the next page of a paged response. Shall be - supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + Marker to obtain the next page of a paged response. + Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) according to clause + 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -693,14 +705,15 @@ paths: description: > 200 OK - Information about zero or more thresholds was queried - successfully. - The response body shall contain in an array representations - of zero or more thresholds, as defined in 6.5.2.9. - If the VNFM supports alternative 2 (paging) according to - clause 4.7.2.1 for this resource, inclusion of the Link - HTTP header in this response shall follow the provisions - in clause 4.7.2.3. + Shall be returned when information about zero or more thresholds has been queried successfully. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have + been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + The response body shall contain in an array the representations of zero or more thresholds, + as defined in clause 6.5.2.9. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: Location: description: The resource URI of the created VNF instance -- GitLab From adc65d8a1a2f5e9de36d97b869cbf4e668d7f1df Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 16:18:02 +0200 Subject: [PATCH 032/147] SOL003_127/SOL003_129: Individual Threshold POST and GET description fields updated --- .../VNFPerformanceManagement.yaml | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index c347eec8..adfcf461 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -756,14 +756,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual threshold # ############################################################################### @@ -775,17 +782,17 @@ paths: Identifier of the threshold. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new threshold resource. It can also be retrieved from the "id" + new "Individual threshold" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Threshold - - - The client can use this method for reading an individual threshold. + Query Threshold. + The client can use this method for reading an individual threshold + This method shall follow the provisions specified in the tables 6.4.6.3.2-1 and 6.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -812,9 +819,8 @@ paths: description: > 200 OK - Information about an individual threshold was queried - successfully. The response body shall contain a - representation of the threshold. + Shall be returned when information about an individual threshold has been read successfully. + The response body shall contain a representation of the threshold, as defined in clause 6.5.2.9. headers: Content-Type: description: > @@ -845,20 +851,29 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Delete Threshold - - + Delete Threshold. This method allows to delete a threshold. + This method shall follow the provisions specified in the tables 6.4.6.3.5-1 and 6.4.6.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual threshold" resource + shall not exist any longer. parameters: - name: Authorization description: > -- GitLab From afa2851680d8ce0646c28daa981e21c41f1bf2c6 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 16:24:09 +0200 Subject: [PATCH 033/147] SOL003_131/SOL003_132: Subscriptions POST and GET description fields updated --- .../VNFPerformanceManagement.yaml | 77 ++++++++++--------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index adfcf461..df601e94 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -916,14 +916,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### @@ -931,20 +938,20 @@ paths: #SOL003 location: 6.4.7 post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - Creation of two subscription resources with the same callbackURI and - the same filter can result in performance degradation and will provide - duplicates of notifications to the NFVO, and might make sense only in - very rare use cases. Consequently, the VNFM may either allow creating - a subscription resource if another subscription resource with the same - filter and callbackUri already exists (in which case it shall return - the “201 Created” response code), or may decide to not create a - duplicate subscription resource (in which case it shall return a - “303 See Other” response code referencing the existing subscription - resource with the same filter and callbackUri). + This method shall follow the provisions specified in the tables 6.4.7.3.1-1 and 6.4.7.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual subscription" resource + as defined in clause 6.4.8 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + a new "Individual subscription" resource if another "Individual subscription" resource with the same + filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + or may decide to not create a duplicate "Individual subscription" resource (in which case it shall + return a "303 See Other" response code referencing the existing "Individual subscription" resource + with the same filter and callbackUri). parameters: - name: PmSubscriptionRequest description: > @@ -985,11 +992,11 @@ paths: description: > 201 CREATED - The subscription was created successfully. A representation of the - created subscription resource shall be returned in the response - body. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created subscription resource. + Shall be returned when the subscription has been created successfully. + A representation of the created "Individual subscription" resource shall be + returned in the response body, as defined in clause 6.5.2.3. + The HTTP response shall include a "Location" HTTP header that contains the + resource URI of the created "Individual subscription" resource. headers: Location: description: The resource URI of the created VNF instance @@ -1034,14 +1041,14 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - Query Subscription Information - - - The client can use this method to query the list of active - subscriptions to Performance management notifications subscribed by - the client. + Query Subscription Information. + TThe client can use this method to query the list of active subscriptions + to Performance management notifications subscribed by the client. + This method shall follow the provisions specified in the tables 6.4.7.3.2-1 and 6.4.7.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1059,7 +1066,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the PmSubscription and in @@ -1072,7 +1079,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1087,15 +1094,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The response body shall contain in an array the representations - of all active subscriptions of the functional block that invokes - the method, i.e. zero or more representations of PM subscriptions - as defined in 6.5.2.3. - If the VNFM supports alternative 2 (paging) according to - clause 4.7.2.1 for this resource, inclusion of the Link - HTTP header in this response shall follow the provisions - in clause 4.7.2.3. + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active subscriptions + of the functional block that invokes the method, i.e. zero or more representations of + PM subscriptions as defined in clause 6.5.2.3. + If the "filter" URI parameter was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: > -- GitLab From bbfcb22a67e582da61092bffd93fd6e5062075ee Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 17:35:08 +0200 Subject: [PATCH 034/147] SOL003_136 -> SOL003_192: Individual subscription and Notification endpoints updated --- .../VNFPerformanceManagement.yaml | 57 +++++++++++++++---- .../VNFPerformanceManagementNotification.yaml | 49 +++++++++------- 2 files changed, 74 insertions(+), 32 deletions(-) diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index df601e94..390c3706 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1033,14 +1033,20 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: description: > @@ -1141,14 +1147,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -1159,18 +1172,18 @@ paths: description: > This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new subscription resource. It can also be retrieved from the "id" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - - The client can use this method for reading an individual subscription - about Performance management notifications subscribed by the client. + Query Subscription Information. + The client can use this method for reading an individual subscription about + Performance management notifications subscribed by the client. + This method shall follow the provisions specified in the tables 6.4.8.3.2-1 and 6.4.8.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1197,8 +1210,9 @@ paths: description: > 200 OK - The subscription was read successfully. The response body shall - contain a representation of the subscription resource. + Shall be returned when the subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource, + as defined in clause 6.5.2.3. headers: Content-Type: description: > @@ -1229,20 +1243,33 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate Subscription - - + Terminate Subscription. This method terminates an individual subscription. + This method shall follow the provisions specified in the tables 6.4.8.3.5-1 and 6.4.8.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual subscription" resource + shall not exist any longer. This means that no notifications for that subscription shall + be sent to the formerly-subscribed API consumer. + + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed + API consumer for a certain time period after the deletion. parameters: - name: Authorization description: > @@ -1262,7 +1289,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -1285,11 +1312,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index e26d686c..d06018bf 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -26,7 +26,7 @@ info: externalDocs: description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,11 +46,12 @@ paths: #SOL003 location: 6.4.9 post: description: > - Notify - - - The POST method delivers a notification regarding a performance - management event from the server to the client. + Notify. + The POST method delivers a notification regarding a performance management + event from the server to the client.API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription resource" with a matching filter. + This method shall follow the provisions specified in the tables 6.4.9.3.1-1 and 6.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: PerformanceInformationAvailableNotification description: > @@ -84,7 +85,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -116,8 +117,10 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 6.4.9.3.2-1 and 6.4.9.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -137,7 +140,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -167,6 +171,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint ThresholdCrossedNotification # ############################################################################### @@ -174,11 +179,12 @@ paths: #SOL003 location: 6.4.9 post: description: > - Notify - - - The POST method delivers a notification regarding a performance - management event from the server to the client. + Notify. + The POST method delivers a notification regarding a performance management + event from the server to the client.API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription resource" with a matching filter. + This method shall follow the provisions specified in the tables 6.4.9.3.1-1 and 6.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: ThresholdCrossedNotification description: > @@ -212,7 +218,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -244,8 +250,10 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 6.4.9.3.2-1 and 6.4.9.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -265,7 +273,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -294,4 +303,4 @@ paths: 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file -- GitLab From dade81e2c9a4f95801fe0561e571324929b5ca2e Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 17:40:50 +0200 Subject: [PATCH 035/147] SOL003_141/SOL003_143: PmSubscriptionRequest and PerformanceReport data types updated --- .../SOL002SOL003VNFPerformanceManagement_def.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml index 8e8e25f6..675a97fb 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -182,7 +182,7 @@ definitions: properties: timeStamp: description: > - Time stamp indicating when the data was collected. + Time stamp indicating when the data has been collected. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" value: description: > @@ -415,10 +415,9 @@ definitions: format: url authentication: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription. - This attribute shall only be present if the subscriber requires - authorization of notifications. + Authentication parameters to configure the use of Authorization when sending notifications + corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" Threshold: -- GitLab From b1f263ab536ac892451a6ec5b3ddfe954bac123e Mon Sep 17 00:00:00 2001 From: moscatelli Date: Thu, 27 Jun 2019 17:52:58 +0200 Subject: [PATCH 036/147] SOL003_149/SOL003_150: Alarms GET method desription fields updated --- .../VNFFaultManagement.yaml | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 3c20a609..42122792 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnffm/v1" @@ -52,11 +52,10 @@ paths: #SOL003 location: 7.4.2 get: description: > - Get Alarm List - - - The client can use this method to retrieve information about the alarm - list. + Get Alarm List. + The client can use this method to retrieve information about the alarm list. + This method shall follow the provisions specified in the tables 7.4.2.3.2-1 and 7.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -74,7 +73,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. The following attribute names shall be supported by the VNFM in @@ -87,7 +86,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -103,12 +102,14 @@ paths: description: > 200 OK - Information about zero or more alarms was queried successfully. - The response body shall contain in an array the representations - of zero or more alarms as defined in clause 7.5.2.4. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when information about zero or more alarms has been queried successfully. + The response body shall contain in an array the representations of zero or more alarms as + defined in clause 7.5.2.4. + If the "filter" URI parameter was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: > -- GitLab From 7c33978dea0c1aca423c3b8a11e2402285ce1db8 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 10:04:27 +0200 Subject: [PATCH 037/147] SOL003_152 -> SOL003_156: Individual alarm and Subscriptions methods updated --- .../VNFFaultManagement.yaml | 105 ++++++++++++------ 1 file changed, 68 insertions(+), 37 deletions(-) diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 42122792..50241ad8 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -166,6 +166,8 @@ paths: get: description: > The client can use this method to read an individual alarm. + This method shall follow the provisions specified in the tables 7.4.3.3.2-1 and 7.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -199,9 +201,8 @@ paths: description: > 200 OK - Information about an individual alarm was read successfully. - The response body shall contain a representation of the individual - alarm. + Shall be returned when information about an individual alarm has been read successfully. + The response body shall contain a representation of the individual alarm headers: Content-Type: description: > @@ -218,20 +219,27 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + patch: description: > - Acknowledge Alarm - - + Acknowledge Alarm. This method modifies an individual alarm resource. + This method shall follow the provisions specified in the tables 7.4.3.3.4-1 and 7.4.3.3.4-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmModifications description: The VNF creation parameters @@ -273,9 +281,9 @@ paths: description: > 200 OK - The request was accepted and completed. The response body shall - contain attribute modifications for an ‘Individual alarm’ - resource. + Shall be returned when the request has been accepted and completed. + The response body shall contain attribute modifications for an "Individual alarm" + resource (see clause 7.5.2.4). headers: Content-Type: description: > @@ -300,18 +308,30 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFFaultManagement_resp.yaml#/responses/409-alarm-state-conflict" + description: > + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the "Individual alarm" resource. + Typically, this is due to the fact that the alarm is already in the state that is + requested to be set (such as trying to acknowledge an already-acknowledged alarm). + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### @@ -319,20 +339,20 @@ paths: #SOL003 location: 7.4.4 post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - Creation of two subscription resources with the same callbackURI and - the same filter can result in performance degradation and will - provide duplicates of notifications to the NFVO, and might make sense - only in very rare use cases. Consequently, the VNFM may either allow - creating a subscription resource if another subscription resource with - the same filter and callbackUri already exists (in which case it shall - return the “201 Created” response code), or may decide to not create a - duplicate subscription resource (in which case it shall return a - “303 See Other” response code referencing the existing subscription - resource with the same filter and callbackUri). + This method shall follow the provisions specified in the tables 7.4.4.3.1-1 and 7.4.4.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual subscription" resource + as defined in clause 7.4.5 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + a new "Individual subscription" resource if another "Individual subscription" resource with the + same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + or may decide to not create a duplicate "Individual subscription" resource (in which case it shall return + a "303 See Other" response code referencing the existing "Individual subscription" resource with the + same filter and callbackUri). parameters: - name: FmSubscriptionRequest description: The VNF creation parameters @@ -372,10 +392,10 @@ paths: description: > 201 CREATED - The subscription was created successfully. The response body shall - contain a representation of the created subscription resource. - The HTTP response shall include a "Location:" HTTP header that - points to the created subscription resource. + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created "Individual subscription" resource. + The HTTP response shall include a "Location:"" HTTP header that points to the created + "Individual subscription" resource. headers: Content-Type: description: > @@ -389,6 +409,8 @@ paths: The resource URI of the created subscription resource. type: string format: url + maximum: 1 + minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided @@ -407,14 +429,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > Query Subscription Information @@ -447,7 +476,8 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 + of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the FmSubscription and in @@ -460,7 +490,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -475,14 +505,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. The response - body shall contain in an array the representations of all active - subscriptions of the functional block that invokes the method, - i.e. zero or more representations of FM subscriptions as defined - in clause 7.5.2.3. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + The list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active subscriptions + of the functional block that invokes the method, i.e. zero or more representations of + FM subscriptions as defined in clause 7.5.2.3. + If the "filter" URI parameter was supplied in the request, the data in the response body shall + have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: > -- GitLab From be68941491e0ba14d03a9de3e8d0768109e1caa1 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 10:34:38 +0200 Subject: [PATCH 038/147] SOL003_158/SOL003_160/SOl003_161: Individual subscription methods updated --- .../VNFFaultManagement.yaml | 77 +++++++++++-------- .../responses/VNFFaultManagement_resp.yaml | 28 ------- 2 files changed, 44 insertions(+), 61 deletions(-) delete mode 100644 src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 50241ad8..2d47c6a8 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -131,7 +131,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/Alarm" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/Alarm" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -212,7 +212,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "#/definitions/Alarm" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/Alarm" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -246,7 +246,7 @@ paths: in: body required: true schema: - $ref: "#/definitions/AlarmModifications" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" - name: Accept description: > Content-Types that are acceptable for the response. @@ -301,7 +301,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/AlarmModifications" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -359,7 +359,7 @@ paths: in: body required: true schema: - $ref: "#/definitions/FmSubscriptionRequest" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -420,7 +420,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/FmSubscription" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 303: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: @@ -543,23 +543,28 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/FmSubscription" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 412: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -571,18 +576,18 @@ paths: Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new subscription resource. It can also be retrieved from the "id" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - - The client can use this method for reading an individual subscription - for VNF alarms subscribed by the client. + Query Subscription Information. + The client can use this method for reading an individual subscription for VNF alarms + subscribed by the client. + This method shall follow the provisions specified in the tables 7.4.5.3.2-1 and 7.4.5.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -642,27 +647,40 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "#/definitions/FmSubscription" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate Subscription - - + Terminate Subscription. This method terminates an individual subscription. + This method shall follow the provisions specified in the tables 7.4.5.3.5-1 and 7.4.5.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual subscription" resource + shall not exist any longer. This means that no notifications for that subscription shall be + sent to the formerly-subscribed API consumer. + + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed + API consumer for a certain time period after the deletion. parameters: - name: Authorization description: > @@ -682,7 +700,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -705,24 +723,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - -############################################################################### -# Definitions # -############################################################################### -definitions: - Alarm: - $ref: "../definitions/SOL003_def.yaml#/definitions/Alarm" - AlarmModifications: - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" - FmSubscription: - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" - FmSubscriptionRequest: - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" \ No newline at end of file + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml b/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml deleted file mode 100644 index 7542c7ba..00000000 --- a/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml +++ /dev/null @@ -1,28 +0,0 @@ -responses: - 409-alarm-state-conflict: - description: > - Conflict - - The operation cannot be executed currently, due to a conflict with the - state of the "Individual alarm" resource. - Typically, this is due to the fact that the alarm is already in the - state that is requested to be set (such as trying to acknowledge an - already-acknowledged alarm). - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" -- GitLab From d68540688e53d4d0c970b4fbfe35aa9f40ab9738 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 10:42:36 +0200 Subject: [PATCH 039/147] SOL003_162/SOL003_163: Notification interface methods updated --- .../VNFFaultManagementNotification.yaml | 71 +++++++++++-------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index d3a58eb2..45b9b56e 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,11 +46,11 @@ paths: #SOL003 location: 7.4.6 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. + The API consumer shall have previously created an "Individual subscription resource" with a matching filter. + This method shall follow the provisions specified in the tables 7.4.6.3.1-1 and 7.4.6.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmNotification description: > @@ -85,7 +85,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -116,10 +116,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -139,7 +142,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -170,6 +173,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint AlarmClearedNotification # ############################################################################### @@ -177,11 +181,11 @@ paths: #SOL003 location: 7.4.6 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. + The API consumer shall have previously created an "Individual subscription resource" with a matching filter. + This method shall follow the provisions specified in the tables 7.4.6.3.1-1 and 7.4.6.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmClearedNotification description: > @@ -216,7 +220,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -247,10 +251,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -270,7 +277,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -301,6 +308,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint AlarmListRebuiltNotification # ############################################################################### @@ -308,11 +316,11 @@ paths: #SOL003 location: 7.4.6 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. + The API consumer shall have previously created an "Individual subscription resource" with a matching filter. + This method shall follow the provisions specified in the tables 7.4.6.3.1-1 and 7.4.6.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmListRebuiltNotification description: > @@ -347,7 +355,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -378,10 +386,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -401,7 +412,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -431,4 +442,4 @@ paths: 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file -- GitLab From 9e8039ffb74c398e9e9beeef2b5ebacedffc6f4c Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 10:52:18 +0200 Subject: [PATCH 040/147] SOL003_165/SOL003_166: FmSubscriptionRequest and FmSubscription datatypes updated --- src/definitions/SOL002SOL003VNFFaultManagement_def.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml index cbb32454..7702495b 100644 --- a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml @@ -23,10 +23,9 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription. - This attribute shall only be present if the subscriber requires - authorization of notifications. + Authentication parameters to configure the use of Authorization when sending notifications + corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" FmSubscription: @@ -41,7 +40,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource. + Identifier of this "Individual subscription" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > -- GitLab From 87f6d267311946d04eb96b05dddefe3c0d557267 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 11:16:28 +0200 Subject: [PATCH 041/147] SOL003_173/SOL003_174/SOL003_176: VNF Indicators methods updated --- src/SOL003/VNFIndicator/VNFIndicator.yaml | 71 ++++++++++++----------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index 1ab0d7f6..61a52f69 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -14,8 +14,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnfind/v1" @@ -41,10 +41,10 @@ paths: #SOL003 location: 8.4.2 get: description: > - Get Indicator Value - - + Get Indicator Value. The GET method queries multiple VNF indicators. + This method shall follow the provisions specified in the tables 8.4.2.3.2-1 and 8.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -62,7 +62,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfIndicator and in @@ -75,7 +75,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -90,15 +90,14 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried - successfully. - The response body shall contain in an array the representations - of all VNF indicators that match the attribute filter, i.e. - zero or more representations of VNF indicators as defined in - clause 8.5.2.2. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when information about zero or more VNF indicators has been queried successfully. + The response body shall contain in an array the representations of all VNF indicators that match + the attribute filter, i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have + been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: > @@ -137,14 +136,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNF indicators related to a VNF instance # ############################################################################### @@ -156,18 +162,17 @@ paths: Identifier of the VNF instance to which the VNF indicator applies. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new VNF instance resource. It can also be retrieved from the "id" + new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Get Indicator Value - - - The GET method queries multiple VNF indicators related to a VNF - instance. + Get Indicator Value. + The GET method queries multiple VNF indicators related to a VNF instance. + This method shall follow the provisions specified in the tables 8.4.3.3.2-1 and 8.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -192,7 +197,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfIndicator and in @@ -205,7 +210,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -220,15 +225,15 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried - successfully. - The response body shall contain in an array the representations - of all VNF indicators that are related to the particular VNF - instance and that match the attribute filter, i.e. zero or more - representations of VNF indicators as defined in clause 8.5.2.2. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when information about zero or more VNF indicators has been queried successfully. + The response body shall contain in an array the representations of all VNF indicators that are related + to the particular VNF instance and that match the attribute filter, i.e. zero or more representations + of VNF indicators as defined in clause 8.5.2.2. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: > -- GitLab From e7e54828ba85201725cf7e9edc1e7604a264296a Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 11:40:37 +0200 Subject: [PATCH 042/147] SOL003_177/SOL003_179: Individual VNF Indicator methods updated --- src/SOL003/VNFIndicator/VNFIndicator.yaml | 32 ++++++++++++++++------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index 61a52f69..e87ebf62 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -272,14 +272,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF indicator # ############################################################################### @@ -290,8 +297,8 @@ paths: description: > Identifier of the VNF indicator. This identifier can be retrieved from the resource referenced by the - payload body in the response to a POST request creating a new VNF - instance resource. + payload body in the response to a POST request creating a new "Individual VNF + instance" resource. in: path type: string required: true @@ -300,17 +307,17 @@ paths: Identifier of the VNF instance to which the VNF indicator applies. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new VNF instance resource. It can also be retrieved from the "id" + new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Get Indicator Value - - + Get Indicator Value. The GET method reads a VNF indicator. + This method shall follow the provisions specified in the tables 8.4.4.3.2-1 and 8.4.4.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -343,10 +350,8 @@ paths: 200: description: > 200 OK - - The VNF indicator was read successfully. - The response body shall contain the representation of the VNF - indicator. + Shall be returned when the VNF indicator has been read successfully. + The response body shall contain the representation of the VNF indicator. headers: Content-Type: description: > @@ -377,14 +382,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### -- GitLab From e4b4ec2d13d252366ee1e17449f49ba115bff7dd Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 11:52:41 +0200 Subject: [PATCH 043/147] SOL003_181/SOL003_182: Subscriptions methods updated --- src/SOL003/VNFIndicator/VNFIndicator.yaml | 76 ++++++++++++----------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index e87ebf62..e7885724 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -396,27 +396,27 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - + ############################################################################### # Subscriptions # ############################################################################### '/subscriptions': post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - Creation of two subscription resources with the same callbackURI and - the same filter can result in performance degradation and will provide - duplicates of notifications to the NFVO, and might make sense only in - very rare use cases. Consequently, the VNFM may either allow creating - a subscription resource if another subscription resource with the same - filter and callbackUri already exists (in which case it shall return - the “201 Created” response code), or may decide to not create a - duplicate subscription resource (in which case it shall return a - “303 See Other” response code referencing the existing subscription - resource with the same filter and callbackUri). + As the result of successfully executing this method, a new "Individual subscription" resource + as defined in clause 8.4.6 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + a new "Individual subscription" resource if another "Individual subscription" resource with the + same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + or may decide to not create a duplicate "Individual subscription" resource (in which case it shall return + a "303 See Other" response code referencing the existing "Individual subscription" resource with the same + filter and callbackUri). + This method shall follow the provisions specified in the tables 8.4.5.3.1-1 and 8.4.5.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: VnfIndicatorSubscriptionRequest description: Details of the subscription to be created. @@ -456,11 +456,9 @@ paths: description: > 201 CREATED - The subscription was created successfully. - The response body shall contain a representation of the created - subscription resource. - The HTTP response shall include a "Location" HTTP header that - points to the created subscription resource. + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created "Individual subscription" resource. + The HTTP response shall include a "Location" HTTP header that points to the created resource. headers: Content-Type: description: > @@ -499,22 +497,28 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Subscription Information - - - The GET method queries the list of active subscriptions of the - functional block that invokes the method. It can be used e.g. for - resynchronization after error situations. + Query Subscription Information. + The GET method queries the list of active subscriptions of the functional block that + invokes the method. It can be used e.g. for resynchronization after error situations. + This method shall follow the provisions specified in the tables 8.4.5.3.2-1 and 8.4.5.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -539,7 +543,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfIndicatorSubscription @@ -552,7 +556,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -567,15 +571,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The response body shall contain in an array the representations - of all active subscriptions of the functional block that invokes - the method which match the attribute filter, i.e. zero or more - representations of VNF indicator subscriptions as defined in - clause 8.5.2.4. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active + subscriptions of the functional block that invokes the method which match the attribute filter, + i.e. zero or more representations of VNF indicator subscriptions as defined in clause 8.5.2.4. + If the "filter" URI parameter was supplied in the request, the data in the response body shall + have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: > -- GitLab From 402b30b3635c8a69d2643e822f9eac10e6caa615 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 11:58:32 +0200 Subject: [PATCH 044/147] SOL003_183/SOL003_185/SOL003_186: Individual subscription methods updated --- src/SOL003/VNFIndicator/VNFIndicator.yaml | 47 +++++++++++++++++------ 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index e7885724..f5ff58e3 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -622,14 +622,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -641,17 +648,17 @@ paths: Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new subscription resource. It can also be retrieved from the "id" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method reads an individual subscription. + This method shall follow the provisions specified in the tables 8.4.6.3.2-1 and 8.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -685,9 +692,8 @@ paths: description: > 200 OK - The operation has completed successfully. - The response body shall contain a representation of the - subscription resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource. headers: Content-Type: description: > @@ -718,20 +724,33 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate Subscription - - + Terminate Subscription. The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 8.4.6.3.5-1 and 8.4.6.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual subscription" resource + shall not exist any longer. This means that no notifications for that subscription shall be + sent to the formerly-subscribed API consumer. + + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed + API consumer for a certain time period after the deletion. parameters: - name: Authorization description: > @@ -758,7 +777,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -781,11 +800,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file -- GitLab From f197740493106d88bf06b19c5cf9172dccb1c5e9 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 12:06:15 +0200 Subject: [PATCH 045/147] SOL003_187/SOL003_188: Notification methods updated --- .../VNFIndicatorNotification.yaml | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 31cc8051..eabfcf97 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,11 +46,11 @@ paths: #SOL003 location: 8.4.7 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription resource" with a matching filter. + This method shall follow the provisions specified in the tables 8.4.7.3.1-1 and 8.4.7.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmListRebuiltNotification description: > @@ -77,7 +77,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -108,10 +108,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 8.4.7.3.2-1 and 8.4.7.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -130,8 +133,7 @@ paths: 204: description: > 204 NO CONTENT - - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -161,4 +163,4 @@ paths: 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file -- GitLab From 1a2dc03af5f836aa2ba93e06b0aedea7da96e1af Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 12:12:25 +0200 Subject: [PATCH 046/147] SOL003_190: VNF Indicator datatypes updated --- .../VNFLifecycleManagementNotification_def.yaml | 2 +- src/definitions/SOL002SOL003VNFIndicator_def.yaml | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml index 8b148c66..0e5c8fed 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml @@ -174,4 +174,4 @@ definitions: _links: description: > Links to resources related to this notification. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" \ No newline at end of file diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml index fc9615ef..4902d59e 100644 --- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml +++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml @@ -30,7 +30,7 @@ definitions: type: object vnfInstanceId: description: > - Identifier of the VNF instance which provides the indicator value. + Identifier of the "Individual VNF instance" which provides the indicator value. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" _links: description: > @@ -83,7 +83,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource. + Identifier of this "Individual subscription" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > @@ -130,8 +130,9 @@ definitions: $ref: "SOL002SOl003_def.yaml#/definitions/Uri" authentication: description: > - Authentication parameters to configure the use of Authorization - when sending notifications corresponding to this subscription. + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this subscription, as defined + in clause 8.3.4 of ETSI GS NFV-SOL 013. This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" @@ -202,7 +203,7 @@ definitions: properties: vnfInstance: description: > - Link to the related VNF instance resource. Shall be present + Link to the related "Individual VNF instance" resource. Shall be present if the VNF instance information is accessible as a resource. $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" subscription: -- GitLab From ad73b1114e37daf5023f97d6ce05b8bc7351c297 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 12:29:03 +0200 Subject: [PATCH 047/147] SOL003_191/SOL003_195: Grants methods updated --- .../VNFLifecycleOperationGranting.yaml | 68 +++++++------------ 1 file changed, 26 insertions(+), 42 deletions(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 5049c172..033a8d1c 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Lifecycle Operation Granting interface description: > SOL003 - VNF Lifecycle Operation Granting interface @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/grant/v1" @@ -52,11 +52,15 @@ paths: #SOL003 location: 9.4.2 post: description: > - Grant Lifecycle Operation - - - The POST method requests a grant for a particular VNF lifecycle - operation. + Grant Lifecycle Operation. + The POST method requests a grant for a particular VNF lifecycle operation. + This method shall follow the provisions specified in the tables 9.4.2.3.1-1 and 9.4.2.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully processing this request, a new "Individual grant" resource + shall be created. In the synchronous case which is indicated by responding with "201 Created", + that resource shall be created before the 200 OK response is returned. In the asynchronous + case which is indicated by responding with "202 Accepted", this resource may be created + after the response is returned. parameters: - name: GrantRequest in: body @@ -95,11 +99,10 @@ paths: description: > 201 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. + Shall be returned when the grant has been created successfully (synchronous mode). + A representation of the created "Individual grant" resource shall be returned in the response body. + The HTTP response shall include a "Location" HTTP header that indicates the URI of the "Individual grant" + resource just created. headers: Content-Type: description: The MIME type of the body of the response. @@ -130,13 +133,11 @@ paths: description: > 202 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). + Shall be returned when the request has been accepted for processing + and it is expected to take some time to create the grant (asynchronous mode). The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that - indicates the URI of the "Individual grant" resource that will be - created once the granting decision has been made. + 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 @@ -156,42 +157,25 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: description: > - Forbidden + 403 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: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Shall be returned upon the following error: The grant has been rejected. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Resource: Individual grant # ############################################################################### -- GitLab From 26aec828b33d82a468534b5ed0634ef276fbc0ca Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 12:33:59 +0200 Subject: [PATCH 048/147] SOL003_199: Individual grant GET updated --- .../VNFLifecycleOperationGranting.yaml | 56 +++++++------------ 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 033a8d1c..fedac8d6 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -194,11 +194,10 @@ paths: required: true get: description: > - Grant Lifecycle Operation - - - The GET method retrieves information about a specific grant by reading - an individual grant resource. + Grant Lifecycle Operation. + The GET method reads a grant. + This method shall follow the provisions specified in the tables 9.4.3.3.2-1 and 9.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -225,9 +224,8 @@ paths: description: > 200 OK - The grant was read successfully. - A representation of the "individual grant" resource shall be - returned in the response body. + Shall be returned when the grant has been read successfully. + A representation of the "Individual grant" resource shall be returned in the response body. headers: Content-Type: description: The MIME type of the body of the response. @@ -254,8 +252,7 @@ paths: description: > 202 ACCEPTED - The process of creating the grant is ongoing, no grant is - available yet. + Shall be returned when the process of creating the grant is ongoing, no grant is available yet. The response body shall be empty. headers: WWW-Authenticate: @@ -266,46 +263,33 @@ paths: type: string maximum: 1 minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 303: + description: > + Shall be returned upon the following error: The grant has been rejected. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 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: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file -- GitLab From bbd4f3662e42d529e691b4cdac305fa9229e324a Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 12:44:43 +0200 Subject: [PATCH 049/147] SOL003_200/SOL003_201: VNF Lifecycle Operation Granting interface datatypes updated --- .../VNFLifecycleOperationGranting_def.yaml | 44 +++++++++++++++---- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml index e7a33626..a2e45456 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml @@ -172,11 +172,22 @@ definitions: 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. + The Grant response allows the NFVO to pass to the VNFM VIM assets + related to the VNF package that is identified by the vnfdId attribute + in the corresponding Grant request. The NFVO may send in each Grant + response the full set of VIM assets related to the VNF package defined + by the vnfdId in the related Grant request, but shall send this information + if the vnfdId in the related Grant request differs from the vnfdId passed + in the previous Grant request, or if the Grant response is related to an + InstantiateVnf operation. + The set of VIM assets shall not change between subsequent Grant responses + if the vnfdId has not changed. During each LCM operation occurrence, + the VIM assets that relate to the VNF package identified by the current value + of the vnfdId attribute in the “VnfInstance” structure shall be used by the + VNFM for newly created resources. If the VNF package identifier of the + VNF instance has been updated, VIM assets that relate to the previously-used + VNF package(s), and that were communicated in previous Grant responses, + apply to existing resources. type: object properties: computeResourceFlavours: @@ -367,6 +378,15 @@ definitions: 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. + If fallbackBestEffort is present in placement constraints and set + to “true”, the NFVO shall process the Affinity/AntiAffinity constraint + in a best effort manner, in which case, if specified resources cannot be + allocated based on specified placement constraint, the NFVO looks for an + alternate best effort placement for the specified resources to be granted. + In the best effort anti-affinity case, the resources are expected to be + spread optimally over all available instances of scope (e.g. zones), + and in the best effort affinity case, they are expected to be distributed + optimally over fewer possible instances of scope. type: array items: $ref: "#/definitions/PlacementConstraint" @@ -529,6 +549,14 @@ definitions: minItems: 2 items: $ref: "#/definitions/ConstraintResourceRef" + fallbackBestEffort: + description: > + Indication if the constraint is handled with fall back best effort. Default value is “false”. + If set to true, the Affinity/Anti_Affinity placement constraint need not be fully satisfied, + i.e. if the allocation cannot be honoured with the placement constraint, the request is + processed in a best effort manner. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" + ResourceDefinition: description: > @@ -568,9 +596,7 @@ definitions: description: > Reference to a resource template (VnfVirtualLinkDesc, VirtualComputeDesc, VnfExtCpd, VirtualStorageDesc) in the - VNFD. Shall be present for the planned creation of new resources, - including temporary resources, and for the modification of existing - resources. Shall be absent otherwise. + VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" resource: description: > @@ -748,4 +774,4 @@ definitions: This attribute shall only be supported and present when VNF-related Resource Management in indirect mode is applicable. The identification scheme is outside the scope of the present document. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file -- GitLab From 1174d87b91edec6dcabb1b99d3106aa70713eca3 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 13:01:25 +0200 Subject: [PATCH 050/147] SOL003_204/SOL003_207/SOL003_208: VNF Packages methods updated --- .../VNFPackageManagement.yaml | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 5ebe3990..eb696bfe 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Package Management interface description: > SOL003 - VNF Package Management interface @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnfpkgm/v1" @@ -48,15 +48,14 @@ paths: ############################################################################### # VNF packages # ############################################################################### - '/vnf_packages': + '/onboarded_vnf_packages': #SOL003 location: 10.4.2 get: description: > - Query VNF Package Info - - - The GET method queries the information of the VNF packages matching - the filter. + Query VNF Package Info. + The GET method queries the information of the VNF packages matching the filter. + This method shall follow the provisions specified in the tables 10.4.2.3.2-1 and 10.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -74,7 +73,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfPkgInfo and in data @@ -86,28 +85,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfPkgInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: @@ -120,7 +119,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + NFVO if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -136,13 +135,16 @@ paths: description: > 200 OK - Information about zero or more VNF packages was queried successfully. - The response body shall contain in an array the VNF package info - representations that match the attribute filter, i.e. zero or more - VNF package representations as defined in clause 10.5.2.2. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when information about zero or more VNF packages has been queried successfully. + The response body shall contain in an array the VNF package info representations that match the + attribute filter, i.e. zero or more VNF package info representations as defined in clause 10.5.2.2. + If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" + (if supported) or "exclude_default" URI parameters was supplied in the request, the data in the + response body shall have been transformed according to the rules specified in clauses 5.2.2 and + 5.3.2 of ETSI GS NFV-SOL 013, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From ca85354befa3ba43b3abe4f413c6bd47fa39bb3e Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 14:43:24 +0200 Subject: [PATCH 051/147] SOL003_209/SOL003_211: VNF Packages methods updated --- .../VNFPackageManagement.yaml | 111 ++++++++++++++++-- 1 file changed, 104 insertions(+), 7 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index eb696bfe..15ae1d81 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -184,17 +184,20 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### - # Individual VNF package # + # Individual VNF package # ############################################################################### '/vnf_packages/{vnfPkgId}': parameters: @@ -210,10 +213,100 @@ paths: required: true get: description: > - Query VNF Package Info + Query VNF Package Info. + The GET method reads the information of an individual VNF package. + This method shall follow the provisions specified in the tables + 10.4.3.3.2-1 and 10.4.3.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + Shall be returned when information of the VNF package has been read successfully. + The response body shall contain the VNF package info representation defined in clause 10.5.2.2. + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + '/onboarded_vnf_packages/{vnfdId}': + parameters: + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Query VNF Package Info. The GET method reads the information of an individual VNF package. + This method shall follow the provisions specified in the tables + 10.4.3.3.2-1 and 10.4.3.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -240,7 +333,8 @@ paths: description: > 200 OK - Information of the selected VNF packages. + Shall be returned when information of the VNF package has been read successfully. + The response body shall contain the VNF package info representation defined in clause 10.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. @@ -272,7 +366,7 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 416: @@ -281,6 +375,9 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNFD in an individual VNF package # ############################################################################### -- GitLab From 6d91c905cb3267a28c36ad816f25bee5f6c1c343 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 14:51:26 +0200 Subject: [PATCH 052/147] SOL003_212/SOL003_214: Individual VNF Package methods updated --- .../VNFPackageManagement.yaml | 162 +++++++++++++++++- 1 file changed, 153 insertions(+), 9 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 15ae1d81..e8edef92 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -452,13 +452,13 @@ paths: description: > 200 OK - On success, the content of the VNFD is returned. - The payload body shall contain a copy of the file representing the - VNFD or a ZIP file that contains the file or multiple files - representing the VNFD, as specified above. - The "Content-Type" HTTP header shall be set according to the - format of the returned file, i.e. to "text/plain" for a YAML file - or to "application/zip" for a ZIP file. + Shall be returned when the content of the VNFD has been read successfully. + The payload body shall contain a copy of the file representing the VNFD or + a ZIP file that contains the file or multiple files representing the VNFD, + as specified above. + The "Content-Type" HTTP header shall be set according to the format of the + returned file, i.e. to "text/plain" for a YAML file or to "application/zip" + for a ZIP file. headers: Content-Type: description: The MIME type of the body of the response. @@ -491,17 +491,161 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + description: > + If the "Accept" header does not contain at least one name of + a content type for which the NFVO can provide a representation + of the VNFD, the NFVO shall respond with this response code. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + description: > + Shall be returned upon the following error: The operation cannot + be executed currently, due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the + VNF package has a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + + '/onboarded_vnf_packages/{vnfdId}/vnfd': + parameters: + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Query VNF Package Info + + + The GET method reads the content of the VNFD within a VNF package. + The VNFD can be implemented as a single file or as a collection of + multiple files. If the VNFD is implemented in the form of multiple + files, a ZIP file embedding these files shall be returned. If the VNFD + is implemented as a single file, either that file or a ZIP file + embedding that file shall be returned. + The selection of the format is controlled by the "Accept" HTTP header + passed in the GET request. + * If the "Accept" header contains only "text/plain" and the VNFD is + implemented as a single file, the file shall be returned; + otherwise, an error message shall be returned. + * If the "Accept" header contains only "application/zip", the single + file or the multiple files that make up the VNFD shall be returned + embedded in a ZIP file. + * If the "Accept" header contains both "text/plain" and + "application/zip", it is up to the NFVO to choose the format to + return for a single-file VNFD; for a multi-file VNFD, a ZIP file + shall be returned. + The default format of the ZIP file shall be the one specified in + ETSI GS NFV-SOL 004 where only the YAML files representing the VNFD, + and information needed to navigate the ZIP file and to identify the + file that is the entry point for parsing the VNFD (such as TOSCA-meta + or manifest files or naming conventions) are included. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Permitted values: "text/plain" and/or "application/zip" + Reference: IETF RFC 7231 + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - text/plain+application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Shall be returned when the content of the VNFD has been read successfully. + The payload body shall contain a copy of the file representing the VNFD or + a ZIP file that contains the file or multiple files representing the VNFD, + as specified above. + The "Content-Type" HTTP header shall be set according to the format of the + returned file, i.e. to "text/plain" for a YAML file or to "application/zip" + for a ZIP file. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + enum: + - text/plain + - application/zip + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/406" + description: > + If the "Accept" header does not contain at least one name of + a content type for which the NFVO can provide a representation + of the VNFD, the NFVO shall respond with this response code. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + description: > + Shall be returned upon the following error: The operation cannot + be executed currently, due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the + VNF package has a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNF package content # ############################################################################### -- GitLab From 24a4b0be978050da8a30785e44a19e4ad58c6f92 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 14:59:12 +0200 Subject: [PATCH 053/147] SOL003_215/SOL003_217: VNF Package content methods updated --- .../VNFPackageManagement.yaml | 199 ++++++++++++++++-- 1 file changed, 180 insertions(+), 19 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index e8edef92..2f6131f7 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -663,11 +663,12 @@ paths: required: true get: description: > - Fetch VNF Package - - + Fetch VNF Package. The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO. + This method shall follow the provisions specified in the tables + 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request + and response data structures, and response codes. parameters: - name: Accept description: > @@ -705,11 +706,10 @@ paths: description: > 200 OK - On success, a copy of the VNF package file is returned. + Shall be returned when the whole content of the VNF package file has been read successfully. The response body shall include a copy of the VNF package file. - The "Content-Type HTTP" header shall be set according to the type - of the file, i.e. to "application/zip" for a VNF Package as - defined in ETSI GS NFV-SOL 004. + The "Content-Type HTTP" header shall be set according to the type of the file, + i.e. to "application/zip" for a VNF Package as defined in ETSI GS NFV SOL 004. headers: Content-Type: description: The MIME type of the body of the response. @@ -734,15 +734,12 @@ paths: description: > 206 PARTIAL CONTENT - On success, if the NFVO supports range requests, a single - consecutive byte range from the content of the VNF package file is - returned. - The response body shall contain the requested part of the VNF - package file. - The "Content-Range" HTTP header shall be provided according to - IETF RFC 7233. - The "Content-Type" HTTP header shall be set as defined above for - the "200 OK" response. + If the NFVO supports range requests, this response shall be returned when + a single consecutive byte range from the content of the VNF package file + has been read successfully according to the request. + The response body shall contain the requested part of the VNF package file. + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for the "200 OK" response. headers: Content-Range: type: string @@ -776,17 +773,181 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the VNF package has + a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/416" + description: > + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte range passed in the "Range" header + did not match any available byte range in the VNF package file (e.g. "access after end of file"). + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + + '/onboarded_vnf_packages/{vnfdId}/package_content': + parameters: + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Fetch VNF Package. + The GET method fetches the content of a VNF package identified by the + VNF package identifier allocated by the NFVO. + This method shall follow the provisions specified in the tables + 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request + and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Shall be returned when the whole content of the VNF package file has been read successfully. + The response body shall include a copy of the VNF package file. + The "Content-Type HTTP" header shall be set according to the type of the file, + i.e. to "application/zip" for a VNF Package as defined in ETSI GS NFV SOL 004. + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 206: + description: > + 206 PARTIAL CONTENT + + If the NFVO supports range requests, this response shall be returned when + a single consecutive byte range from the content of the VNF package file + has been read successfully according to the request. + The response body shall contain the requested part of the VNF package file. + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for the "200 OK" response. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the VNF package has + a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 416: + description: > + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte range passed in the "Range" header + did not match any available byte range in the VNF package file (e.g. "access after end of file"). + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF package artifact # ############################################################################### -- GitLab From 0387664f2f6c94e054ef62997d1886ba5304a89c Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 15:07:49 +0200 Subject: [PATCH 054/147] SOL003_218/SOL003_220: Individual VNF Package artifact methods updated --- .../VNFPackageManagement.yaml | 225 ++++++++++++++++-- 1 file changed, 206 insertions(+), 19 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 2f6131f7..9b5bbe4a 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -956,7 +956,7 @@ paths: - name: artifactPath description: > Sequence of one or more path segments representing the path of - the artifact within the VNF package. + the artifact within the VNF package, relative to the root of the package. EXAMPLE: foo/bar/run.sh This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts" entry in the body of the @@ -977,11 +977,11 @@ paths: required: true get: description: > - Fetch VNF Package Artifacts - - - The GET method fetches the content of an artifact within a VNF - package. + Fetch VNF Package Artifacts. + The GET method fetches the content of an artifact within a VNF package. + This method shall follow the provisions specified in the tables + 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request + and response data structures, and response codes. parameters: - name: Accept description: > @@ -1016,13 +1016,11 @@ paths: description: > 200 OK - On success, the content of the artifact is returned. - The payload body shall contain a copy of the artifact file from - the VNF package, as defined by ETSI GS NFV-SOL 004. - The "Content-Type" HTTP header shall be set according to the - content type of the artifact file. If the content type cannot be - determined, the header shall be set to the value - "application/octet-stream". + Shall be returned when the whole content of the artifact file has been read successfully. + The payload body shall contain a copy of the artifact file from the VNF package, + as defined by ETSI GS NFV-SOL 004. + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. + If the content type cannot be determined, the header shall be set to the value "application/octet-stream". headers: Content-Type: description: > @@ -1052,9 +1050,10 @@ paths: description: > 206 PARTIAL CONTENT - On success, if the NFVO supports range requests, a single - consecutive byte range from the content of the VNF package file is - returned. + If the NFVO supports range requests, this response shall be returned + when a single consecutive byte range from the content of the artifact + file, if the NFVO supports range requests has been read successfully + according to the request. The response body shall contain the requested part of the VNF package file. The "Content-Range" HTTP header shall be provided according to @@ -1094,17 +1093,205 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + description: > + Shall be returned upon the following error: The operation cannot + be executed currently, due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the + VNF package has a value different from "ONBOARDED". + The response body shall contain a ProblemDetails structure, + in which the "detail" attribute shall convey more information + about the error. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/416" + description: > + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte range passed in the + "Range" header did not match any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails structure. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + + '/onboarded_vnf_packages/{vnfdId}/artifacts/{artifactPath}': + parameters: + - name: artifactPath + description: > + Sequence of one or more path segments representing the path of + the artifact within the VNF package, relative to the root of the package. + EXAMPLE: foo/bar/run.sh + This identifier can be retrieved from the "artifactPath" attribute + of the applicable "additionalArtifacts" entry in the body of the + response to a GET request querying the "Individual VNF package" or + the "VNF packages" resource. + in: path + type: string + required: true + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Fetch VNF Package Artifacts. + The GET method fetches the content of an artifact within a VNF package. + This method shall follow the provisions specified in the tables + 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request + and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Shall be returned when the whole content of the artifact file has been read successfully. + The payload body shall contain a copy of the artifact file from the VNF package, + as defined by ETSI GS NFV-SOL 004. + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. + If the content type cannot be determined, the header shall be set to the value "application/octet-stream". + headers: + Content-Type: + description: > + The MIME type of the body of the response. + The "Content-Type" HTTP header shall be set according to the + content type of the artifact file. If the content type cannot + be determined, the header shall be set to the value + "application/octet-stream". + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 206: + description: > + 206 PARTIAL CONTENT + + If the NFVO supports range requests, this response shall be returned + when a single consecutive byte range from the content of the artifact + file, if the NFVO supports range requests has been read successfully + according to the request. + The response body shall contain the requested part of the VNF + package file. + The "Content-Range" HTTP header shall be provided according to + IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for + the "200 OK" response. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + description: > + Shall be returned upon the following error: The operation cannot + be executed currently, due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the + VNF package has a value different from "ONBOARDED". + The response body shall contain a ProblemDetails structure, + in which the "detail" attribute shall convey more information + about the error. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 416: + description: > + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte range passed in the + "Range" header did not match any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails structure. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### -- GitLab From 23cb56d3a8ca31725dff6a8a0d8d4b7b6b9c7487 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 15:15:04 +0200 Subject: [PATCH 055/147] SOL003_221 -> SOL003_223: Subscriptions methods updated --- .../VNFPackageManagement.yaml | 79 ++++++++++++------- 1 file changed, 49 insertions(+), 30 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 9b5bbe4a..728388d8 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1302,15 +1302,22 @@ paths: The POST method creates a new subscription. - Creation of two subscription resources with the same callbackURI and - the same filter can result in performance degradation and will provide - duplicates of notifications to the VNFM, and might make sense only in - very rare use cases. Consequently, the NFVO may either allow creating - a subscription resource if another subscription resource with the same - filter and callbackUri already exists (in which case it shall return - the “201 Created” response code), or may decide to not create a - duplicate subscription resource (in which case it shall return a - “303 See Other” response code referencing the existing subscription + This method shall follow the provisions specified in the tables + 10.4.7.3.1-1 and 10.4.7.3.1-2 for URI query parameters, request + and response data structures, and response codes. + As the result of successfully executing this method, a new + "Individual subscription" resource as defined in clause 10.4.8 + shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same + callbackURI and the same filter can result in performance degradation + and will provide duplicates of notifications to the VNFM, and might + make sense only in very rare use cases. Consequently, the NFVO may + either allow creating a new "Individual subscription" resource if + another "Individual subscription" resource with the same filter and + callbackUri already exists (in which case it shall return the + "201 Created" response code), or may decide to not create a duplicate + "Individual subscription" resource (in which case it shall return a + "303 See Other" response code referencing the existing "Individual subscription" resource with the same filter and callbackUri). parameters: - name: PkgmSubscriptionRequest @@ -1354,9 +1361,9 @@ paths: description: > 201 CREATED - Representation of the created subscription resource. - The HTTP response shall include a "Location" HTTP header that - points to the created subscription resource. + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created "Individual subscription" resource. + The HTTP response shall include a "Location" HTTP header that points to the created resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1386,6 +1393,14 @@ paths: items: $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the same callbackURI and the same filter + already exists and the policy of the NFVO is to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains the resource + URI of the existing "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -1396,7 +1411,7 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 416: @@ -1405,14 +1420,16 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Subscription Information - - - The GET method queries the list of active subscriptions of the - functional block that invokes the method. It can be used e.g. for - resynchronization after error situations. + Query Subscription Information. + The GET method queries the list of active subscriptions of the functional block + that invokes the method. It can be used e.g. for resynchronization after error situations. + This method shall follow the provisions specified in the tables 10.4.7.3.2-1 and 10.4.7.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1430,7 +1447,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the PkgmSubscription and in @@ -1442,8 +1459,8 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be - supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + supported by the NFVO if the NFVO supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1458,14 +1475,16 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The representations body shall contain in an array the representations - of all active subscriptions of the functional block that invokes the - method , i.e. zero or more representations of VNF package Management - subscriptions as defined in clause 10.5.2.4. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active + subscriptions of the functional block that invokes the method, i.e. zero or more + representations of VNF package management subscriptions as defined in clause 10.5.2.4. + If the "filter" URI parameter was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in clause 5.2.2 + of ETSI GS NFV-SOL 013 + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From ed669390d85d85f0899c2dcad3b81af54533ec90 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 15:22:12 +0200 Subject: [PATCH 056/147] SOL003_225/SOL003_27/SOL003_228: Individual subscription methods updated --- .../VNFPackageManagement.yaml | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 728388d8..4677ecf4 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1298,9 +1298,7 @@ paths: '/subscriptions': post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. This method shall follow the provisions specified in the tables 10.4.7.3.1-1 and 10.4.7.3.1-2 for URI query parameters, request @@ -1414,8 +1412,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: @@ -1524,15 +1522,18 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -1544,17 +1545,18 @@ paths: Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request - creating a new subscription resource. It can also be retrieved from + creating a new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method reads an individual subscription. + This method shall follow the provisions specified in the tables + 10.4.8.3.2-1 and 10.4.8.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1581,7 +1583,8 @@ paths: description: > 200 OK - Representation of the subscription resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1613,21 +1616,30 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate subscription - - + Terminate subscription. The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 10.4.8.3.5-1 and 10.4.8.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual subscription" resource + shall not exist any longer. This means that no notifications for that subscription shall be + sent to the formerly-subscribed API consumer. + + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed + API consumer for a certain time period after the deletion. parameters: - name: Authorization description: > @@ -1647,7 +1659,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. headers: WWW-Authenticate: description: > @@ -1672,12 +1684,14 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file -- GitLab From 8df3a1e476498ec95dc9d21748d5e49e7539ef1b Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 16:28:01 +0200 Subject: [PATCH 057/147] SOL003: general consolidation of responses codes --- .../VNFLifecycleManagementNotification.yaml | 11 ++-- .../VNFPackageManagementNotification.yaml | 64 ++++++++++--------- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 4677af39..1764f374 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -40,7 +40,7 @@ produces: paths: ############################################################################### - # Notification endpoint VnfLcmOperationOccurrenceNotification # + # Notification endpoint VnfLcmOperationOccurrenceNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification': post: @@ -138,7 +138,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -269,7 +270,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -400,7 +402,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 60214c89..b9c9f24c 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Package Management Notification interface description: > SOL003 - VNF Package Management Notification interface @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,10 +46,11 @@ paths: #SOL003 location: 10.4.9 post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the tables 10.4.9.3.1-1 and 10.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: VnfPackageOnboardingNotification description: A notification about on-boarding of a VNF package. @@ -82,7 +83,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -104,8 +105,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: @@ -114,8 +115,10 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client + e.g. during subscription. + This method shall follow the provisions specified in the tables 10.4.9.3.2-1 and 10.4.9.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -135,7 +138,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -158,14 +161,15 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint VnfPackageChangeNotification # ############################################################################### @@ -173,10 +177,11 @@ paths: #SOL003 location: 10.4.9 post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the tables 10.4.9.3.1-1 and 10.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: VnfPackageChangeNotification description: > @@ -210,7 +215,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -232,8 +237,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: @@ -242,8 +247,10 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client + e.g. during subscription. + This method shall follow the provisions specified in the tables 10.4.9.3.2-1 and 10.4.9.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -263,7 +270,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -286,12 +293,11 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file -- GitLab From 83169a0bd62d7327d4f3f5511e48bc1a4615248c Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 16:38:18 +0200 Subject: [PATCH 058/147] SOL003_232/SOL003_233: VNF Package management datatypes updated --- .../definitions/VNFPackageManagement_def.yaml | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml index 12a536c5..f02bb6fd 100644 --- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml @@ -130,8 +130,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" vnfd: description: > - Link to the VNFD resource. This link shall be present after the - VNF package content is on-boarded. + Link to the "VNFD in an individual VNf package" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" packageContent: description: > @@ -140,7 +139,7 @@ definitions: PackageOnboardingStateType: description: > - CREATED: The VNF package resource has been created. + CREATED: The "Individual VNF package" resource has been created. UPLOADING: The associated VNF package content is being uploaded. PROCESSING: The associated VNF package content is being processed, e.g., validation. @@ -306,12 +305,22 @@ definitions: description: > Link to the resource representing the VNF package to which the notified change applies, i.e. the individual on-boarded VNF package - resource that represents the VNF package. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + resource that represents the VNF package, identified by the "vnfPkgId" + identifier which is managed by the NFVO. This attribute shall be provided + by the NFVO but is deprecated and can be removed in future versions + of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" + vnfPackageByVnfdId: + description: > + Link to the resource representing the VNF package to which the notified + change applies, i.e. the individual VNF package resource that represents + the VNF package, identified by the "vnfdId" identifier which is assigned + by the VNF vendor. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" subscription: description: > Link to the related subscription. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" PkgmSubscription: description: > @@ -325,7 +334,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource. + Identifier of this "Individual subscription" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > @@ -371,8 +380,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - Authentication parameters to configure the use of Authorization - when sending notifications corresponding to this subscription. + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this subscription, as defined + in clause 8.3.4 of ETSI GS NFV-SOL 013. This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" @@ -389,7 +399,11 @@ definitions: artifactPath: description: > Path in the VNF package, which identifies the artifact and also - allows to access a copy of the artifact. + allows to access a copy of the artifact. The value of this attribute + shall start with the name of the first segment in the path, + i.e. it shall not be prefixed by path separator characters such as "." and "/". + + EXAMPLE: foo/bar/run.sh type: string checksum: description: > -- GitLab From fe14bcb4fed036c97aab6314861da1c7c54e5962 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 16:49:12 +0200 Subject: [PATCH 059/147] SOL003_239/SOL003_240: VirtualisedResourcesQuotaAvailableNotification Subscriptions methods updated --- ...edResourcesQuotaAvailableNotification.yaml | 80 +++++++++++-------- ...uotaAvailableNotificationNotification.yaml | 4 +- 2 files changed, 50 insertions(+), 34 deletions(-) diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 20aa281e..243bb19c 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vrqan/v1" @@ -51,19 +51,21 @@ paths: '/subscriptions': post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - Creation of two subscription resources with the same callbackURI and - the same filter can result in performance degradation and will provide - duplicates of notifications to the VNFM, and might make sense only in - very rare use cases. Consequently, the NFVO may either allow creating - a subscription resource if another subscription resource with the same - filter and callbackUri already exists (in which case it shall return - the “201 Created” response code), or may decide to not create a - duplicate subscription resource (in which case it shall return a - “303 See Other” response code referencing the existing subscription + This method shall follow the provisions specified in the tables 11.4.2.3.1-1 and 11.4.2.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual subscription" + resource as defined in clause 11.4.3 shall have been created. This method shall not + trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and + the same filter can result in performance degradation and will provide duplicates + of notifications to the VNFM, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a new "Individual subscription" + resource if another "Individual subscription" resource with the same filter and + callbackUri already exists (in which case it shall return the "201 Created" response code), + or may decide to not create a duplicate "Individual subscription" resource (in which case + it shall return a "303 See Other" response code referencing the existing "Individual subscription" resource with the same filter and callbackUri). parameters: - name: Accept @@ -105,9 +107,9 @@ paths: description: > 201 CREATED - Representation of the created subscription resource. - The HTTP response shall include a "Location" HTTP header that - points to the created subscription resource. + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created "Individual subscription" resource. + The HTTP response shall include a "Location" HTTP header that points to the created resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -135,6 +137,14 @@ paths: schema: $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the same callbackURI and the same + filter already exists and the policy of the NFVO is to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains the resource URI + of the existing "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -146,19 +156,24 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Subscription Information - - - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + Query Subscription Information. + The GET method queries the list of active subscriptions of the functional block that invokes the method. + It can be used e.g. for resynchronization after error situations. + This method shall follow the provisions specified in the tables 11.4.2.3.2-1 and 11.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -169,7 +184,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VrQuotaAvailSubscription @@ -182,7 +197,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -197,14 +212,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The representations body shall contain in an array the representations - of all active subscriptions of the functional block that invokes the - method, i.e. zero or more representations of virtualized resource quota - available subscriptions as defined in clause 11.5.2.3. - If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active + subscriptions of the functional block that invokes the method, i.e. zero or more + representations of virtualised resource quota available subscriptions as defined in clause 11.5.2.3. + If the "filter" URI parameter was supplied in the request, the data in the response body shall + have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml index 1bdef906..64432033 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" -- GitLab From 4d4800b502602490b1719721224c3279d036c9e2 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 16:53:13 +0200 Subject: [PATCH 060/147] SOL003_245/SOL003_246: Individual subscription methods updated --- ...edResourcesQuotaAvailableNotification.yaml | 49 ++++++++++++++----- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 243bb19c..8acca4d0 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -280,12 +280,19 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -296,17 +303,17 @@ paths: Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new subscription resource. It can also be retrieved from the "id" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method reads an individual subscription. + This method shall follow the provisions specified in the tables 11.4.3.3.2-1 and 11.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -325,9 +332,10 @@ paths: responses: 200: description: > - OK + 200 OK - Representation of the subscription resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource headers: Content-Type: description: > @@ -346,18 +354,30 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate subscription - - + Terminate subscription. The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 11.4.3.3.5-1 and 11.4.3.3.5-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual subscription" resource + shall not exist any longer. This means that no notifications for that subscription shall be + sent to the formerly-subscribed API consumer. + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed + API consumer for a certain time period after the deletion. parameters: - name: Authorization description: > @@ -371,8 +391,7 @@ paths: description: > No Content - The subscription resource was deleted successfully. - The response body shall be empty. + Shall be returned when the "Individual subscription" resource has been deleted successfully. headers: Content-Type: description: > @@ -387,13 +406,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - - + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file -- GitLab From b1b0c3e322f39a3b6bcc7bbe5c93d0e48a250188 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 28 Jun 2019 16:57:43 +0200 Subject: [PATCH 061/147] SOL003_247/SOL003_249: Notification methods and datatypes udated --- ...uotaAvailableNotificationNotification.yaml | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml index 64432033..49bc2064 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml @@ -45,10 +45,11 @@ paths: '/URI-is-provided-by-the-client-when-creating-the-subscription': post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + The POST method delivers a notification from API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the tables 11.4.4.3.1-1 and 11.4.4.3.1-2 for URI + query parameters, request and response data structures, and response codes. parameters: - name: VrQuotaAvailNotification description: A notification related to the availability of the virtualised resources quota. @@ -82,7 +83,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: Version: description: > @@ -106,10 +107,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 11.4.4.3.2-1 and 11.4.4.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Version description: > @@ -122,7 +126,8 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + TheShall be returned to indicate that the notification endpoint whas been tested successfully. + The response body shall be empty. headers: Version: description: > @@ -145,5 +150,4 @@ paths: 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file -- GitLab From 10c7b54856863a88b48da071d9ee690da1d256fb Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 12 Jul 2019 10:32:09 +0200 Subject: [PATCH 062/147] SOL003: VNF Package management datatypes consolidation --- .../VNFPackageManagement.yaml | 4 + .../definitions/VNFPackageManagement_def.yaml | 482 +++++++++--------- .../responses/VNFPackageManagement_resp.yaml | 76 --- .../VNFPackageManagementNotification_def.yaml | 134 +++-- ...sourcesQuotaAvailableNotification_def.yaml | 9 +- 5 files changed, 301 insertions(+), 404 deletions(-) delete mode 100644 src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 4677ecf4..46b84017 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1098,6 +1098,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that "onboardingState" of the @@ -1268,6 +1270,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that "onboardingState" of the diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml index f02bb6fd..3c02f843 100644 --- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml @@ -2,24 +2,6 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - Checksum: - description: > - This type represents the checksum of a VNF package or an artifact file. - type: object - required: - - algorithm - - hash - properties: - algorithm: - description: > - Name of the algorithm used to generate the checksum, as defined in - ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512. - type: string - hash: - description: > - The hexadecimal value of the checksum. - type: string - VnfPkgInfo: description: > This type represents the information of an VNF package. @@ -137,190 +119,33 @@ definitions: Link to the "VNF package content" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - PackageOnboardingStateType: - description: > - CREATED: The "Individual VNF package" resource has been created. - UPLOADING: The associated VNF package content is being uploaded. - PROCESSING: The associated VNF package content is being processed, e.g., - validation. - ONBOARDED: The associated VNF package content has been successfully - on-boarded. - type: string - enum: - - CREATED - - UPLOADING - - PROCESSING - - ONBOARDED - - PackageOperationalStateType: - description: > - - ENABLED: The VNF package is enabled, i.e. it can be used for - instantiation of new VNF instances. - - DISABLED: The VNF package is disabled, i.e. it cannot be used for - further VNF instantiation requests (unless and until the VNF package - is re-enabled). - type: string - enum: - - ENABLED - - DISABLED - - PackageUsageStateType: - description: > - - IN_USE: VNF instances instantiated from this VNF package exist. - - NOT_IN_USE: No existing VNF instance is instantiated from this VNF - package. - - PkgmNotificationsFilter: + PkgmSubscriptionRequest: description: > - This type represents a subscription filter related to notifications - related to VNF package management. - At a particular nesting level in the filter structure, the following - applies: All attributes shall match in order for the filter to match - (logical "and" between different filter attributes). If an attribute - is an array, the attribute shall match if at least one of the values - in the array matches (logical "or" between the values of one filter - attribute). + This type represents a subscription request related to VNF package + management notifications about VNF package on-boarding or changes. type: object + required: + - callbackUri properties: - notificationTypes: - description: > - Match particular notification types. - Permitted values: - - VnfPackageOnboardingNotification - - VnfPackageChangeNotification - The permitted values of the "notificationTypes" attribute are - spelled exactly as the names of the notification types to - facilitate automated code generation systems. - type: array - items: - type: string - enum: - - VnfPackageOnboardingNotification - - VnfPackageChangeNotification - vnfProductsFromProviders: - description: > - If present, match VNF packages that contain VNF products from - certain providers. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. - type: array - items: - type: object - required: - - vnfProvider - properties: - vnfProvider: - description: > - Name of the VNF provider to match. - type: string - vnfProducts: - description: > - If present, match VNF packages that contain VNF products with - certain product names, from one particular provider. - type: array - items: - type: object - required: - - vnfProductName - properties: - vnfProductName: - description: > - Name of the VNF product to match. - type: string - versions: - description: > - If present, match VNF packages that contain VNF products - with certain versions and a certain product name, from - one particular provider. - type: array - items: - type: object - required: - - vnfSoftwareVersion - properties: - vnfSoftwareVersion: - description: > - VNF software version to match. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdVersions: - description: > - If present, match VNF packages that contain VNF - products with certain VNFD versions, a certain - software version and a certain product name, from - one particular provider. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdId: - description: > - Match VNF packages with a VNFD identifier listed in the attribute. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfPkgId: + filter: description: > - Match VNF packages with a package identifier listed in the - attribute. - May be present if the "notificationTypes" attribute contains the - value "VnfPackageChangeNotification", and shall be absent - otherwise. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operationalState: + Filter settings for this subscription, to define the subset of all + notifications this subscription relates to. + A particular notification is sent to the subscriber if the filter + matches, or if there is no filter. + $ref: "#/definitions/PkgmNotificationsFilter" + callbackUri: description: > - Match particular operational state of the VNF package. - May be present if the "notificationTypes" attribute contains the - value "VnfPackageChangeNotification", and shall be absent - otherwise. - $ref: "#/definitions/PackageOperationalStateType" - usageState: + The URI of the endpoint to send the notification to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" + authentication: description: > - Match particular usage state of the VNF package. - May be present if the "notificationTypes" attribute contains the - value "VnfPackageChangeNotification", and shall be absent - otherwise. - $ref: "#/definitions/PackageUsageStateType" - - PkgmLinks: - description: > - This type represents the links to resources that a VNF package - management notification can contain. - type: object - required: - - vnfPackage - - subscription - properties: - vnfPackage: - description: > - Link to the resource representing the VNF package to which the - notified change applies, i.e. the individual on-boarded VNF package - resource that represents the VNF package, identified by the "vnfPkgId" - identifier which is managed by the NFVO. This attribute shall be provided - by the NFVO but is deprecated and can be removed in future versions - of the present document. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" - vnfPackageByVnfdId: - description: > - Link to the resource representing the VNF package to which the notified - change applies, i.e. the individual VNF package resource that represents - the VNF package, identified by the "vnfdId" identifier which is assigned - by the VNF vendor. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" - subscription: - description: > - Link to the related subscription. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this subscription, as defined + in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the subscriber requires + authorization of notifications. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" PkgmSubscription: description: > @@ -359,62 +184,6 @@ definitions: URI of this resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - PkgmSubscriptionRequest: - description: > - This type represents a subscription request related to VNF package - management notifications about VNF package on-boarding or changes. - type: object - required: - - callbackUri - properties: - filter: - description: > - Filter settings for this subscription, to define the subset of all - notifications this subscription relates to. - A particular notification is sent to the subscriber if the filter - matches, or if there is no filter. - $ref: "#/definitions/PkgmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" - authentication: - description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription, as defined - in clause 8.3.4 of ETSI GS NFV-SOL 013. - This attribute shall only be present if the subscriber requires - authorization of notifications. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" - - VnfPackageArtifactInfo: - description: > - This type represents an artifact other than a software image which is - contained in a VNF package. - type: object - required: - - artifactPath - - checksum - properties: - artifactPath: - description: > - Path in the VNF package, which identifies the artifact and also - allows to access a copy of the artifact. The value of this attribute - shall start with the name of the first segment in the path, - i.e. it shall not be prefixed by path separator characters such as "." and "/". - - EXAMPLE: foo/bar/run.sh - type: string - checksum: - description: > - Checksum of the artifact file. - $ref: "#/definitions/Checksum" - metadata: - description: > - The metadata of the artifact that are available in the VNF package, - such as Content type, size, creation date, etc. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VnfPackageSoftwareImageInfo: description: > This type represents an artifact contained in a VNF package which @@ -466,7 +235,7 @@ definitions: - DOCKER: docker container format - OVA: OVF package in a tarfile - OVF: OVF container format - The list of permitted values was taken from "Container formats" in + The list of permitted values was taken from "Container formats" in http://docs.openstack.org/image-guide/image-formats.html type: string enum: @@ -494,7 +263,7 @@ definitions: - VHD: a common disk image format - VHDX: enhanced version of VHD format - VMDK: a common disk image format - The list of permitted values was adapted from "Disk formats" in + The list of permitted values was adapted from "Disk formats" in http://docs.openstack.org/image-guide/image-formats.html type: string enum: @@ -533,4 +302,207 @@ definitions: allows to access a copy of the image artifact. type: string - \ No newline at end of file + VnfPackageArtifactInfo: + description: > + This type represents an artifact other than a software image which is + contained in a VNF package. + type: object + required: + - artifactPath + - checksum + properties: + artifactPath: + description: > + Path in the VNF package, which identifies the artifact and also + allows to access a copy of the artifact. The value of this attribute + shall start with the name of the first segment in the path, + i.e. it shall not be prefixed by path separator characters such as "." and "/". + + EXAMPLE: foo/bar/run.sh + type: string + checksum: + description: > + Checksum of the artifact file. + $ref: "#/definitions/Checksum" + metadata: + description: > + The metadata of the artifact that are available in the VNF package, + such as Content type, size, creation date, etc. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + PkgmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications + related to VNF package management. + At a particular nesting level in the filter structure, the following + applies: All attributes shall match in order for the filter to match + (logical "and" between different filter attributes). If an attribute + is an array, the attribute shall match if at least one of the values + in the array matches (logical "or" between the values of one filter + attribute). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. + Permitted values: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + The permitted values of the "notificationTypes" attribute are + spelled exactly as the names of the notification types to + facilitate automated code generation systems. + type: array + items: + type: string + enum: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + vnfProductsFromProviders: + description: > + If present, match VNF packages that contain VNF products from + certain providers. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + type: object + required: + - vnfProvider + properties: + vnfProvider: + description: > + Name of the VNF provider to match. + type: string + vnfProducts: + description: > + If present, match VNF packages that contain VNF products with + certain product names, from one particular provider. + type: array + items: + type: object + required: + - vnfProductName + properties: + vnfProductName: + description: > + Name of the VNF product to match. + type: string + versions: + description: > + If present, match VNF packages that contain VNF products + with certain versions and a certain product name, from + one particular provider. + type: array + items: + type: object + required: + - vnfSoftwareVersion + properties: + vnfSoftwareVersion: + description: > + VNF software version to match. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + vnfdVersions: + description: > + If present, match VNF packages that contain VNF + products with certain VNFD versions, a certain + software version and a certain product name, from + one particular provider. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + vnfdId: + description: > + Match VNF packages with a VNFD identifier listed in the attribute. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfPkgId: + description: > + Match VNF packages with a package identifier listed in the + attribute. + May be present if the "notificationTypes" attribute contains the + value "VnfPackageChangeNotification", and shall be absent + otherwise. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operationalState: + description: > + Match particular operational state of the VNF package. + May be present if the "notificationTypes" attribute contains the + value "VnfPackageChangeNotification", and shall be absent + otherwise. + $ref: "#/definitions/PackageOperationalStateType" + usageState: + description: > + Match particular usage state of the VNF package. + May be present if the "notificationTypes" attribute contains the + value "VnfPackageChangeNotification", and shall be absent + otherwise. + $ref: "#/definitions/PackageUsageStateType" + + Checksum: + description: > + This type represents the checksum of a VNF package or an artifact file. + type: object + required: + - algorithm + - hash + properties: + algorithm: + description: > + Name of the algorithm used to generate the checksum, as defined in + ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512. + type: string + hash: + description: > + The hexadecimal value of the checksum. + type: string + + PackageOperationalStateType: + description: > + - ENABLED: The VNF package is enabled, i.e. it can be used for + instantiation of new VNF instances. + - DISABLED: The VNF package is disabled, i.e. it cannot be used for + further VNF instantiation requests (unless and until the VNF package + is re-enabled). + type: string + enum: + - ENABLED + - DISABLED + + PackageUsageStateType: + description: > + - IN_USE: VNF instances instantiated from this VNF package exist. + - NOT_IN_USE: No existing VNF instance is instantiated from this VNF + package. + type: string + enum: + - IN_USE + - NOT_IN_USE + + PackageOnboardingStateType: + description: > + CREATED: The "Individual VNF package" resource has been created. + UPLOADING: The associated VNF package content is being uploaded. + PROCESSING: The associated VNF package content is being processed, e.g., + validation. + ONBOARDED: The associated VNF package content has been successfully + on-boarded. + type: string + enum: + - CREATED + - UPLOADING + - PROCESSING + - ONBOARDED \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml b/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml deleted file mode 100644 index c13fdc6f..00000000 --- a/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml +++ /dev/null @@ -1,76 +0,0 @@ -responses: - 406: - description: > - Not Acceptable - - If the "Accept" header does not contain at least one name of a content - type for which the NFVO can provide a representation of the VNFD, the - NFVO shall respond with this response code. - The "ProblemDetails" structure may be included with the "detail" - attribute providing more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409: - description: > - Conflict - - Error: The operation cannot be executed currently, due to a conflict - with the state of the resource. - Typically, this is due to the fact that "onboardingState" of the VNF - package has a value different from "ONBOARDED". - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute shall convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 416: - description: > - Requested Range Not Satisfiable - - The byte range passed in the "Range" header did not match any available - byte range in the VNF package file (e.g. "access after end of file"). - The response body may contain a ProblemDetails structure. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml index b0e98acb..7f70a108 100644 --- a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml +++ b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml @@ -2,41 +2,14 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - PackageChangeType: - description: > - - OP_STATE_CHANGE: The "operationalState" attribute has been changed. - - PKG_DELETE: The VNF package has been deleted. - type: string - enum: - - OP_STATE_CHANGE - - PKG_DELETE - - PackageOperationalStateType: - description: > - - ENABLED: The VNF package is enabled, i.e. it can be used for - instantiation of new VNF instances. - - DISABLED: The VNF package is disabled, i.e. it cannot be used for - further VNF instantiation requests (unless and until the VNF package - is re-enabled). - type: string - enum: - - ENABLED - - DISABLED - - VnfPackageChangeNotification: + VnfPackageOnboardingNotification: description: > - This type represents a VNF package management notification, which - informs the receiver of a change of the status in an on-boarded VNF - package. Only changes in the "operationalState" attribute of an - on-boarded VNF package and the deletion NF package will be reported. - Changes in the "usageState" and "onboardingState" attributes are not - reported. - The notification shall be triggered by the NFVO when there is a change - in the status of an onboarded VNF package, as follows: - * The "operationalState" attribute of a VNF package has changed, and the - "onboardingState" attribute of the package has the value "ONBOARDED" - (i.e. the package has been onboarded previously). - * The on-boarded VNF package has been deleted. + This type represents a VNF package management notification, + which informs the receiver that the onboarding process of a VNF package + is complete and the package is ready for use. + The notification shall be triggered by the NFVO when the + "onboardingState" attribute of a new VNF package has changed to + "ONBOARDED". type: object required: - id @@ -45,7 +18,6 @@ definitions: - timeStamp - vnfPkgId - vnfdId - - changeType - _links properties: id: @@ -56,11 +28,12 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" notificationType: description: > - Discriminator for the different notification types. - Shall be set to "VnfPackageChangeNotification" for this notification type. + Discriminator for the different notification types. + Shall be set to "VnfPackageOnboardingNotification" for this + notification type. type: string enum: - - VnfPackageChangeNotification + - VnfPackageOnboardingNotification subscriptionId: description: > Identifier of the subscription that this notification relates to. @@ -77,32 +50,29 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfdId: description: > - Identifier of the VNFD contained in the VNF package, which also - identifies the VNF package. This identifier is allocated by the VNF - provider and copied from the VNFD. + This identifier, which is managed by the VNF provider, identifies + the VNF package and the VNFD in a globally unique way. + It's copied from the VNFD of the on-boarded VNF package. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - changeType: - description: > - The type of change of the VNF package. - $ref: "#/definitions/PackageChangeType" - operationalState: - description: > - New operational state of the VNF package. - Only present when changeType is OP_STATE_CHANGE. - $ref: "#/definitions/PackageOperationalStateType" _links: description: > Links to resources related to this notification. $ref: "#/definitions/PkgmLinks" - VnfPackageOnboardingNotification: + VnfPackageChangeNotification: description: > - This type represents a VNF package management notification, - which informs the receiver that the onboarding process of a VNF package - is complete and the package is ready for use. - The notification shall be triggered by the NFVO when the - "onboardingState" attribute of a new VNF package has changed to - "ONBOARDED". + This type represents a VNF package management notification, which + informs the receiver of a change of the status in an on-boarded VNF + package. Only changes in the "operationalState" attribute of an + on-boarded VNF package and the deletion NF package will be reported. + Changes in the "usageState" and "onboardingState" attributes are not + reported. + The notification shall be triggered by the NFVO when there is a change + in the status of an onboarded VNF package, as follows: + * The "operationalState" attribute of a VNF package has changed, and the + "onboardingState" attribute of the package has the value "ONBOARDED" + (i.e. the package has been onboarded previously). + * The on-boarded VNF package has been deleted. type: object required: - id @@ -111,6 +81,7 @@ definitions: - timeStamp - vnfPkgId - vnfdId + - changeType - _links properties: id: @@ -122,11 +93,10 @@ definitions: notificationType: description: > Discriminator for the different notification types. - Shall be set to "VnfPackageOnboardingNotification" for this - notification type. + Shall be set to "VnfPackageChangeNotification" for this notification type. type: string enum: - - VnfPackageOnboardingNotification + - VnfPackageChangeNotification subscriptionId: description: > Identifier of the subscription that this notification relates to. @@ -143,31 +113,59 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfdId: description: > - This identifier, which is managed by the VNF provider, identifies - the VNF package and the VNFD in a globally unique way. - It's copied from the VNFD of the on-boarded VNF package. + Identifier of the VNFD contained in the VNF package, which also + identifies the VNF package. This identifier is allocated by the VNF + provider and copied from the VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + changeType: + description: > + The type of change of the VNF package. + $ref: "#/definitions/PackageChangeType" + operationalState: + description: > + New operational state of the VNF package. + Only present when changeType is OP_STATE_CHANGE. + $ref: "../../VNFPackageManagement/definitions/VNFPackageManagement_def.yaml#/definitions/PackageOperationalStateType" _links: description: > Links to resources related to this notification. $ref: "#/definitions/PkgmLinks" + PackageChangeType: + description: > + - OP_STATE_CHANGE: The "operationalState" attribute has been changed. + - PKG_DELETE: The VNF package has been deleted. + type: string + enum: + - OP_STATE_CHANGE + - PKG_DELETE + PkgmLinks: description: > - This type represents the links to resources that a VNF package management - notification can contain. + This type represents the links to resources that a VNF package + management notification can contain. type: object required: - vnfPackage - subscription properties: vnfPackage: + description: > + Link to the resource representing the VNF package to which the + notified change applies, i.e. the individual on-boarded VNF package + resource that represents the VNF package, identified by the "vnfPkgId" + identifier which is managed by the NFVO. This attribute shall be provided + by the NFVO but is deprecated and can be removed in future versions + of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" + vnfPackageByVnfdId: description: > Link to the resource representing the VNF package to which the notified - change applies, i.e. the individual VNF package resource - that represents the VNF package. + change applies, i.e. the individual VNF package resource that represents + the VNF package, identified by the "vnfdId" identifier which is assigned + by the VNF vendor. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" subscription: description: > Link to the related subscription. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" \ No newline at end of file diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml index 86ee0681..19e58cf7 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml @@ -63,7 +63,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource + Identifier of this "Individual subscription" resource $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > @@ -107,10 +107,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription. - This attribute shall only be present if the subscriber requires - authorization of notifications. + Authentication parameters to configure the use of Authorization when sending notifications + corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" -- GitLab From d8f3603f86a197f842772b7831d1655467408733 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 12 Jul 2019 10:57:15 +0200 Subject: [PATCH 063/147] SOL003: VNF Lifecycle Operation Granting datatypes consolidated --- .../VNFLifecycleOperationGranting_def.yaml | 644 +++++++++--------- 1 file changed, 319 insertions(+), 325 deletions(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml index a2e45456..29c51635 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml @@ -1,51 +1,166 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: - ConstraintResourceRef: + GrantRequest: 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. + This type represents a grant request. type: object required: - - idType - - resourceId + - vnfInstanceId + - vnfLcmOpOccId + - vnfdId + - operation + - isAutomaticInvocation + - _links properties: - idType: + vnfInstanceId: 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: + Identifier of the VNF instance which this grant request is related + to. Shall also be provided for VNFs that not yet exist but are + planned to exist in the future, i.e. if the grant is requested for + InstantiateVNF. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfLcmOpOccId: description: > - An actual resource-management-level identifier (idType=RES_MGMT), - or an identifier that references a "ResourceDefinition" structure in - the related "GrantRequest" structure (idType=GRANT). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - vimConnectionId: + The identifier of the VNF lifecycle management operation occurrence + associated to the GrantRequest. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfdId: description: > - Identifier of the VIM connection for managing the resource. It shall - only be present when idType = RES_MGMT. - The applicable "VimConnectionInfo" structure, which is referenced by - vimConnectionId, can be obtained from the "vimConnectionInfo" - attribute of the "VnfInstance" structure. - This attribute shall only be supported when VNF-related resource - management in direct mode is applicable. + Identifier of the VNFD that defines the VNF for which the LCM + operation is to be granted. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - resourceProviderId: + flavourId: description: > - Identifier of the resource provider. It shall only be present when - idType = RES_MGMT. - This attribute shall only be supported when VNF-related resource - management in indirect mode is applicable. The identification scheme - is outside the scope of the present document. + Identifier of the VNF deployment flavour of the VNFD that defines + the VNF for which the LCM operation is to be granted. + Shall be provided when instantiating the VNF or changing the + deployment flavour of the VNF instance. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle management operation for which granting is requested. + The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, + QueryVnf and ModifyVnfInformation can be executed by the VNFM + without requesting granting. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/GrantedLcmOperationType" + 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: > + If operation=INSTANTIATE, the identifier of the instantiation level + may be provided as an alternative way to define the resources to be + added. This attribute shall only be used if operation=INSTANTIATE. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + 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: + $ref: "#/definitions/ResourceDefinition" + 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: + $ref: "#/definitions/ResourceDefinition" + 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: + $ref: "#/definitions/ResourceDefinition" + 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: + $ref: "#/definitions/ResourceDefinition" + 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. + If fallbackBestEffort is present in placement constraints and set + to “true”, the NFVO shall process the Affinity/AntiAffinity constraint + in a best effort manner, in which case, if specified resources cannot be + allocated based on specified placement constraint, the NFVO looks for an + alternate best effort placement for the specified resources to be granted. + In the best effort anti-affinity case, the resources are expected to be + spread optimally over all available instances of scope (e.g. zones), + and in the best effort affinity case, they are expected to be distributed + optimally over fewer possible instances of scope. + type: array + items: + $ref: "#/definitions/PlacementConstraint" + 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: + $ref: "#/definitions/VimConstraint" + additionalParams: + description: > + Additional parameters passed by the VNFM, specific to the VNF and + the LCM operation. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this request. + type: object + required: + - vnfLcmOpOcc + - vnfInstance + properties: + vnfLcmOpOcc: + description: > + Related lifecycle management operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + vnfInstance: + description: > + Related VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" Grant: description: > @@ -115,7 +230,7 @@ definitions: description: > Information that identifies a reservation applicable to the compute resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -124,7 +239,7 @@ definitions: description: > Information that identifies a reservation applicable to the network resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -133,7 +248,7 @@ definitions: description: > Information that identifies a reservation applicable to the storage resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -265,165 +380,52 @@ definitions: Related VNF instance. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - GrantRequest: + ResourceDefinition: description: > - This type represents a grant request. + This type provides information of an existing or proposed resource used + by the VNF. type: object required: - - vnfInstanceId - - vnfLcmOpOccId - - vnfdId - - operation - - isAutomaticInvocation - - _links + - id + - type properties: - vnfInstanceId: - description: > - Identifier of the VNF instance which this grant request is related - to. Shall also be provided for VNFs that not yet exist but are - planned to exist in the future, i.e. if the grant is requested for - InstantiateVNF. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfLcmOpOccId: + id: description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the GrantRequest. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfdId: + Identifier of this "ResourceDefinition" structure, unique at least + within the scope of the "GrantRequest" structure. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + type: description: > - Identifier of the VNFD that defines the VNF for which the LCM - operation is to be granted. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - flavourId: + Type of the resource definition referenced. + Permitted values: + * COMPUTE + * VL + * STORAGE + * LINKPORT + type: string + enum: + - COMPUTE + - VL + - STORAGE + - LINKPORT + vduId: description: > - Identifier of the VNF deployment flavour of the VNFD that defines - the VNF for which the LCM operation is to be granted. - Shall be provided when instantiating the VNF or changing the - deployment flavour of the VNF instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operation: + Reference to the related VDU in the VNFD applicable to this + resource. + Shall only be present if a VDU is applicable to this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + resourceTemplateId: description: > - The lifecycle management operation for which granting is requested. - The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, - QueryVnf and ModifyVnfInformation can be executed by the VNFM - without requesting granting. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/GrantedLcmOperationType" - isAutomaticInvocation: + Reference to a resource template (VnfVirtualLinkDesc, + VirtualComputeDesc, VnfExtCpd, VirtualStorageDesc) in the + VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + resource: 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: > - If operation=INSTANTIATE, the identifier of the instantiation level - may be provided as an alternative way to define the resources to be - added. This attribute shall only be used if operation=INSTANTIATE. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - 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: - $ref: "#/definitions/ResourceDefinition" - 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: - $ref: "#/definitions/ResourceDefinition" - 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: - $ref: "#/definitions/ResourceDefinition" - 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: - $ref: "#/definitions/ResourceDefinition" - 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. - If fallbackBestEffort is present in placement constraints and set - to “true”, the NFVO shall process the Affinity/AntiAffinity constraint - in a best effort manner, in which case, if specified resources cannot be - allocated based on specified placement constraint, the NFVO looks for an - alternate best effort placement for the specified resources to be granted. - In the best effort anti-affinity case, the resources are expected to be - spread optimally over all available instances of scope (e.g. zones), - and in the best effort affinity case, they are expected to be distributed - optimally over fewer possible instances of scope. - type: array - items: - $ref: "#/definitions/PlacementConstraint" - 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: - $ref: "#/definitions/VimConstraint" - additionalParams: - description: > - Additional parameters passed by the VNFM, specific to the VNF and - the LCM operation. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - _links: - description: > - Links to resources related to this request. - type: object - required: - - vnfLcmOpOcc - - vnfInstance - properties: - vnfLcmOpOcc: - description: > - Related lifecycle management operation occurrence. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - vnfInstance: - description: > - Related VNF instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + Resource information for an existing resource. Shall be present for + resources that are planned to be deleted or modified. Shall be + absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" GrantInfo: description: > @@ -437,7 +439,7 @@ definitions: description: > Identifier of the related "ResourceDefinition" structure from the related "GrantRequest" structure. - $ref: "#/definitions/IdentifierLocal" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" reservationId: description: > The reservation identifier applicable to the @@ -472,7 +474,7 @@ definitions: resource is to be placed. Shall be present for new resources if the zones concept is applicable to them (typically, Compute resources), and shall be absent for resources that have already been allocated. - $ref: "#/definitions/IdentifierLocal" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" resourceGroupId: description: > Identifier of the "infrastructure resource group", logical grouping @@ -488,13 +490,65 @@ definitions: allocated. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - IdentifierLocal: + ZoneInfo: + description: > + This type provides information regarding a resource zone. + type: object + required: + - id + - zoneId + properties: + id: + description: > + The identifier of this ZoneInfo instance, for the purpose of + referencing it from other structures in the "Grant" structure. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource + management layer (typically, the VIM). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vimConnectionId: + description: > + Identifier of the connection to the VIM that manages the resource + zone. + The applicable "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the " vimConnectionInfo" + attribute of the "VnfInstance" structure. + This attribute shall only be supported and present when VNF-related + Resource Management in direct mode is applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management the resource + zone. + This attribute shall only be supported and present when VNF-related + Resource Management in indirect mode is applicable. The + identification scheme is outside the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + + ZoneGroupInfo: 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 + 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: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" PlacementConstraint: description: > @@ -557,53 +611,82 @@ definitions: processed in a best effort manner. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" - - ResourceDefinition: + VimConstraint: description: > - This type provides information of an existing or proposed resource used - by the VNF. + 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: - - id - - type + - resource properties: - id: + sameResourceGroup: description: > - Identifier of this "ResourceDefinition" structure, unique at least - within the scope of the "GrantRequest" structure. - $ref: "#/definitions/IdentifierLocal" - type: + 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: > - Type of the resource definition referenced. + References to resources in the constraint rule. + The NFVO shall ensure that all resources in this list are managed + through the same VIM connection. If "sameResourceGroup" is set to + true, the NFVO shall further ensure that all resources in this list + are part of the same infrastructure resource group in that VIM + connection. + type: array + minItems: 2 + items: + $ref: "#/definitions/ConstraintResourceRef" + + ConstraintResourceRef: + 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: - * COMPUTE - * VL - * STORAGE - * LINKPORT + * 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: - - COMPUTE - - VL - - STORAGE - - LINKPORT - vduId: + - RES_MGMT + - GRANT + resourceId: description: > - Reference to the related VDU in the VNFD applicable to this - resource. - Shall only be present if a VDU is applicable to this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - resourceTemplateId: + An actual resource-management-level identifier (idType=RES_MGMT), + or an identifier that references a "ResourceDefinition" structure in + the related "GrantRequest" structure (idType=GRANT). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" + vimConnectionId: description: > - Reference to a resource template (VnfVirtualLinkDesc, - VirtualComputeDesc, VnfExtCpd, VirtualStorageDesc) in the - VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - resource: + Identifier of the VIM connection for managing the resource. It shall + only be present when idType = RES_MGMT. + The applicable "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the "vimConnectionInfo" + attribute of the "VnfInstance" structure. + This attribute shall only be supported when VNF-related resource + management in direct mode is applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + resourceProviderId: description: > - Resource information for an existing resource. Shall be present for - resources that are planned to be deleted or modified. Shall be - absent otherwise. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + Identifier of the resource provider. It shall only be present when + idType = RES_MGMT. + This attribute shall only be supported when VNF-related resource + management in indirect mode is applicable. The identification scheme + is outside the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" VimComputeResourceFlavour: description: > @@ -661,7 +744,7 @@ definitions: vimConnectionId: description: > Identifier of the VIM connection to access the software image - referenced in this structure. + referenced in this structure. The applicable "VimConnectionInfo" structure, which is referenced by vimConnectionId, can be obtained from the "vimConnectionInfo" attribute of the "VnfInstance" structure. @@ -683,95 +766,6 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vimSoftwareImageId: description: > - Identifier of the software image in the resource management layer + Identifier of the software image in the resource management layer (i.e. VIM). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - - VimConstraint: - description: > - This type provides information regarding a VIM selection constraint. A - set of such constraints may be sent by the VNFM to the NFVO to influence - the VIM selection decisions made by the NFVO as part of the granting - process. - type: object - required: - - resource - properties: - sameResourceGroup: - description: > - If present and set to true, this signals that the constraint applies - not only to the same VIM connection, but also to the same - infrastructure resource group. - type: boolean - resource: - description: > - References to resources in the constraint rule. - The NFVO shall ensure that all resources in this list are managed - through the same VIM connection. If "sameResourceGroup" is set to - true, the NFVO shall further ensure that all resources in this list - are part of the same infrastructure resource group in that VIM - connection. - type: array - minItems: 2 - items: - $ref: "#/definitions/ConstraintResourceRef" - - ZoneGroupInfo: - 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: - $ref: "#/definitions/IdentifierLocal" - - ZoneInfo: - description: > - This type provides information regarding a resource zone. - type: object - required: - - id - - zoneId - properties: - id: - description: > - The identifier of this ZoneInfo instance, for the purpose of - referencing it from other structures in the "Grant" structure. - $ref: "#/definitions/IdentifierLocal" - zoneId: - description: > - The identifier of the resource zone, as managed by the resource - management layer (typically, the VIM). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vimConnectionId: - description: > - Identifier of the connection to the VIM that manages the resource - zone. - The applicable "VimConnectionInfo" structure, which is referenced by - vimConnectionId, can be obtained from the " vimConnectionInfo" - attribute of the "VnfInstance" structure. - This attribute shall only be supported and present when VNF-related - Resource Management in direct mode is applicable. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - resourceProviderId: - description: > - Identifies the entity responsible for the management the resource - zone. - This attribute shall only be supported and present when VNF-related - Resource Management in indirect mode is applicable. The - identification scheme is outside the scope of the present document. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" \ No newline at end of file -- GitLab From 6d020cb64ef67db955d0d490d234260edb5c13c7 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 12 Jul 2019 12:59:21 +0200 Subject: [PATCH 064/147] SOL003/SOl002: VNF Lifecycle management datatypes consolidation --- .../VNFLifecycleManagement.yaml | 2 +- .../SOL002VNFLifecycleManagement_def.yaml | 151 +++- .../VNFLifecycleManagement.yaml | 74 +- ... => SOL003VNFLifecycleManagement_def.yaml} | 837 ++++++++++-------- .../VNFLifecycleManagement_resp.yaml | 183 ---- ...FLifecycleManagementNotification_def.yaml} | 0 src/SOL003/definitions/SOL003_def.yaml | 58 +- ...OL002SOL003VNFLifecycleManagement_def.yaml | 493 ++--------- 8 files changed, 744 insertions(+), 1054 deletions(-) rename src/SOL003/VNFLifecycleManagement/definitions/{VNFLifecycleManagement_def.yaml => SOL003VNFLifecycleManagement_def.yaml} (50%) delete mode 100644 src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml rename src/SOL003/VNFLifecycleManagementNotification/definitions/{VNFLifecycleManagementNotification_def.yaml => SOL003VNFLifecycleManagementNotification_def.yaml} (100%) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 493549c9..27c3569c 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -551,7 +551,7 @@ paths: in: body required: true schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" + $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" responses: 202: description: > diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 85fba009..5a493a9f 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -227,27 +227,50 @@ definitions: instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - ChangeExtVnfConnectivityRequest: - description: > - This type represents request parameters for the - "Change external VNF connectivity" operation to modify the external - connectivity of a VNF instance. + InstantiateVnfRequest: type: object required: - - extVirtualLinks + - flavourId properties: + flavourId: + description: > + Identifier of the VNF deployment flavour to be instantiated. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + instantiationLevelId: + description: > + Identifier of the instantiation level of the deployment flavour to be + instantiated. If not present, the default instantiation level as + declared in the VNFD is instantiated. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" extVirtualLinks: description: > - Information about external VLs to change (e.g. connect the VNF to). + Information about external VLs to connect the VNF to. type: array items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + $ref: "SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" + localizationLanguage: + description: > + Localization language of the VNF to be instantiated. The value shall + comply with the format defined in IETF RFC 5646. + type: string additionalParams: description: > Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "ChangeExtVnfConnectivityOpConfig".". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + to the VNF being instantiated, as declared in the VNFD as part of + "InstantiateVnfOpConfig". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute provides values for the "extensions" attribute in "VnfInstance", + as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, + the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeVnfFlavourRequest: description: > @@ -281,10 +304,31 @@ definitions: additionalParams: description: > Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of + to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + TerminateVnfRequest: + type: object + required: + - terminationType + properties: + terminationType: + description: > + Indicates the type of termination is requested. + Permitted values: + * FORCEFUL: The VNFM will shut down the VNF and release the + resources immediately after accepting the request. + type: string + enum: + - FORCEFUL + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the termination + process, specific to the VNF being terminated, as declared in the + VNFD as part of "TerminateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + HealVnfRequest: type: object properties: @@ -345,23 +389,78 @@ definitions: declared in the VNFD as part of "OperateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - TerminateVnfRequest: + ChangeExtVnfConnectivityRequest: + description: > + This type represents request parameters for the + "Change external VNF connectivity" operation to modify the external + connectivity of a VNF instance. type: object required: - - terminationType + - extVirtualLinks properties: - terminationType: + extVirtualLinks: description: > - Indicates the type of termination is requested. - Permitted values: - * FORCEFUL: The VNFM will shut down the VNF and release the - resources immediately after accepting the request. - type: string - enum: - - FORCEFUL + Information about external VLs to change (e.g. connect the VNF to). + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" additionalParams: description: > - Additional parameters passed by the NFVO as input to the termination - process, specific to the VNF being terminated, as declared in the - VNFD as part of "TerminateVnfOpConfig". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" \ No newline at end of file + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "ChangeExtVnfConnectivityOpConfig".". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfInfoModificationRequest: + description: > + This type represents attribute modifications for an "Individual VNF instance" resource, + i.e. modifications to a resource representation based on the "VnfInstance" data type. + The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2 + are included in the "VnfInfoModificationRequest" data type. + The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1. + type: object + properties: + vnfInstanceName: + description: > + New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfdId: + description: > + New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadattametadata" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfcInfoModifications: + description: > + Modifications of certain entries in the "vnfcInfo" attribute array in the + "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. + type: array + items: + $ref: "#/definitions/VnfcInfoModifications" + vnfcInfoModificationsDeleteIds: + description: > + List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array + to be used as "deleteIdList" as defined below this table. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 13a4c45b..25e26731 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -133,7 +133,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -278,7 +278,7 @@ paths: schema: type: array items: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -380,7 +380,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -423,7 +423,7 @@ paths: required: true in: body schema: - $ref: "../definitions/SOL003_def.yaml#/definitions/VnfInfoModificationRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModificationRequest" - name: Authorization description: > The authorization token for the request. @@ -438,7 +438,8 @@ paths: in: header required: true type: string - enum: ["application/merge-patch+json"] + enum: + - application/merge-patch+json - name: Version description: > Version of the API requested to use when responding to this request. @@ -476,7 +477,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -491,6 +492,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the "Individual VNF instance" resource. Typically, this is due to the fact that another LCM operation is ongoing. @@ -564,6 +567,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. @@ -609,7 +614,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -682,6 +687,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state, @@ -798,6 +805,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -812,6 +821,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the "Individual VNF instance" resource is in @@ -927,6 +938,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -941,6 +954,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, @@ -989,7 +1004,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1056,6 +1071,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -1117,7 +1134,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1190,6 +1207,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, @@ -1234,7 +1253,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1301,6 +1320,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -1315,6 +1336,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, @@ -1362,7 +1385,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1429,6 +1452,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -1443,6 +1468,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, @@ -1489,7 +1516,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1562,6 +1589,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that another lifecycle management operation is ongoing, @@ -1705,7 +1734,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1799,7 +1828,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1890,6 +1919,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -1904,6 +1935,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the VNF LCM operation occurrence. Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, @@ -1987,6 +2020,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -2001,6 +2036,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the VNF LCM operation occurrence. Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, @@ -2090,7 +2127,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -2099,6 +2136,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: description: > + 404 NOT FOUND + Shall be returned upon the following error: The API producer did not find a current representation for the target resource or is not willing to disclose that one exists. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, @@ -2113,6 +2152,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the VNF LCM operation occurrence. Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, @@ -2217,6 +2258,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the VNF LCM operation occurrence. Typically, this is due to the fact that the operation occurrence is not in STARTING, @@ -2545,6 +2588,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > Terminate Subscription. diff --git a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml similarity index 50% rename from src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml rename to src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 5e4c1274..fcae23d5 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -2,94 +2,305 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - CancelMode: + VnfInstance: description: > - This type represents a parameter to select the mode of cancelling an - ongoing VNF LCM operation occurrence. + This type represents a VNF instance. type: object required: - - cancelMode + - id + - vnfdId + - vnfProvider + - vnfProductName + - vnfSoftwareVersion + - vnfdVersion + - instantiationState properties: - cancelMode: + id: description: > - Cancellation mode to apply. - $ref: "#/definitions/CancelModeType" - - CancelModeType: - description: > - Cancellation mode. - GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or - "ROLLING_BACK" state, the VNFM shall not start any new resource - management operation and shall wait for the ongoing resource management - operations in the underlying system, typically the VIM, to finish - execution or to time out. After that, the VNFM shall put the operation - occurrence into the FAILED_TEMP state. - If the VNF LCM operation occurrence is in "STARTING" state, the VNFM - shall not start any resource management operation and shall wait for - the granting request to finish execution or time out. After that, the - VNFM shall put the operation occurrence into the ROLLED_BACK state. - FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or - "ROLLING_BACK" state, the VNFM shall not start any new resource - management operation, shall cancel the ongoing resource management - operations in the underlying system, typically the VIM, and shall wait - for the cancellation to finish or to time out. After that, the VNFM - shall put the operation occurrence into the FAILED_TEMP state. - If the VNF LCM operation occurrence is in "STARTING" state, the VNFM - shall not start any resource management operation and put the operation - occurrence into the ROLLED_BACK state. - type: string - enum: - - GRACEFUL - - FORCEFUL - - ChangeExtVnfConnectivityRequest: - #SOL003 location: 5.5.2.11 - description: > - This type represents request parameters for the - "Change external VNF connectivity" operation to modify the external - connectivity of a VNF instance. - type: object - required: - - extVirtualLinks - properties: - extVirtualLinks: + Identifier of the VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfInstanceName: description: > - Information about external VLs to change (e.g. connect the VNF to). - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + Name of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfInstanceDescription: + description: > + Human-readable description of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfdId: + description: > + Identifier of the VNFD on which the VNF instance is based. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + Provider of the VNF and the VNFD. The value is copied from the VNFD. + type: string + vnfProductName: + description: > + Name to identify the VNF Product. The value is copied from the VNFD. + type: string + vnfSoftwareVersion: + description: > + Software version of the VNF. The value is copied from the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersion: + description: > + Identifies the version of the VNFD. The value is copied from the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfConfigurableProperties: + description: > + Current values of the configurable properties of the VNF instance. + Configurable properties referred in this attribute are declared in + the VNFD. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD + based on TOSCA specifications. + VNF configurable properties are sometimes also referred to as + configuration parameters applicable to a VNF. Some of these are set + prior to instantiation and cannot be modified if the VNF is + instantiated, some are set prior to instantiation (are part of + initial configuration) and can be modified later, and others can be + set only after instantiation. The applicability of certain + configuration may depend on the VNF and the required operation of + the VNF at a certain point in time. + These configurable properties include the following standard + attributes, which are declared in the VNFD if auto-scaling and/or + auto-healing are supported by the VNF: + * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If + set to true, auto-scaling is currently enabled. If set to false, + auto-scaling is currently disabled. + * isAutohealEnabled: If present, the VNF supports auto-healing. If + set to true, auto-healing is currently enabled. If set to false, + auto-healing is currently disabled. + This attribute can be modified with the PATCH method. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > Information about VIM connections to be used for managing the - resources for the VNF instance, or refer to external virtual - links. This attribute shall only be supported and may be present - if VNF-related resource management in direct mode is applicable. + resources for the VNF instance. This attribute shall only be + supported and present if VNF-related resource management in direct + mode is applicable. + This attribute can be modified with the PATCH method. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - additionalParams: + instantiationState: description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "ChangeExtVnfConnectivityOpConfig".". + The instantiation state of the VNF. + type: string + enum: + - NOT_INSTANTIATED + - INSTANTIATED + instantiatedVnfInfo: + description: > + Information specific to an instantiated VNF instance. This attribute + shall be present if the instantiateState attribute value is + INSTANTIATED. + type: object + required: + - flavourId + - vnfState + properties: + flavourId: + description: > + Identifier of the VNF deployment flavour applied to this VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfState: + description: > + The state of the VNF instance. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" + scaleStatus: + description: > + Scale status of the VNF, one entry per aspect. + Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + This attribute shall be present if the VNF supports scaling. + See clause B.2 for an explanation of VNF scaling. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" + extCpInfo: + description: > + Information about the external CPs exposed by the VNF instance. + type: array + minItems: 1 + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfExtCpInfo" + extVirtualLinkInfo: + description: > + Information about the external VLs the VNF instance is connected to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + extManagedVirtualLinkInfo: + description: > + External virtual links the VNF instance is connected to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkInfo" + monitoringParameters: + description: > + Active monitoring parameters. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/MonitoringParameter" + localizationLanguage: + description: > + Information about localization language of the VNF (includes e.g. + strings in the VNFD). The localization languages supported by a VNF + can be declared in the VNFD, and localization language selection can + take place at instantiation time. + The value shall comply with the format defined in IETF RFC 5646. + type: string + vnfcResourceInfo: + description: > + Information about the virtualised compute and storage resources used + by the VNFCs of the VNF instance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcResourceInfo" + virtualLinkResourceInfo: + description: > + Information about the virtualised network resources used by the VLs + of the VNF instance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfVirtualLinkResourceInfo" + virtualStorageResourceInfo: + description: > + Information on the virtualised storage resource(s) used as storage for the VNF instance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VirtualStorageResourceInfo" + metadata: + description: > + Additional VNF-specific attributes that provide metadata describing the VNF instance. + These attributes represent values that are stored persistently in the VnfInstance structure + for consumption by functional blocks that invoke the VNF lifecycle management interface. + They are not consumed by the VNFM, or the lifecycle management scripts. + Modifying the values of these attributes has no effect on the VNF instance, it only affects + the information represented in the VnfInstance structure. + Metadata that are writeable are the VNF provider foresees are expected to be declared in the VNFD. + The declaration of metadata in the VNFD can optionally contain the specification of initial values. + The VNFM shall accept requests to write metadata that are not declared in the VNFD. + These attributes can be initialized with default values from the VNFD or with values + passed in the CreateVnfRequest structure (see clause 5.5.2.3). + This attributeThese attributes can be created, modified or removed with the PATCH method. + + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with + a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" + that have no declared initial value shall not be created, in order to be consistent with the semantics + of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Additional VNF-specific attributes that affect the lifecycle management of this VNF instance. + These attributes represent values that are stored persistently in the VnfInstance structure + for consumption by the VNFM or the lifecycle management scripts during the execution of + VNF lifecycle management operations. + All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension + in the VNFD contains information on whether its presence is optional or required, and optionally + can specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension + attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined + in clause 6.4 of ETSI GS NFV-SOL 013. + Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified + attribute values can be considered during subsequent VNF lifecycle management operations, which means that + the modified values can indirectly affect the configuration of the VNF instance. + These attributes can be initialized with default values from the VNFD or with values passed in the + InstantiateVnfRequest structure (see clause 5.5.2.4). + Attributes initialized with default values from the VNFD can be updated with values passed in the + InstantiateVnfRequest structure. + Further, these attributes can be created, modified or deleted with the PATCH method. - ChangeVnfFlavourRequest: - #SOL003 location: 5.5.2.7 - description: > - This type represents request parameters for the "Change VNF flavour" operation. + Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with + a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" + that have no declared initial value shall not be created, in order to be consistent with the semantics + of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: URI of this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + indicators: + description: Indicators related to this VNF instance, if applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + instantiate: + description: > + Link to the "Instantiate VNF task" resource, if the related operation + is possible based on the current status of this VNF instance + resource (i.e. VNF instance in NOT_INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + terminate: + description: > + Link to the "Terminate VNF task" resource, if the related operation + is possible based on the current status of this VNF instance + resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + scale: + description: > + Link to the "Scale VNF task" resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource (i.e. VNF instance + is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + scaleToLevel: + description: > + Link to the "Scale VNF to level task" resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + changeFlavour: + description: > + Link to the "Change VNF flavour task" resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + heal: + description: > + Link to the "Heal VNF task" resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + operate: + description: > + Link to the "Operate VNF task" resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + changeExtConn: + description: > + Link to the "Change external VNF connectivity task" resource, if the related + operation is possible based on the current status of this VNF + instance resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + InstantiateVnfRequest: + #SOL003 location: 5.5.2.4 type: object required: - - newFlavourId + - flavourId properties: - newFlavourId: + flavourId: description: > Identifier of the VNF deployment flavour to be instantiated. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" instantiationLevelId: description: > - Identifier of the instantiation level of the deployment flavour to - be instantiated. If not present, the default instantiation level as + Identifier of the instantiation level of the deployment flavour to be + instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" extVirtualLinks: @@ -114,41 +325,34 @@ definitions: type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - additionalParams: - description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "InstantiateVnfOpConfig". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - HealVnfRequest: - type: object - properties: - cause: + localizationLanguage: description: > - Indicates the reason why a healing procedure is required. + Localization language of the VNF to be instantiated. The value shall + comply with the format defined in IETF RFC 5646. type: string additionalParams: description: > - Additional parameters passed by the NFVO as input to the healing - process, specific to the VNF being healed, as declared in the VNFD - as part of "HealVnfOpConfig". + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - InstantiateVnfRequest: - #SOL003 location: 5.5.2.4 + ChangeVnfFlavourRequest: + #SOL003 location: 5.5.2.7 + description: > + This type represents request parameters for the "Change VNF flavour" operation. type: object required: - - flavourId + - newFlavourId properties: - flavourId: + newFlavourId: description: > Identifier of the VNF deployment flavour to be instantiated. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" instantiationLevelId: description: > - Identifier of the instantiation level of the deployment flavour to be - instantiated. If not present, the default instantiation level as + Identifier of the instantiation level of the deployment flavour to + be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" extVirtualLinks: @@ -173,38 +377,65 @@ definitions: type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - localizationLanguage: - description: > - Localization language of the VNF to be instantiated. The value shall - comply with the format defined in IETF RFC 5646. - type: string additionalParams: description: > Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of + to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - LcmOperationStateType: - description: > - Value | Description - ------|------------ - STARTING | The LCM operation is starting. - PROCESSING | The LCM operation is currently in execution. - COMPLETED | he LCM operation has been completed successfully. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. - ROLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. - type: string - enum: - - STARTING - - PROCESSING - - COMPLETED - - FAILED_TEMP - - FAILED - - ROLLING_BACK - - ROLLED_BACK + TerminateVnfRequest: + type: object + required: + - terminationType + properties: + terminationType: + description: > + Indicates whether forceful or graceful termination is requested. + Permitted values: + * FORCEFUL: The VNFM will shut down the VNF and release the + resources immediately after accepting the request. + * GRACEFUL: The VNFM will first arrange to take the VNF out of + service after accepting the request. Once the operation of taking + the VNF out of service finishes (irrespective of whether it has + succeeded or failed) or once the timer value specified in the + "gracefulTerminationTimeout" attribute expires, the VNFM will shut + down the VNF and release the resources. + type: string + enum: + - FORCEFUL + - GRACEFUL + gracefulTerminationTimeout: + description: > + This attribute is only applicable in case of graceful termination. + It defines the time to wait for the VNF to be taken out of service + before shutting down the VNF and releasing the resources. + The unit is seconds. + If not given and the "terminationType" attribute is set to + "GRACEFUL", it is expected that the VNFM waits for the successful + taking out of service of the VNF, no matter how long it takes, + before shutting down the VNF and releasing the resources. + type: integer + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the termination + process, specific to the VNF being terminated, as declared in the + VNFD as part of "TerminateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + HealVnfRequest: + type: object + properties: + cause: + description: > + Indicates the reason why a healing procedure is required. + type: string + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the healing + process, specific to the VNF being healed, as declared in the VNFD + as part of "HealVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" OperateVnfRequest: description: > @@ -254,274 +485,164 @@ definitions: declared in the VNFD as part of "OperateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - ScaleVnfToLevelRequest: + VnfInfoModificationRequest: description: > - This type represents request parameters for the "Scale VNF to Level" - operation. + This type represents attribute modifications for an + "Individual VNF instance" resource, i.e. modifications to a resource + representation based on the "VnfInstance" data type. type: object properties: - instantiationLevelId: + vnfInstanceName: + description: > + New value of the "vnfInstanceName" attribute in "VnfInstance", or + "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in + "VnfInstance", or "null" to remove the attribute. + type: string + vnfPkgId: + description: > + New value of the "vnfPkgId" attribute in "VnfInstance". + The value "null" is not permitted. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in + "VnfInstance". If present, these modifications shall be applied + according to the rules of JSON Merge PATCH (see IETF RFC 7396). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadata" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vimConnectionInfo: description: > - Identifier of the target instantiation level of the current - deployment flavour to which the VNF is requested to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. - $ref: "#/definitions/IdentifierInVnfd" - scaleInfo: - description: > - For each scaling aspect of the current deployment flavour, indicates - the target scale level to which the VNF is to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. + New content of certain entries in the "vimConnectionInfo" attribute + array in "VnfInstance", as defined below this table. type: array items: - $ref: "#/definitions/ScaleInfo" - additionalParams: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + vimConnectionInfoDeleteIds: description: > - Additional parameters passed by the NFVO as input to the scaling - process, specific to the VNF being scaled, as declared in the - VNFD as part of "ScaleVnfToLevelOpConfig". - $ref: "#/definitions/KeyValuePairs" + List of identifiers entries to be deleted from the "vimConnectionInfo" + attribute array in "VnfInstance", to be used as "deleteIdList" as defined + below this table. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - StopType: + ChangeExtVnfConnectivityRequest: + #SOL003 location: 5.5.2.11 description: > - * FORCEFUL: The VNFM will stop the VNF immediately after accepting the - request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of service - after accepting the request. Once that operation is successful or once - the timer value specified in the "gracefulStopTimeout" attribute - expires, the VNFM will stop the VNF. - type: string - enum: - - FORCEFUL - - GRACEFUL - - TerminateVnfRequest: + This type represents request parameters for the + "Change external VNF connectivity" operation to modify the external + connectivity of a VNF instance. type: object required: - - terminationType + - extVirtualLinks properties: - terminationType: + extVirtualLinks: description: > - Indicates whether forceful or graceful termination is requested. - Permitted values: - * FORCEFUL: The VNFM will shut down the VNF and release the - resources immediately after accepting the request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of - service after accepting the request. Once the operation of taking - the VNF out of service finishes (irrespective of whether it has - succeeded or failed) or once the timer value specified in the - "gracefulTerminationTimeout" attribute expires, the VNFM will shut - down the VNF and release the resources. - type: string - enum: - - FORCEFUL - - GRACEFUL - gracefulTerminationTimeout: + Information about external VLs to change (e.g. connect the VNF to). + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + vimConnectionInfo: description: > - This attribute is only applicable in case of graceful termination. - It defines the time to wait for the VNF to be taken out of service - before shutting down the VNF and releasing the resources. - The unit is seconds. - If not given and the "terminationType" attribute is set to - "GRACEFUL", it is expected that the VNFM waits for the successful - taking out of service of the VNF, no matter how long it takes, - before shutting down the VNF and releasing the resources. - type: integer + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to external virtual + links. This attribute shall only be supported and may be present + if VNF-related resource management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" additionalParams: description: > - Additional parameters passed by the NFVO as input to the termination - process, specific to the VNF being terminated, as declared in the - VNFD as part of "TerminateVnfOpConfig". + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "ChangeExtVnfConnectivityOpConfig".". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VnfLcmOpOcc: + CancelMode: description: > - This type represents a VNF lifecycle management operation occurrence. + This type represents a parameter to select the mode of cancelling an + ongoing VNF LCM operation occurrence. type: object required: - - id - - operationState - - stateEnteredTime - - startTime - - vnfInstanceId - - operation - - isAutomaticInvocation - - isCancelPending + - cancelMode properties: - id: - description: > - Identifier of this VNF lifecycle management operation occurrence. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operationState: - description: > - The state of the LCM operation. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" - stateEnteredTime: - description: > - Date-time when the current state was entered. - type: string - format: date-time - startTime: - description: > - Date-time of the start of the operation. - type: string - format: date-time - vnfInstanceId: - description: > - Identifier of the VNF instance to which the operation applies - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - grantId: - description: > - Identifier of the grant related to this VNF LCM operation - occurrence, if such grant exists. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operation: - description: > - Type of the actual LCM operation represented by this VNF LCM - operation occurrence. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: - description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM (i.e. - ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). Set to false otherwise. - type: boolean - operationParams: - description: > - Input parameters of the LCM operation. This attribute shall be - formatted according to the request data type of the related LCM - operation. The following mapping between operationType and the - data type of this attribute shall apply: - * INSTANTIATE: InstantiateVnfRequest - * SCALE: ScaleVnfRequest - * SCALE_TO_LEVEL: ScaleVnfToLevelRequest - * CHANGE_FLAVOUR: ChangeVnfFlavourRequest - * OPERATE: OperateVnfRequest - * HEAL: HealVnfRequest - * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest - * TERMINATE: TerminateVnfRequest - * MODIFY_INFO: VnfInfoModificationRequest - This attribute shall be present if this data type is returned in - a response to reading an individual resource, and may be present - according to the chosen attribute selector parameter if this data - type is returned in a response to a query of a container resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - isCancelPending: - description: > - If the VNF LCM operation occurrence is in "STARTING", "PROCESSING" - or "ROLLING_BACK" state and the operation is being cancelled, this - attribute shall be set to true. Otherwise, it shall be set to false. - type: boolean cancelMode: description: > - The mode of an ongoing cancellation. Shall be present when - isCancelPending=true, and shall be absent otherwise. + Cancellation mode to apply. $ref: "#/definitions/CancelModeType" - error: - description: > - If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState" - is "PROCESSING" or "ROLLING_BACK" and previous value of - "operationState" was "FAILED_TEMP", this attribute shall be present - and contain error information, unless it has been requested to be - excluded via an attribute selector. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - resourceChanges: - description: > - This attribute contains information about the cumulative changes to - virtualised resources that were performed so far by the LCM - operation since its start, if applicable. - type: object - properties: - affectedVnfcs: - description: > - Information about VNFC instances that were affected during the - lifecycle operation. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" - affectedVirtualLinks: - description: > - Information about VL instances that were affected during the - lifecycle operation. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" - affectedVirtualStorages: - description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" - changedInfo: - description: > - Information about the changed VNF instance information, including - VNF configurable properties, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" - changedExtConnectivity: - description: > - Information about changed external connectivity, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - - vnfInstance - properties: - self: - description: > - URI of this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - vnfInstance: - description: > - Link to the VNF instance that the operation applies to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - grant: - description: > - Link to the grant for this operation, if one exists. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - cancel: - description: > - Link to the task resource that represents the "cancel" operation - for this VNF LCM operation occurrence, if cancelling is - currently allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - retry: - description: > - Link to the task resource that represents the "retry" operation - for this VNF LCM operation occurrence, if retrying is currently - allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - rollback: - description: > - Link to the task resource that represents the "rollback" - operation for this VNF LCM operation occurrence, if rolling back - is currently allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - fail: - description: > - Link to the task resource that represents the "fail" operation - for this VNF LCM operation occurrence, if declaring as failed is - currently allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + CancelModeType: + description: > + Cancellation mode. + GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation and shall wait for the ongoing resource management + operations in the underlying system, typically the VIM, to finish + execution or to time out. After that, the VNFM shall put the operation + occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and shall wait for + the granting request to finish execution or time out. After that, the + VNFM shall put the operation occurrence into the ROLLED_BACK state. + FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation, shall cancel the ongoing resource management + operations in the underlying system, typically the VIM, and shall wait + for the cancellation to finish or to time out. After that, the VNFM + shall put the operation occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and put the operation + occurrence into the ROLLED_BACK state. + type: string + enum: + - GRACEFUL + - FORCEFUL + + LcmOperationStateType: + description: > + Value | Description + ------|------------ + STARTING | The LCM operation is starting. + PROCESSING | The LCM operation is currently in execution. + COMPLETED | he LCM operation has been completed successfully. + FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. + FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. + ROLLING_BACK | The LCM operation is currently being rolled back. + ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. + type: string + enum: + - STARTING + - PROCESSING + - COMPLETED + - FAILED_TEMP + - FAILED + - ROLLING_BACK + - ROLLED_BACK + + StopType: + description: > + * FORCEFUL: The VNFM will stop the VNF immediately after accepting the + request. + * GRACEFUL: The VNFM will first arrange to take the VNF out of service + after accepting the request. Once that operation is successful or once + the timer value specified in the "gracefulStopTimeout" attribute + expires, the VNFM will stop the VNF. + type: string + enum: + - FORCEFUL + - GRACEFUL \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml deleted file mode 100644 index 9b5cfdfa..00000000 --- a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -responses: - 202-with-Location: - description: > - Accepted - - The request was accepted for processing, but the processing has not - been completed. On success, the HTTP response shall include a - "Location" HTTP header that contains the URI of the newly-created - "VNF LCM operation occurrence" resource corresponding to the - operation. - headers: - 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: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" - 202-with-Location-empty: - description: > - Accepted - - The request was accepted for processing, but the processing has not - been completed. On success, the HTTP response shall include a - "Location" HTTP header that contains the URI of the newly-created - "VNF LCM operation occurrence" resource corresponding to the - operation. - The response body shall be empty. - 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 - 409-another-lcm-operation-ongoing: - description: > - Conflict - - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that another LCM operation is - ongoing. - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-inconsistent-state: - description: > - Conflict - - Another request is in progress that prohibits the fulfilment of - the current request, or the current resource state is inconsistent - with the request. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-state-conflict-INSTANTIATED: - description: > - Conflict - - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that the VNF instance resource is in - INSTANTIATED state. - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-state-conflict-not-FAILED_TEMP: - description: > - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that the VNF instance resource is - not in FAILED_TEMP state, or another error handling action is starting, - such as rollback or fail. - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-state-conflict-NOT-INSTANTIATED: - description: > - Conflict - - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that the VNF instance resource is in - NOT-INSTANTIATED state, or that another lifecycle management operation - is ongoing. - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml similarity index 100% rename from src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml rename to src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml diff --git a/src/SOL003/definitions/SOL003_def.yaml b/src/SOL003/definitions/SOL003_def.yaml index 099b2f9a..b974c4e4 100644 --- a/src/SOL003/definitions/SOL003_def.yaml +++ b/src/SOL003/definitions/SOL003_def.yaml @@ -164,60 +164,4 @@ definitions: subscription: description: > Link to the related subscription. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" - - VnfInfoModificationRequest: - description: > - This type represents attribute modifications for an - "Individual VNF instance" resource, i.e. modifications to a resource - representation based on the "VnfInstance" data type. - type: object - properties: - vnfInstanceName: - description: > - New value of the "vnfInstanceName" attribute in "VnfInstance", or - "null" to remove the attribute. - type: string - vnfInstanceDescription: - description: > - New value of the "vnfInstanceDescription" attribute in - "VnfInstance", or "null" to remove the attribute. - type: string - vnfPkgId: - description: > - New value of the "vnfPkgId" attribute in "VnfInstance". - The value "null" is not permitted. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Modifications of the "vnfConfigurableProperties" attribute in - "VnfInstance". If present, these modifications shall be applied - according to the rules of JSON Merge PATCH (see IETF RFC 7396). - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: - description: > - Modifications of the "metadata" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - Modifications of the "extensions" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vimConnectionInfo: - description: > - New content of certain entries in the "vimConnectionInfo" attribute - array in "VnfInstance", as defined below this table. - type: array - items: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - vimConnectionInfoDeleteIds: - description: > - List of identifiers entries to be deleted from the "vimConnectionInfo" - attribute array in "VnfInstance", to be used as "deleteIdList" as defined - below this table. - type: array - items: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" \ No newline at end of file diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 1605fba6..d8e2b909 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -2,49 +2,96 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - InstantiateVnfRequest: + CreateVnfRequest: type: object required: - - flavourId + - vnfdId properties: - flavourId: + vnfdId: description: > - Identifier of the VNF deployment flavour to be instantiated. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - instantiationLevelId: + Identifier that identifies the VNFD which defines the VNF instance to + be created. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfInstanceName: description: > - Identifier of the instantiation level of the deployment flavour to be - instantiated. If not present, the default instantiation level as - declared in the VNFD is instantiated. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - extVirtualLinks: + Human-readable name of the VNF instance to be created. + type: string + vnfInstanceDescription: description: > - Information about external VLs to connect the VNF to. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" - extManagedVirtualLinks: + Human-readable description of the VNF instance to be created. + type: string + metadata: description: > - Information about external VLs to connect the VNF to. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" - localizationLanguage: + If present, this attribute provides values for the "metadata" attribute in "VnfInstance", + as defined in clause 5.5.2.2. + If a “metadata” entry in this CreateVnfRequest data structure has a corresponding default + value declared in the VNFD, the value in the “metadata” entry in the CreateVnfRequest + structure takes precedence. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + ScaleVnfRequest: + type: object + required: + - type + - aspectId + properties: + type: description: > - Localization language of the VNF to be instantiated. The value shall - comply with the format defined in IETF RFC 5646. + Indicates the type of the scale operation requested. + Permitted values: + * SCALE_OUT: adding additional VNFC instances to the VNF to increase + capacity + * SCALE_IN: removing VNFC instances from the VNF in order to release + unused capacity. type: string + enum: + - SCALE_OUT + - SCALE_IN + aspectId: + description: > + Identifier of the scaling aspect. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + numberOfSteps: + description: > + Number of scaling steps to be executed as part of this Scale VNF + operation. It shall be a positive number and the default value + shall be 1. + type: integer + default: 1 additionalParams: description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "InstantiateVnfOpConfig". + Additional parameters passed by the NFVO as input to the scaling + process, specific to the VNF being scaled, as declared in the VNFD + as part of "ScaleVnfOpConfig". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: + + ScaleVnfToLevelRequest: + description: > + This type represents request parameters for the "Scale VNF to Level" + operation. + type: object + properties: + instantiationLevelId: description: > - If present, this attribute provides values for the "extensions" attribute in "VnfInstance", - as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, - the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure. + Identifier of the target instantiation level of the current + deployment flavour to which the VNF is requested to be scaled. + Either the instantiationLevelId attribute or the scaleInfo attribute + shall be included. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + scaleInfo: + description: > + For each scaling aspect of the current deployment flavour, indicates + the target scale level to which the VNF is to be scaled. + Either the instantiationLevelId attribute or the scaleInfo attribute + shall be included. + type: array + items: + $ref: "#/definitions/ScaleInfo" + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the scaling + process, specific to the VNF being scaled, as declared in the + VNFD as part of "ScaleVnfToLevelOpConfig". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" VnfLcmOpOcc: @@ -376,33 +423,6 @@ definitions: be absent otherwise. $ref: "#/definitions/IpOverEthernetAddressInfo" - CreateVnfRequest: - type: object - required: - - vnfdId - properties: - vnfdId: - description: > - Identifier that identifies the VNFD which defines the VNF instance to - be created. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfInstanceName: - description: > - Human-readable name of the VNF instance to be created. - type: string - vnfInstanceDescription: - description: > - Human-readable description of the VNF instance to be created. - type: string - metadata: - description: > - If present, this attribute provides values for the "metadata" attribute in "VnfInstance", - as defined in clause 5.5.2.2. - If a “metadata” entry in this CreateVnfRequest data structure has a corresponding default - value declared in the VNFD, the value in the “metadata” entry in the CreateVnfRequest - structure takes precedence. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - ExtManagedVirtualLinkInfo: type: object required: @@ -930,71 +950,6 @@ definitions: maximum value shall be <= maxScaleLevel as described in the VNFD. type: integer - ScaleVnfRequest: - type: object - required: - - type - - aspectId - properties: - type: - description: > - Indicates the type of the scale operation requested. - Permitted values: - * SCALE_OUT: adding additional VNFC instances to the VNF to increase - capacity - * SCALE_IN: removing VNFC instances from the VNF in order to release - unused capacity. - type: string - enum: - - SCALE_OUT - - SCALE_IN - aspectId: - description: > - Identifier of the scaling aspect. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - numberOfSteps: - description: > - Number of scaling steps to be executed as part of this Scale VNF - operation. It shall be a positive number and the default value - shall be 1. - type: integer - default: 1 - additionalParams: - description: > - Additional parameters passed by the NFVO as input to the scaling - process, specific to the VNF being scaled, as declared in the VNFD - as part of "ScaleVnfOpConfig". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - ScaleVnfToLevelRequest: - description: > - This type represents request parameters for the "Scale VNF to Level" - operation. - type: object - properties: - instantiationLevelId: - description: > - Identifier of the target instantiation level of the current - deployment flavour to which the VNF is requested to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - scaleInfo: - description: > - For each scaling aspect of the current deployment flavour, indicates - the target scale level to which the VNF is to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. - type: array - items: - $ref: "#/definitions/ScaleInfo" - additionalParams: - description: > - Additional parameters passed by the NFVO as input to the scaling - process, specific to the VNF being scaled, as declared in the - VNFD as part of "ScaleVnfToLevelOpConfig". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - StopType: description: > * FORCEFUL: The VNFM will stop the VNF immediately after accepting the @@ -1008,11 +963,6 @@ definitions: - FORCEFUL - GRACEFUL - Version: - description: > - A Version. - type: string - VirtualStorageResourceInfo: description: > This type represents the information that allows addressing a virtualised @@ -1359,7 +1309,7 @@ definitions: description: > If present, this attribute signals modifications of the "vnfSoftwareVersion" attribute in "VnfInstance". - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "SOL002SOL003_def.yaml#/definitions/Version" vnfdVersion: description: > If present, this attribute signals modifications of the @@ -1369,7 +1319,7 @@ definitions: modify the "vnfPkgId" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfPkgId” attribute. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "SOL002SOL003_def.yaml#/definitions/Version" VnfInfoModificationRequest: description: > @@ -1425,291 +1375,6 @@ definitions: items: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - VnfInstance: - description: > - This type represents a VNF instance. - type: object - required: - - id - - vnfdId - - vnfProvider - - vnfProductName - - vnfSoftwareVersion - - vnfdVersion - - instantiationState - properties: - id: - description: > - Identifier of the VNF instance. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfInstanceName: - description: > - Name of the VNF instance. - This attribute can be modified with the PATCH method. - type: string - vnfInstanceDescription: - description: > - Human-readable description of the VNF instance. - This attribute can be modified with the PATCH method. - type: string - vnfdId: - description: > - Identifier of the VNFD on which the VNF instance is based. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfProvider: - description: > - Provider of the VNF and the VNFD. The value is copied from the VNFD. - type: string - vnfProductName: - description: > - Name to identify the VNF Product. The value is copied from the VNFD. - type: string - vnfSoftwareVersion: - description: > - Software version of the VNF. The value is copied from the VNFD. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdVersion: - description: > - Identifies the version of the VNFD. The value is copied from the VNFD. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfConfigurableProperties: - description: > - Current values of the configurable properties of the VNF instance. - Configurable properties referred in this attribute are declared in - the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD - based on TOSCA specifications. - VNF configurable properties are sometimes also referred to as - configuration parameters applicable to a VNF. Some of these are set - prior to instantiation and cannot be modified if the VNF is - instantiated, some are set prior to instantiation (are part of - initial configuration) and can be modified later, and others can be - set only after instantiation. The applicability of certain - configuration may depend on the VNF and the required operation of - the VNF at a certain point in time. - These configurable properties include the following standard - attributes, which are declared in the VNFD if auto-scaling and/or - auto-healing are supported by the VNF: - * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If - set to true, auto-scaling is currently enabled. If set to false, - auto-scaling is currently disabled. - * isAutohealEnabled: If present, the VNF supports auto-healing. If - set to true, auto-healing is currently enabled. If set to false, - auto-healing is currently disabled. - This attribute can be modified with the PATCH method. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vimConnectionInfo: - description: > - Information about VIM connections to be used for managing the - resources for the VNF instance. This attribute shall only be - supported and present if VNF-related resource management in direct - mode is applicable. - This attribute can be modified with the PATCH method. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - instantiationState: - description: > - The instantiation state of the VNF. - type: string - enum: - - NOT_INSTANTIATED - - INSTANTIATED - instantiatedVnfInfo: - description: > - Information specific to an instantiated VNF instance. This attribute - shall be present if the instantiateState attribute value is - INSTANTIATED. - type: object - required: - - flavourId - - vnfState - properties: - flavourId: - description: > - Identifier of the VNF deployment flavour applied to this VNF instance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - vnfState: - description: > - The state of the VNF instance. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" - scaleStatus: - description: > - Scale status of the VNF, one entry per aspect. - Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. - This attribute shall be present if the VNF supports scaling. - See clause B.2 for an explanation of VNF scaling. - type: array - items: - $ref: "#/definitions/ScaleInfo" - extCpInfo: - description: > - Information about the external CPs exposed by the VNF instance. - type: array - minItems: 1 - items: - $ref: "#/definitions/VnfExtCpInfo" - extVirtualLinkInfo: - description: > - Information about the external VLs the VNF instance is connected to. - type: array - items: - $ref: "#/definitions/ExtVirtualLinkInfo" - extManagedVirtualLinkInfo: - description: > - External virtual links the VNF instance is connected to. - type: array - items: - $ref: "#/definitions/ExtManagedVirtualLinkInfo" - monitoringParameters: - description: > - Active monitoring parameters. - type: array - items: - $ref: "#/definitions/MonitoringParameter" - localizationLanguage: - description: > - Information about localization language of the VNF (includes e.g. - strings in the VNFD). The localization languages supported by a VNF - can be declared in the VNFD, and localization language selection can - take place at instantiation time. - The value shall comply with the format defined in IETF RFC 5646. - type: string - vnfcResourceInfo: - description: > - Information about the virtualised compute and storage resources used - by the VNFCs of the VNF instance. - type: array - items: - $ref: "#/definitions/VnfcResourceInfo" - virtualLinkResourceInfo: - description: > - Information about the virtualised network resources used by the VLs - of the VNF instance. - type: array - items: - $ref: "#/definitions/VnfVirtualLinkResourceInfo" - virtualStorageResourceInfo: - description: > - Information on the virtualised storage resource(s) used as storage for the VNF instance. - type: array - items: - $ref: "#/definitions/VirtualStorageResourceInfo" - metadata: - description: > - Additional VNF-specific attributes that provide metadata describing the VNF instance. - These attributes represent values that are stored persistently in the VnfInstance structure - for consumption by functional blocks that invoke the VNF lifecycle management interface. - They are not consumed by the VNFM, or the lifecycle management scripts. - Modifying the values of these attributes has no effect on the VNF instance, it only affects - the information represented in the VnfInstance structure. - Metadata that are writeable are the VNF provider foresees are expected to be declared in the VNFD. - The declaration of metadata in the VNFD can optionally contain the specification of initial values. - The VNFM shall accept requests to write metadata that are not declared in the VNFD. - These attributes can be initialized with default values from the VNFD or with values - passed in the CreateVnfRequest structure (see clause 5.5.2.3). - This attributeThese attributes can be created, modified or removed with the PATCH method. - - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. - Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes - of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with - a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" - that have no declared initial value shall not be created, in order to be consistent with the semantics - of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - Additional VNF-specific attributes that affect the lifecycle management of this VNF instance. - These attributes represent values that are stored persistently in the VnfInstance structure - for consumption by the VNFM or the lifecycle management scripts during the execution of - VNF lifecycle management operations. - All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension - in the VNFD contains information on whether its presence is optional or required, and optionally - can specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension - attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined - in clause 6.4 of ETSI GS NFV-SOL 013. - Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified - attribute values can be considered during subsequent VNF lifecycle management operations, which means that - the modified values can indirectly affect the configuration of the VNF instance. - These attributes can be initialized with default values from the VNFD or with values passed in the - InstantiateVnfRequest structure (see clause 5.5.2.4). - Attributes initialized with default values from the VNFD can be updated with values passed in the - InstantiateVnfRequest structure. - Further, these attributes can be created, modified or deleted with the PATCH method. - - Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes - of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with - a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" - that have no declared initial value shall not be created, in order to be consistent with the semantics - of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: URI of this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - indicators: - description: Indicators related to this VNF instance, if applicable. - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - instantiate: - description: > - Link to the "Instantiate VNF task" resource, if the related operation - is possible based on the current status of this VNF instance - resource (i.e. VNF instance in NOT_INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - terminate: - description: > - Link to the "Terminate VNF task" resource, if the related operation - is possible based on the current status of this VNF instance - resource (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - scale: - description: > - Link to the "Scale VNF task" resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource (i.e. VNF instance - is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - scaleToLevel: - description: > - Link to the "Scale VNF to level task" resource, if the related - operation is supported for this VNF instance, and is possible - based on the current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - changeFlavour: - description: > - Link to the "Change VNF flavour task" resource, if the related - operation is supported for this VNF instance, and is possible - based on the current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - heal: - description: > - Link to the "Heal VNF task" resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - operate: - description: > - Link to the "Operate VNF task" resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - changeExtConn: - description: > - Link to the "Change external VNF connectivity task" resource, if the related - operation is possible based on the current status of this VNF - instance resource (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - VnfLinkPortInfo: type: object required: -- GitLab From eadc995706c75c3cf0ed3e76eda7c38a1861d523 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 12 Jul 2019 15:45:19 +0200 Subject: [PATCH 065/147] SOL003/SOL002: VNF Lifecycle management datatypes consolidation --- .../SOL003VNFLifecycleManagement_def.yaml | 193 +- .../VNFLifecycleManagementNotification.yaml | 2 +- ...NFLifecycleManagementNotification_def.yaml | 177 -- ...OL002SOL003VNFLifecycleManagement_def.yaml | 1633 +++++++++-------- 4 files changed, 938 insertions(+), 1067 deletions(-) delete mode 100644 src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index fcae23d5..28a170a3 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -462,7 +462,7 @@ definitions: be treated as if the “stopType” attribute was set to ”FORCEFUL”, when the “changeStateTo” attribute is equal to “STOPPED” and the “stopType” attribute is absent. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/StopType" + $ref: "#/definitions/StopType" gracefulStopTimeout: description: > The time interval (in seconds) to wait for the VNF to be taken out @@ -485,6 +485,38 @@ definitions: declared in the VNFD as part of "OperateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + ChangeExtVnfConnectivityRequest: + #SOL003 location: 5.5.2.11 + description: > + This type represents request parameters for the + "Change external VNF connectivity" operation to modify the external + connectivity of a VNF instance. + type: object + required: + - extVirtualLinks + properties: + extVirtualLinks: + description: > + Information about external VLs to change (e.g. connect the VNF to). + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to external virtual + links. This attribute shall only be supported and may be present + if VNF-related resource management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + additionalParams: + description: > + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "ChangeExtVnfConnectivityOpConfig".". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + VnfInfoModificationRequest: description: > This type represents attribute modifications for an @@ -541,98 +573,95 @@ definitions: items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - ChangeExtVnfConnectivityRequest: - #SOL003 location: 5.5.2.11 + VnfInfoModifications: description: > - This type represents request parameters for the - "Change external VNF connectivity" operation to modify the external - connectivity of a VNF instance. + This type represents attribute modifications that were performed on an + "Individual VNF instance" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "VnfInfoModificationRequest" data structure, and additional attributes + of the "VnfInstance" data structure that were modified implicitly e.g. + when modifying the referenced VNF package. type: object - required: - - extVirtualLinks properties: - extVirtualLinks: + vnfInstanceName: description: > - Information about external VLs to change (e.g. connect the VNF to). - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + If present, this attribute signals modifications of the + "vnfInstanceName" attribute in "VnfInstance". + type: string + vnfInstanceDescription: + description: > + If present, this attribute signals modifications of the + "vnfInstanceDescription" attribute in "VnfInstance". + type: string + vnfConfigurableProperties: + description: > + If present, this attribute signals modifications of the + "vnfConfigurableProperties" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + If present, this attribute signals modifications of the "metadata" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute signals modifications of the "extensions" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > - Information about VIM connections to be used for managing the - resources for the VNF instance, or refer to external virtual - links. This attribute shall only be supported and may be present - if VNF-related resource management in direct mode is applicable. + If present, this attribute signals modifications of certain entries + in the "vimConnectionInfo" attribute array in "VnfInstance". type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - additionalParams: + vimConnectionInfoDeleteIds: description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "ChangeExtVnfConnectivityOpConfig".". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - CancelMode: - description: > - This type represents a parameter to select the mode of cancelling an - ongoing VNF LCM operation occurrence. - type: object - required: - - cancelMode - properties: - cancelMode: + If present, this attribute signals the deletion of certain entries + in the "vimConnectionInfo" attribute array in "VnfInstance". + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfdId: description: > - Cancellation mode to apply. - $ref: "#/definitions/CancelModeType" - - CancelModeType: - description: > - Cancellation mode. - GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or - "ROLLING_BACK" state, the VNFM shall not start any new resource - management operation and shall wait for the ongoing resource management - operations in the underlying system, typically the VIM, to finish - execution or to time out. After that, the VNFM shall put the operation - occurrence into the FAILED_TEMP state. - If the VNF LCM operation occurrence is in "STARTING" state, the VNFM - shall not start any resource management operation and shall wait for - the granting request to finish execution or time out. After that, the - VNFM shall put the operation occurrence into the ROLLED_BACK state. - FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or - "ROLLING_BACK" state, the VNFM shall not start any new resource - management operation, shall cancel the ongoing resource management - operations in the underlying system, typically the VIM, and shall wait - for the cancellation to finish or to time out. After that, the VNFM - shall put the operation occurrence into the FAILED_TEMP state. - If the VNF LCM operation occurrence is in "STARTING" state, the VNFM - shall not start any resource management operation and put the operation - occurrence into the ROLLED_BACK state. - type: string - enum: - - GRACEFUL - - FORCEFUL - - LcmOperationStateType: - description: > - Value | Description - ------|------------ - STARTING | The LCM operation is starting. - PROCESSING | The LCM operation is currently in execution. - COMPLETED | he LCM operation has been completed successfully. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. - ROLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. - type: string - enum: - - STARTING - - PROCESSING - - COMPLETED - - FAILED_TEMP - - FAILED - - ROLLING_BACK - - ROLLED_BACK + If present, this attribute signals modifications of the "vnfdId" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + If present, this attribute signals modifications of the + "vnfProvider" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfProductName: + description: > + If present, this attribute signals modifications of the + "vnfProductName" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfSoftwareVersion: + description: > + If present, this attribute signals modifications of the + "vnfSoftwareVersion" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersion: + description: > + If present, this attribute signals modifications of the + "vnfdVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" StopType: description: > diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 1764f374..47458062 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -56,7 +56,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" - name: Authorization description: > The authorization token for the request. diff --git a/src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml b/src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml deleted file mode 100644 index 0e5c8fed..00000000 --- a/src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml +++ /dev/null @@ -1,177 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -definitions: - VnfLcmOperationOccurrenceNotification: - description: > - This type represents a VNF lifecycle management operation occurrence - notification, which informs the receiver of changes in the VNF - lifecycle caused by a VNF LCM operation occurrence. The support of the - notification is mandatory. - This notification shall be triggered by the VNFM when there is a change - in the VNF lifecycle caused by a VNF LCM operation occurrence, - including: - * Instantiation of the VNF - * Scaling of the VNF instance (including auto-scaling) - * Healing of the VNF instance (including auto-healing) - * Change of the state of the VNF instance (i.e. Operate VNF) - * Change of the deployment flavour of the VNF instance - * Change of the external connectivity of the VNF instance - * Termination of the VNF instance - * Modification of VNF instance information and/or VNF configurable - properties through the "PATCH" method on the "Individual VNF instance" - resource. - If this is the initial notification about the start of a VNF LCM - operation occurrence, it is assumed that the notification is sent by the - VNFM before any action (including sending the grant request) is taken as - part of the LCM operation. Due to possible race conditions, the "start" - notification, the grant request and the LCM operation acknowledgment can - arrive in any order at the NFVO, and the NFVO shall be able to handle - such a situation. - If this is a notification about a final or intermediate result state of - a VNF LCM operation occurrence, the notification shall be sent after - all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - notificationStatus - - operationState - - vnfInstanceId - - operation - - isAutomaticInvocation - - vnfLcmOpOccId - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "VnfLcmOperationOccurrenceNotification" for this notification type. - type: string - enum: - - VnfLcmOperationOccurrenceNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - notificationStatus: - description: > - Indicates whether this notification reports about the start of a - lifecycle operation or the result of a lifecycle operation. - Permitted values: - * START: Informs about the start of the VNF LCM operation - occurrence. - * RESULT: Informs about the final or intermediate result of the VNF - LCM operation occurrence. - type: string - enum: - - START - - RESULT - operationState: - description: > - The state of the VNF LCM operation occurrence. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" - vnfInstanceId: - description: > - The identifier of the VNF instance affected. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operation: - description: > - The lifecycle management operation. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: - description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM - (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). - Set to false otherwise. - type: boolean - vnfLcmOpOccId: - description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the notification. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - affectedVnfcs: - description: > - Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" - affectedVirtualLinks: - description: > - Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" - affectedVirtualStorages: - description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" - changedInfo: - description: > - Information about the changed VNF instance information, including - changed VNF configurable properties. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any changes to VNF instance information, - including VNF configurable properties. - Shall be absent otherwise. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" - changedExtConnectivity: - description: > - Information about changed external connectivity, if this - notification represents the result of a lifecycle operation - occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". - Shall be absent otherwise. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" - error: - description: > - Details of the latest error, if one has occurred during executing - the LCM operation. Shall be present if the "operationState" - attribute is "FAILED_TEMP" or "FAILED", and shall be absent - otherwise. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - _links: - description: > - Links to resources related to this notification. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" \ No newline at end of file diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index d8e2b909..da7c31ed 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -94,6 +94,136 @@ definitions: VNFD as part of "ScaleVnfToLevelOpConfig". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + VnfInfoModificationRequest: + description: > + This type represents attribute modifications for an "Individual VNF instance" resource, + i.e. modifications to a resource representation based on the "VnfInstance" data type. + The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2 + are included in the "VnfInfoModificationRequest" data type. + The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1. + type: object + properties: + vnfInstanceName: + description: > + New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfdId: + description: > + New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadattametadata" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfcInfoModifications: + description: > + Modifications of certain entries in the "vnfcInfo" attribute array in the + "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. + type: array + items: + $ref: "#/definitions/VnfcInfoModifications" + vnfcInfoModificationsDeleteIds: + description: > + List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array + to be used as "deleteIdList" as defined below this table. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + + VnfInfoModifications: + description: > + This type represents attribute modifications that were performed on an + "Individual VNF instance" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "VnfInfoModificationRequest" data structure, and additional attributes + of the "VnfInstance" data structure that were modified implicitly e.g. + when modifying the referenced VNF package. + type: object + properties: + vnfInstanceName: + description: > + If present, this attribute signals modifications of the + "vnfInstanceName" attribute in "VnfInstance". + type: string + vnfInstanceDescription: + description: > + If present, this attribute signals modifications of the + "vnfInstanceDescription" attribute in "VnfInstance". + type: string + vnfConfigurableProperties: + description: > + If present, this attribute signals modifications of the + "vnfConfigurableProperties" attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + If present, this attribute signals modifications of the "metadata" + attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute signals modifications of the "extensions" + attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfdId: + description: > + If present, this attribute signals modifications of the "vnfdId" + attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + If present, this attribute signals modifications of the + "vnfProvider" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfProductName: + description: > + If present, this attribute signals modifications of the + "vnfProductName" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfSoftwareVersion: + description: > + If present, this attribute signals modifications of the + "vnfSoftwareVersion" attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersion: + description: > + If present, this attribute signals modifications of the + "vnfdVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + $ref: "SOL002SOL003_def.yaml#/definitions/Version" + VnfLcmOpOcc: description: > This type represents a VNF lifecycle management operation occurrence. @@ -279,149 +409,107 @@ definitions: currently allowed. $ref: "SOL002SOL003_def.yaml#/definitions/Link" - CancelModeType: + CancelMode: description: > - Cancellation mode. - GRACEFUL: The VNFM shall not start any new resource management operation - and shall wait for the ongoing resource management operations in the - underlying system, typically the VIM, to finish execution or to time - out. After that, the VNFM shall put the operation occurrence into the - FAILED_TEMP state. - FORCEFUL: The VNFM shall not start any new resource management - operation, shall cancel the ongoing resource management operations - in the underlying system, typically the VIM, and shall wait for the - cancellation to finish or to time out. After that, the VNFM shall put - the operation occurrence into the FAILED_TEMP state. - type: string - enum: - - GRACEFUL - - FORCEFUL + This type represents a parameter to select the mode of cancelling an + ongoing VNF LCM operation occurrence. + type: object + required: + - cancelMode + properties: + cancelMode: + description: > + Cancellation mode to apply. + $ref: "#/definitions/CancelModeType" - AffectedVirtualLink: + LccnSubscriptionRequest: description: > - This type provides information about added, deleted, modified and - temporary VLs. + This type represents a subscription request related to notifications + about VNF lifecycle changes. type: object required: - - id - - vnfVirtualLinkDescId - - changeType - - networkResource + - callbackUri properties: - id: - description: > - Identifier of the virtual link instance, identifying the applicable - "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vnfVirtualLinkDescId: - description: > - Identifier of the related VLD in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - changeType: + filter: description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - * LINK_PORT_ADDED - * LINK_PORT_REMOVED - For a temporary resource, an AffectedVirtualLink structure exists as - long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - - LINK_PORT_ADDED - - LINK_PORT_REMOVED - networkResource: + Filter settings for this subscription, to define the subset of all + notifications this subscription relates to. A particular + notification is sent to the subscriber if the filter matches, or if + there is no filter. + $ref: "#/definitions/LifecycleChangeNotificationsFilter" + callbackUri: description: > - Reference to the VirtualNetwork resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - metadata: + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" + authentication: description: > - Metadata about this resource. - The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VnfVirtualLinkResourceInfo structure. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this subscription, as defined + in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the subscriber requires + authorization of notifications. + $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" - AffectedVirtualStorage: + LccnSubscription: description: > - This type provides information about added, deleted, modified and - temporary virtual storage resources. + This type represents a subscription related to notifications about VNF + lifecycle changes. type: object required: - id - - virtualStorageDescId - - changeType - - storageResource + - callbackUri + - _links properties: id: description: > - Identifier of the storage instance, identifying the applicable - "virtualStorageResourceInfo" entry in the "VnfInstance" data type. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - virtualStorageDescId: - description: > - Identifier of the related VirtualStorage descriptor in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - changeType: + Identifier of this subscription resource. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + filter: description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - For a temporary resource, an AffectedVirtualStorage structure exists - as long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - storageResource: + Filter settings for this subscription, to define the subset of all + notifications this subscription relates to. A particular + notification is sent to the subscriber if the filter matches, or if + there is no filter. + $ref: "#/definitions/LifecycleChangeNotificationsFilter" + callbackUri: description: > - Reference to the VirtualStorage resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - metadata: + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" + _links: description: > - Metadata about this resource. - The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VirtualStorageResourceInfo structure. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/Link" - CpProtocolInfo: - description: > - This type describes the protocol layer(s) that a CP uses together with - protocol-related information, like addresses. + ExtVirtualLinkInfo: + type: object required: - - layerProtocol + - id + - resourceHandle properties: - layerProtocol: + id: description: > - The identifier of layer(s) and protocol(s) associated to the network - address information. - Permitted values: IP_OVER_ETHERNET - This attribute allows to signal the addition of further types of - layer and protocol in future versions of the present document in a - backwards-compatible way. In the current version of the present - document, only IP over Ethernet is supported. - type: string - enum: - - IP_OVER_ETHERNET - ipOverEthernet: + Identifier of the external VL and the related external VL + information instance. + The identifier is assigned by the NFV-MANO entity that manages this + VL instance. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + resourceHandle: description: > - IP addresses over Ethernet to assign to the extCP instance. Shall be - present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall - be absent otherwise. - $ref: "#/definitions/IpOverEthernetAddressInfo" + Reference to the resource realizing this VL. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + extLinkPorts: + description: > + Link ports of this VL. + type: array + items: + $ref: "#/definitions/ExtLinkPortInfo" ExtManagedVirtualLinkInfo: type: object @@ -451,413 +539,384 @@ definitions: items: $ref: "#/definitions/VnfLinkPortInfo" - ExtLinkPortInfo: - description: > - This type represents information about a link port of an external VL, - i.e. a port providing connectivity for the VNF to an NS VL. - type: object + ScaleInfo: required: - - id - - resourceHandle + - aspectId + - scaleLevel + type: object properties: - id: - description: > - Identifier of this link port as provided by the entity that has - created the link port. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - resourceHandle: + aspectId: description: > - Reference to the virtualised resource realizing this link - port. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - cpInstanceId: + Identifier of the scaling aspect. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + scaleLevel: description: > - Identifier of the external CP of the VNF connected to this link - port. There shall be at most one link port associated with any - external connection point instance. The value refers to an - "extCpInfo" item in the VnfInstance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + Indicates the scale level. The minimum value shall be 0 and the + maximum value shall be <= maxScaleLevel as described in the VNFD. + type: integer - ExtVirtualLinkInfo: + VnfcResourceInfo: + description: > + This type represents the information on virtualised compute and storage + resources used by a VNFC in a VNF instance. type: object required: - id - - resourceHandle + - vduId + - computeResource properties: id: description: > - Identifier of the external VL and the related external VL - information instance. - The identifier is assigned by the NFV-MANO entity that manages this - VL instance. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - resourceHandle: + Identifier of this VnfcResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: description: > - Reference to the resource realizing this VL. + Reference to the applicable VDU in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + computeResource: + description: > + Reference to the VirtualCompute resource. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - extLinkPorts: + storageResourceIds: description: > - Link ports of this VL. + References to the VirtualStorage resources. The value refers to a + VirtualStorageResourceInfo item in the VnfInstance. type: array items: - $ref: "#/definitions/ExtLinkPortInfo" - - IpOverEthernetAddressInfo: - description: > - This type represents information about a network address that has been - assigned. - type: object - properties: - macAddress: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + reservationId: description: > - MAC address, if assigned. - At least one of "macAddress" or "ipAddresses" shall be present. - $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress" - ipAddresses: + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfcCpInfo: description: > - Addresses assigned to the CP instance. Each entry represents IP - addresses assigned by fixed or dynamic IP address assignment per - subnet. + CPs of the VNFC instance. + Shall be present when that particular CP of the VNFC instance is + associated to an external CP of the VNF instance. + May be present otherwise. type: array items: type: object required: - - type + - id + - cpdId properties: - type: + id: description: > - The type of the IP addresses. - Permitted values: IPV4, IPV6. - type: string - enum: - - IPV4 - - IPV6 - addresses: + Identifier of this VNFC CP instance and the associated array + entry. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: description: > - Fixed addresses assigned (from the subnet defined by - "subnetId" if provided). - Exactly one of "addresses" or "addressRange" shall be present. + Identifier of the VDU CPD, cpdId, in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfExtCpId: + description: > + When the VNFC CP is exposed as external CP of the VNF, the + identifier of this external VNF CP. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpProtocolInfo: + description: > + Network protocol information for this CP. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - isDynamic: - description: > - Indicates whether this set of addresses was assigned - dynamically (true) or based on address information provided as - input from the API consumer (false). Shall be present if - "addresses" is present and shall be absent otherwise. - type: boolean - addressRange: + $ref: "#/definitions/CpProtocolInfo" + vnfLinkPortId: description: > - An IP address range used, e.g., in case of egress connections. - Exactly one of "addresses" or "addressRange" shall be present. - type: object - required: - - minAddress - - maxAddress - properties: - minAddress: - description: > - Lowest IP address belonging to the range. - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - maxAddress: - description: > - Highest IP address belonging to the range - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - subnetId: + Identifier of the "vnfLinkPorts" structure in the + "VnfVirtualLinkResourceInfo" structure. Shall be present if + the CP is associated to a link port. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + metadata: description: > - Subnet defined by the identifier of the subnet resource in - the VIM. - In case this attribute is present, IP addresses are bound - to that subnet. - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - - LccnLinks: - description: > - This type represents the links to resources that a notification can - contain. - type: object - required: - - vnfInstance - - subscription - properties: - vnfInstance: - description: > - Link to the resource representing the VNF instance to which the - notified change applies. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" - subscription: - description: > - Link to the related subscription. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" - vnfLcmOpOcc: + Metadata about this CP. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: description: > - Link to the VNF lifecycle management operation occurrence that this - notification is related to. Shall be present if there is a related - lifecycle operation occurrence. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - LccnSubscription: + VnfVirtualLinkResourceInfo: description: > - This type represents a subscription related to notifications about VNF - lifecycle changes. + This type represents the information that allows addressing a virtualised + resource that is used by an internal VL instance in a VNF instance. type: object required: - id - - callbackUri - - _links + - vnfVirtualLinkDescId + - networkResource properties: id: description: > - Identifier of this subscription resource. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - filter: + Identifier of this VnfVirtualLinkResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfVirtualLinkDescId: description: > - Filter settings for this subscription, to define the subset of all - notifications this subscription relates to. A particular - notification is sent to the subscriber if the filter matches, or if - there is no filter. - $ref: "#/definitions/LifecycleChangeNotificationsFilter" - callbackUri: + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + networkResource: description: > - The URI of the endpoint to send the notification to. - $ref: "SOL002SOL003_def.yaml#/definitions/Uri" - _links: + Reference to the VirtualNetwork resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + reservationId: description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/Link" + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfLinkPorts: + description: > + Links ports of this VL. + Shall be present when the linkPort is used for external connectivity + by the VNF (refer to VnfLinkPortInfo). + May be present otherwise. + type: array + items: + $ref: "#/definitions/VnfLinkPortInfo" + metadata: + description: > + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VnfLcmOperationOccurrenceNotification: + VirtualStorageResourceInfo: description: > - This type represents a VNF lifecycle management operation occurrence - notification, which informs the receiver of changes in the VNF - lifecycle caused by a VNF LCM operation occurrence. The support of the - notification is mandatory. - This notification shall be triggered by the VNFM when there is a change - in the state of a VNF LCM operation occurrence that changes the VNF lifecycle, - including: - * Instantiation of the VNF - * Scaling of the VNF instance (including auto-scaling) - * Healing of the VNF instance (including auto-healing) - * Change of the state of the VNF instance (i.e. Operate VNF) - * Change of the deployment flavour of the VNF instance - * Change of the external connectivity of the VNF instance - * Termination of the VNF instance - * Modification of VNF instance information and/or VNF configurable - properties through the "PATCH" method on the "Individual VNF instance" - resource. - Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, - and also specifies details of the notifications to be emitted at each state transition. - If this is the initial notification about the start of a VNF LCM operation occurrence, - it is assumed that the notification is sent by the VNFM before any action (including sending the grant request) - is taken as part of the LCM operation. Due to possible race conditions, the "start" notification, - the grant request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) - can arrive in any order at the NFVO, and the NFVO shall be able to handle such a situation. - If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, - the notification shall be sent after all related actions of the LCM operation that led - to this state have been executed. - The new state shall be set in the "Individual VNF LCM operation occurrence" resource before - the notification about the state change is sent. - See clause 5.6.2.2 for further provisions regarding sending this notification, including - in cases of handling LCM operation errors. + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. type: object required: - id - - notificationType - - subscriptionId - - timeStamp - - notificationStatus - - operationState - - vnfInstanceId - - operation - - isAutomaticInvocation - - vnfLcmOpOccId - - _links + - virtualStorageDescId + - storageResource properties: id: description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: + Identifier of this VirtualStorageResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + virtualStorageDescId: description: > - Discriminator for the different notification types. Shall be set to - "VnfLcmOperationOccurrenceNotification" for this notification type. - type: string - enum: - - VnfLcmOperationOccurrenceNotification - subscriptionId: + Identifier of the VirtualStorageDesc in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + storageResource: description: > - Identifier of the subscription that this notification relates to. + Reference to the VirtualStorage resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: + metadata: description: > - Date-time of the generation of the notification. - $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" - notificationStatus: + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfLinkPortInfo: + type: object + required: + - id + - resourceHandle + properties: + id: description: > - Indicates whether this notification reports about the start of a - lifecycle operation or the result of a lifecycle operation. + Identifier of this link port as provided by the entity that has created the link port. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: + description: > + Reference to the virtualised network resource realizing this link + port. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + cpInstanceId: + description: > + When the link port is used for external connectivity by the VNF, + this attribute represents the identifier of the external CP of the + VNF to be connected to this link port. + When the link port is used for internal connectivity in the VNF, + this attribute represents the VNFC CP to be connected to this link + port. + Shall be present when the link port is used for external + connectivity by the VNF. + May be present if used to reference a VNFC CP instance. + There shall be at most one link port associated with any external + connection point instance or internal connection point + (i.e. VNFC CP) instance. + The value refers to an "extCpInfo" item in the VnfInstance or a + "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpInstanceType: + description: > + Type of the CP instance that is identified by cpInstanceId. + Shall be present if "cpInstanceId" is present, and shall be absent otherwise. Permitted values: - * START: Informs about the start of the VNF LCM operation - occurrence. - * RESULT: Informs about the final or intermediate result of the VNF - LCM operation occurrence. + VNFC_CP: The link port is connected to a VNFC CP + EXT_CP: The link port is associated to an external CP. type: string enum: - - START - - RESULT - operationState: - description: > - The state of the VNF LCM operation occurrence. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" - vnfInstanceId: + - VNFC_CP + - EXT_CP + + ExtLinkPortInfo: + description: > + This type represents information about a link port of an external VL, + i.e. a port providing connectivity for the VNF to an NS VL. + type: object + required: + - id + - resourceHandle + properties: + id: description: > - The identifier of the VNF instance affected. + Identifier of this link port as provided by the entity that has + created the link port. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - operation: + resourceHandle: description: > - The lifecycle management operation. - $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: + Reference to the virtualised resource realizing this link + port. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + cpInstanceId: 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 - vnfLcmOpOccId: + Identifier of the external CP of the VNF connected to this link + port. There shall be at most one link port associated with any + external connection point instance. The value refers to an + "extCpInfo" item in the VnfInstance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + ExtLinkPortData: + description: > + This type represents an externally provided link port to be used to connect + an external connection point to an external VL. + type: object + required: + - id + - resourceHandle + properties: + id: description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the notification. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - affectedVnfcs: + Identifier of this link port as provided by the entity that + has created the link port. + $ref: 'SOL002SOL003_def.yaml#/definitions/Identifier' + resourceHandle: description: > - Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/AffectedVnfc" - affectedVirtualLinks: + Reference to the virtualised resource realizing this link + port. + $ref: 'SOL002SOL003_def.yaml#/definitions/ResourceHandle' + + CpProtocolInfo: + description: > + This type describes the protocol layer(s) that a CP uses together with + protocol-related information, like addresses. + required: + - layerProtocol + properties: + layerProtocol: description: > - Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVirtualLink" - affectedVirtualStorages: + The identifier of layer(s) and protocol(s) associated to the network + address information. + Permitted values: IP_OVER_ETHERNET + This attribute allows to signal the addition of further types of + layer and protocol in future versions of the present document in a + backwards-compatible way. In the current version of the present + document, only IP over Ethernet is supported. + type: string + enum: + - IP_OVER_ETHERNET + ipOverEthernet: description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVirtualStorage" - changedInfo: + IP addresses over Ethernet to assign to the extCP instance. Shall be + present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall + be absent otherwise. + $ref: "#/definitions/IpOverEthernetAddressInfo" + + IpOverEthernetAddressInfo: + description: > + This type represents information about a network address that has been + assigned. + type: object + properties: + macAddress: description: > - Information about the changed VNF instance information, including - changed VNF configurable properties. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any changes to VNF instance information, - including VNF configurable properties. - Shall be absent otherwise. - $ref: "#/definitions/VnfInfoModifications" - changedExtConnectivity: + MAC address, if assigned. + At least one of "macAddress" or "ipAddresses" shall be present. + $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress" + ipAddresses: description: > - Information about changed external connectivity, if this notification - represents the result of a lifecycle operation occurrence. - Shall be present if the "notificationStatus" is set to "RESULT" and - the "operation" has made any changes to the external connectivity of - the VNF instance. Shall be absent otherwise. + Addresses assigned to the CP instance. Each entry represents IP + addresses assigned by fixed or dynamic IP address assignment per + subnet. type: array items: - $ref: "#/definitions/ExtVirtualLinkInfo" - error: - description: > - Details of the latest error, if one has occurred during executing - the LCM operation (see clause 6.3 of ETSI GS NFV-SOL 013). - Shall be present if the "operationState" attribute is "FAILED_TEMP" or "FAILED", - and shall be absent otherwise. - $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + addresses: + description: > + Fixed addresses assigned (from the subnet defined by + "subnetId" if provided). + Exactly one of "addresses" or "addressRange" shall be present. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + isDynamic: + description: > + Indicates whether this set of addresses was assigned + dynamically (true) or based on address information provided as + input from the API consumer (false). Shall be present if + "addresses" is present and shall be absent otherwise. + type: boolean + addressRange: + description: > + An IP address range used, e.g., in case of egress connections. + Exactly one of "addresses" or "addressRange" shall be present. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in + the VIM. + In case this attribute is present, IP addresses are bound + to that subnet. + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - LccnSubscriptionRequest: - description: > - This type represents a subscription request related to notifications - about VNF lifecycle changes. + MonitoringParameter: type: object required: - - callbackUri + - id + - performanceMetric properties: - filter: + id: description: > - Filter settings for this subscription, to define the subset of all - notifications this subscription relates to. A particular - notification is sent to the subscriber if the filter matches, or if - there is no filter. - $ref: "#/definitions/LifecycleChangeNotificationsFilter" - callbackUri: + Identifier of the monitoring parameter defined in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + name: description: > - The URI of the endpoint to send the notification to. - $ref: "SOL002SOL003_def.yaml#/definitions/Uri" - authentication: + Human readable name of the monitoring parameter, as defined in the + VNFD. + type: string + performanceMetric: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription, as defined - in clause 8.3.4 of ETSI GS NFV-SOL 013. - This attribute shall only be present if the subscriber requires - authorization of notifications. - $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" - - LcmOperationStateType: - description: > - Value | Description - ------|------------ - STARTING | The LCM operation is starting. - PROCESSING | The LCM operation is currently in execution. - COMPLETED | he LCM operation has been completed successfully. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. - ROLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. - type: string - enum: - - STARTING - - PROCESSING - - COMPLETED - - FAILED_TEMP - - FAILED - - ROLLING_BACK - - ROLLED_BACK + Performance metric that is monitored. This attribute shall contain the + related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: string LifecycleChangeNotificationsFilter: description: > @@ -913,87 +972,130 @@ definitions: items: $ref: "#/definitions/LcmOperationStateType" - MonitoringParameter: + AffectedVirtualLink: + description: > + This type provides information about added, deleted, modified and + temporary VLs. type: object required: - id - - performanceMetric + - vnfVirtualLinkDescId + - changeType + - networkResource properties: id: description: > - Identifier of the monitoring parameter defined in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - name: + Identifier of the virtual link instance, identifying the applicable + "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfVirtualLinkDescId: description: > - Human readable name of the monitoring parameter, as defined in the - VNFD. - type: string - performanceMetric: + Identifier of the related VLD in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + changeType: description: > - Performance metric that is monitored. This attribute shall contain the - related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027. + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + * LINK_PORT_ADDED + * LINK_PORT_REMOVED + For a temporary resource, an AffectedVirtualLink structure exists as + long as the temporary resource exists. type: string - - ScaleInfo: - required: - - aspectId - - scaleLevel - type: object - properties: - aspectId: + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + - LINK_PORT_ADDED + - LINK_PORT_REMOVED + networkResource: description: > - Identifier of the scaling aspect. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - scaleLevel: + Reference to the VirtualNetwork resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + metadata: description: > - Indicates the scale level. The minimum value shall be 0 and the - maximum value shall be <= maxScaleLevel as described in the VNFD. - type: integer - - StopType: - description: > - * FORCEFUL: The VNFM will stop the VNF immediately after accepting the - request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of service - after accepting the request. Once that operation is successful or once - the timer value specified in the "gracefulStopTimeout" attribute - expires, the VNFM will stop the VNF. - type: string - enum: - - FORCEFUL - - GRACEFUL + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VnfVirtualLinkResourceInfo structure. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VirtualStorageResourceInfo: + AffectedVirtualStorage: description: > - This type represents the information that allows addressing a virtualised - resource that is used by a VNF instance. + This type provides information about added, deleted, modified and + temporary virtual storage resources. type: object required: - id - virtualStorageDescId + - changeType - storageResource properties: id: description: > - Identifier of this VirtualStorageResourceInfo instance. + Identifier of the storage instance, identifying the applicable + "virtualStorageResourceInfo" entry in the "VnfInstance" data type. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" virtualStorageDescId: description: > - Identifier of the VirtualStorageDesc in the VNFD. + Identifier of the related VirtualStorage descriptor in the VNFD. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + changeType: + description: > + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + For a temporary resource, an AffectedVirtualStorage structure exists + as long as the temporary resource exists. + type: string + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY storageResource: description: > - Reference to the VirtualStorage resource. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - reservationId: + Reference to the VirtualStorage resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + metadata: + description: > + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VirtualStorageResourceInfo structure. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + LccnLinks: + description: > + This type represents the links to resources that a notification can + contain. + type: object + required: + - vnfInstance + - subscription + properties: + vnfInstance: + description: > + Link to the resource representing the VNF instance to which the + notified change applies. + $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" + subscription: description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - metadata: + Link to the related subscription. + $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" + vnfLcmOpOcc: description: > - Metadata about this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + Link to the VNF lifecycle management operation occurrence that this + notification is related to. Shall be present if there is a related + lifecycle operation occurrence. + $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" VnfExtCpInfo: description: > @@ -1041,105 +1143,240 @@ definitions: Shall be present in case this CP instance maps to an internal VL. See note. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - VnfcInfoModifications: + VnfOperationalStateType: description: > - This type represents modifications of an entry in an array of "VnfcInfo" objects. - It shall comply with the provisions defined in table 5.5.3.24-1. - type: object - required: - - id - - vnfcConfigurableProperties - properties: - id: - description: > - Identifier of the VNFC instance of which the information is to be modified. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vnfcConfigurableProperties: - description: > - Changes of the configurable properties of the VNFC instance. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + STARTED: The VNF instance is up and running. + STOPPED: The VNF instance has been shut down. + type: string + enum: + - STARTED + - STOPPED - VnfcResourceInfo: + LcmOperationStateType: description: > - This type represents the information on virtualised compute and storage - resources used by a VNFC in a VNF instance. + STARTING: The LCM operation is starting. + PROCESSING: The LCM operation is currently in execution. + COMPLETED: The LCM operation has been completed successfully. + FAILED_TEMP: The LCM operation has failed and execution has stopped, + but the execution of the operation is not considered to be closed. + FAILED: The LCM operation has failed and it cannot be retried or rolled back, + as it is determined that such action won't succeed. + ROLLING_BACK: The LCM operation is currently being rolled back. + ROLLED_BACK: The LCM operation has been successfully rolled back, + i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. + type: string + enum: + - STARTING + - PROCESSING + - COMPLETED + - FAILED_TEMP + - FAILED + - ROLLING_BACK + - ROLLED_BACK + + CancelModeType: + description: > + Cancellation mode. + GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation and shall wait for the ongoing resource management + operations in the underlying system, typically the VIM, to finish + execution or to time out. After that, the VNFM shall put the operation + occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and shall wait for + the granting request to finish execution or time out. After that, the + VNFM shall put the operation occurrence into the ROLLED_BACK state. + FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation, shall cancel the ongoing resource management + operations in the underlying system, typically the VIM, and shall wait + for the cancellation to finish or to time out. After that, the VNFM + shall put the operation occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and put the operation + occurrence into the ROLLED_BACK state. + type: string + enum: + - GRACEFUL + - FORCEFUL + +######################################################################################################################## + VnfLcmOperationOccurrenceNotification: + description: > + This type represents a VNF lifecycle management operation occurrence + notification, which informs the receiver of changes in the VNF + lifecycle caused by a VNF LCM operation occurrence. The support of the + notification is mandatory. + This notification shall be triggered by the VNFM when there is a change + in the state of a VNF LCM operation occurrence that changes the VNF lifecycle, + including: + * Instantiation of the VNF + * Scaling of the VNF instance (including auto-scaling) + * Healing of the VNF instance (including auto-healing) + * Change of the state of the VNF instance (i.e. Operate VNF) + * Change of the deployment flavour of the VNF instance + * Change of the external connectivity of the VNF instance + * Termination of the VNF instance + * Modification of VNF instance information and/or VNF configurable + properties through the "PATCH" method on the "Individual VNF instance" + resource. + Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, + and also specifies details of the notifications to be emitted at each state transition. + If this is the initial notification about the start of a VNF LCM operation occurrence, + it is assumed that the notification is sent by the VNFM before any action (including sending the grant request) + is taken as part of the LCM operation. Due to possible race conditions, the "start" notification, + the grant request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) + can arrive in any order at the NFVO, and the NFVO shall be able to handle such a situation. + If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, + the notification shall be sent after all related actions of the LCM operation that led + to this state have been executed. + The new state shall be set in the "Individual VNF LCM operation occurrence" resource before + the notification about the state change is sent. + See clause 5.6.2.2 for further provisions regarding sending this notification, including + in cases of handling LCM operation errors. type: object required: - id - - vduId - - computeResource + - notificationType + - subscriptionId + - timeStamp + - notificationStatus + - operationState + - vnfInstanceId + - operation + - isAutomaticInvocation + - vnfLcmOpOccId + - _links properties: id: description: > - Identifier of this VnfcResourceInfo instance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vduId: + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: description: > - Reference to the applicable VDU in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - computeResource: + Discriminator for the different notification types. Shall be set to + "VnfLcmOperationOccurrenceNotification" for this notification type. + type: string + enum: + - VnfLcmOperationOccurrenceNotification + subscriptionId: description: > - Reference to the VirtualCompute resource. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - storageResourceIds: + Identifier of the subscription that this notification relates to. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: description: > - References to the VirtualStorage resources. The value refers to a - VirtualStorageResourceInfo item in the VnfInstance. + Date-time of the generation of the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + notificationStatus: + description: > + Indicates whether this notification reports about the start of a + lifecycle operation or the result of a lifecycle operation. + Permitted values: + * START: Informs about the start of the VNF LCM operation + occurrence. + * RESULT: Informs about the final or intermediate result of the VNF + LCM operation occurrence. + type: string + enum: + - START + - RESULT + operationState: + description: > + The state of the VNF LCM operation occurrence. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" + vnfInstanceId: + description: > + The identifier of the VNF instance affected. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle management operation. + $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM + (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). + Set to false otherwise. + type: boolean + vnfLcmOpOccId: + description: > + The identifier of the VNF lifecycle management operation occurrence + associated to the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + affectedVnfcs: + description: > + Information about VNFC instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - reservationId: + $ref: "SOL002SOL003_def.yaml#/definitions/AffectedVnfc" + affectedVirtualLinks: description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfcCpInfo: + Information about VL instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "#/definitions/AffectedVirtualLink" + affectedVirtualStorages: description: > - CPs of the VNFC instance. - Shall be present when that particular CP of the VNFC instance is - associated to an external CP of the VNF instance. - May be present otherwise. + Information about virtualised storage instances that were affected + during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. type: array items: - type: object - required: - - id - - cpdId - properties: - id: - description: > - Identifier of this VNFC CP instance and the associated array - entry. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpdId: - description: > - Identifier of the VDU CPD, cpdId, in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - vnfExtCpId: - description: > - When the VNFC CP is exposed as external CP of the VNF, the - identifier of this external VNF CP. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpProtocolInfo: - description: > - Network protocol information for this CP. - type: array - items: - $ref: "#/definitions/CpProtocolInfo" - vnfLinkPortId: - description: > - Identifier of the "vnfLinkPorts" structure in the - "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - metadata: - description: > - Metadata about this CP. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: + $ref: "#/definitions/AffectedVirtualStorage" + changedInfo: description: > - Metadata about this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + Information about the changed VNF instance information, including + changed VNF configurable properties. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any changes to VNF instance information, + including VNF configurable properties. + Shall be absent otherwise. + $ref: "#/definitions/VnfInfoModifications" + changedExtConnectivity: + description: > + Information about changed external connectivity, if this notification + represents the result of a lifecycle operation occurrence. + Shall be present if the "notificationStatus" is set to "RESULT" and + the "operation" has made any changes to the external connectivity of + the VNF instance. Shall be absent otherwise. + type: array + items: + $ref: "#/definitions/ExtVirtualLinkInfo" + error: + description: > + Details of the latest error, if one has occurred during executing + the LCM operation (see clause 6.3 of ETSI GS NFV-SOL 013). + Shall be present if the "operationState" attribute is "FAILED_TEMP" or "FAILED", + and shall be absent otherwise. + $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" VnfIdentifierCreationNotification: description: > @@ -1231,238 +1468,20 @@ definitions: Links to resources related to this notification. $ref: "#/definitions/LccnLinks" - VnfInfoModifications: - description: > - This type represents attribute modifications that were performed on an - "Individual VNF instance" resource. The attributes that can be included - consist of those requested to be modified explicitly in the - "VnfInfoModificationRequest" data structure, and additional attributes - of the "VnfInstance" data structure that were modified implicitly e.g. - when modifying the referenced VNF package. - type: object - properties: - vnfInstanceName: - description: > - If present, this attribute signals modifications of the - "vnfInstanceName" attribute in "VnfInstance". - type: string - vnfInstanceDescription: - description: > - If present, this attribute signals modifications of the - "vnfInstanceDescription" attribute in "VnfInstance". - type: string - vnfConfigurableProperties: - description: > - If present, this attribute signals modifications of the - "vnfConfigurableProperties" attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: - description: > - If present, this attribute signals modifications of the "metadata" - attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - If present, this attribute signals modifications of the "extensions" - attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vimConnectionInfo: - description: > - If present, this attribute signals modifications of certain entries - in the "vimConnectionInfo" attribute array in "VnfInstance". - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - vimConnectionInfoDeleteIds: - description: > - If present, this attribute signals the deletion of certain entries - in the "vimConnectionInfo" attribute array in "VnfInstance". - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfdId: - description: > - If present, this attribute signals modifications of the "vnfdId" - attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfProvider: - description: > - If present, this attribute signals modifications of the - "vnfProvider" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. - type: string - vnfProductName: - description: > - If present, this attribute signals modifications of the - "vnfProductName" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. - type: string - vnfSoftwareVersion: - description: > - If present, this attribute signals modifications of the - "vnfSoftwareVersion" attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/Version" - vnfdVersion: - description: > - If present, this attribute signals modifications of the - "vnfdVersion" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. - $ref: "SOL002SOL003_def.yaml#/definitions/Version" - - VnfInfoModificationRequest: - description: > - This type represents attribute modifications for an "Individual VNF instance" resource, - i.e. modifications to a resource representation based on the "VnfInstance" data type. - The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2 - are included in the "VnfInfoModificationRequest" data type. - The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1. - type: object - properties: - vnfInstanceName: - description: > - New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute. - type: string - vnfInstanceDescription: - description: > - New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. - type: string - vnfdId: - description: > - New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". - If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: - description: > - Modifications of the "metadattametadata" attribute in "VnfInstance". - If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - Modifications of the "extensions" attribute in "VnfInstance". - If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vnfcInfoModifications: - description: > - Modifications of certain entries in the "vnfcInfo" attribute array in the - "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. - type: array - items: - $ref: "#/definitions/VnfcInfoModifications" - vnfcInfoModificationsDeleteIds: - description: > - List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array - to be used as "deleteIdList" as defined below this table. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - - VnfLinkPortInfo: - type: object - required: - - id - - resourceHandle - properties: - id: - description: > - Identifier of this link port as provided by the entity that has created the link port. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - resourceHandle: - description: > - Reference to the virtualised network resource realizing this link - port. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - cpInstanceId: - description: > - When the link port is used for external connectivity by the VNF, - this attribute represents the identifier of the external CP of the - VNF to be connected to this link port. - When the link port is used for internal connectivity in the VNF, - this attribute represents the VNFC CP to be connected to this link - port. - Shall be present when the link port is used for external - connectivity by the VNF. - May be present if used to reference a VNFC CP instance. - There shall be at most one link port associated with any external - connection point instance or internal connection point - (i.e. VNFC CP) instance. - The value refers to an "extCpInfo" item in the VnfInstance or a - "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpInstanceType: - description: > - Type of the CP instance that is identified by cpInstanceId. - Shall be present if "cpInstanceId" is present, and shall be absent otherwise. - Permitted values: - VNFC_CP: The link port is connected to a VNFC CP - EXT_CP: The link port is associated to an external CP. - type: string - enum: - - VNFC_CP - - EXT_CP - - VnfOperationalStateType: - type: string - enum: - - STARTED - - STOPPED - - VnfVirtualLinkResourceInfo: + VnfcInfoModifications: description: > - This type represents the information that allows addressing a virtualised - resource that is used by an internal VL instance in a VNF instance. + This type represents modifications of an entry in an array of "VnfcInfo" objects. + It shall comply with the provisions defined in table 5.5.3.24-1. type: object required: - id - - vnfVirtualLinkDescId - - networkResource + - vnfcConfigurableProperties properties: id: description: > - Identifier of this VnfVirtualLinkResourceInfo instance. + Identifier of the VNFC instance of which the information is to be modified. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vnfVirtualLinkDescId: - description: > - Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - networkResource: - description: > - Reference to the VirtualNetwork resource. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfLinkPorts: - description: > - Links ports of this VL. - Shall be present when the linkPort is used for external connectivity - by the VNF (refer to VnfLinkPortInfo). - May be present otherwise. - type: array - items: - $ref: "#/definitions/VnfLinkPortInfo" - metadata: + vnfcConfigurableProperties: description: > - Metadata about this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - + Changes of the configurable properties of the VNFC instance. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" \ No newline at end of file -- GitLab From d5a438865280039c9636938c293234c23a0d4713 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 12 Jul 2019 16:07:50 +0200 Subject: [PATCH 066/147] SOL003: VNF Fault Management datatypes consolidated --- src/SOL003/definitions/SOL003_def.yaml | 167 ------------------------- 1 file changed, 167 deletions(-) delete mode 100644 src/SOL003/definitions/SOL003_def.yaml diff --git a/src/SOL003/definitions/SOL003_def.yaml b/src/SOL003/definitions/SOL003_def.yaml deleted file mode 100644 index b974c4e4..00000000 --- a/src/SOL003/definitions/SOL003_def.yaml +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -definitions: - Alarm: - description: > - The alarm data type encapsulates information about an alarm. - type: object - required: - - id - - managedObjectId - - rootCauseFaultyResource - - alarmRaisedTime - - ackState - - perceivedSeverity - - eventTime - - eventType - - probableCause - - isRootCause - - _links - properties: - id: - description: > - Identifier of this Alarm information element. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - managedObjectId: - description: > - Identifier of the affected VNF instance. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - rootCauseFaultyResource: - description: > - The virtualised resources that are causing the VNF fault. - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FaultyResourceInfo" - alarmRaisedTime: - description: > - Time stamp indicating when the alarm is raised by the managed - object. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - alarmChangedTime: - description: > - Time stamp indicating when the alarm was last changed. It shall be - present if the alarm has been updated. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - alarmClearedTime: - description: > - Time stamp indicating when the alarm was cleared. It shall be - present if the alarm has been cleared. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - ackState: - description: > - Acknowledgement state of the alarm. - Permitted values: - * UNACKNOWLEDGED - * ACKNOWLEDGED. - type: string - enum: - - UNACKNOWLEDGED - - ACKNOWLEDGED - perceivedSeverity: - description: > - Perceived severity of the managed object failure. - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType" - eventTime: - description: > - Time stamp indicating when the fault was observed. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - eventType: - description: > - Type of event. - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType" - faultType: - description: > - Additional information to clarify the type of the fault. - type: string - probableCause: - description: > - Information about the probable cause of the fault. - type: string - isRootCause: - description: > - Attribute indicating if this fault is the root for other correlated - alarms. If true, then the alarms listed in the attribute - CorrelatedAlarmId are caused by this fault. - type: boolean - correlatedAlarmIds: - description: > - List of identifiers of other alarms correlated to this fault. - type: array - items: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - faultDetails: - description: > - Provides additional information about the fault. - type: array - items: - type: string - _links: - description: > - Links for this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - objectInstance: - description: > - Link to the resource representing the VNF instance to which the - notified alarm is correlated. Shall be present if the VNF - instance information is accessible as a resource. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - - AlarmNotification: - description: > - This type represents an alarm notification about VNF faults. - This notification shall be triggered by the VNFM when: - * An alarm has been created. - * An alarm has been updated, e.g. if the severity of the alarm has - changed. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - alarm - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "AlarmNotification" for this notification type. - type: string - enum: - - AlarmNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - alarm: - description: > - Information about an alarm including AlarmId, affected VNF - identifier, and FaultDetails. - $ref: "#/definitions/Alarm" - _links: - description: > - Links to resources related to this notification. - type: object - required: - - subscription - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" \ No newline at end of file -- GitLab From 7ef99ceef67378de5653ff9b24439ad165701c1c Mon Sep 17 00:00:00 2001 From: moscatelli Date: Fri, 12 Jul 2019 17:46:33 +0200 Subject: [PATCH 067/147] SOL003: general consolidation --- src/SOL003/APIVersion/APIVersion.yaml | 4 ++-- .../VNFFaultManagement.yaml | 20 +++++++++++++++++++ .../VNFFaultManagementNotification.yaml | 2 +- src/SOL003/VNFIndicator/VNFIndicator.yaml | 11 ++++++++++ .../VNFLifecycleManagement.yaml | 2 ++ .../VNFLifecycleOperationGranting.yaml | 8 ++++---- .../VNFPackageManagement.yaml | 8 ++++++++ .../VNFPackageManagementNotification.yaml | 2 ++ .../VNFPerformanceManagementNotification.yaml | 4 +++- src/responses/SOL002SOL003_resp.yaml | 8 -------- 10 files changed, 53 insertions(+), 16 deletions(-) diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index e0036b32..4ca4ae57 100644 --- a/src/SOL003/APIVersion/APIVersion.yaml +++ b/src/SOL003/APIVersion/APIVersion.yaml @@ -15,8 +15,8 @@ info: contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf schemes: - http - https diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 2d47c6a8..b5b3ec17 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -138,14 +138,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual alarm # ############################################################################### @@ -316,6 +323,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the "Individual alarm" resource. Typically, this is due to the fact that the alarm is already in the state that is @@ -422,6 +431,17 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the + same callbackURI and the same filter already exists + and the policy of the VNFM is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of the + existing "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 45b9b56e..f99c9621 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -58,7 +58,7 @@ paths: in: body required: true schema: - $ref: "../definitions/SOL003_def.yaml#/definitions/AlarmNotification" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmNotification" - name: Authorization description: > The authorization token for the request. diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index f5ff58e3..81b9f87e 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -490,6 +490,17 @@ paths: items: $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the + same callbackURI and the same filter already + exists and the policy of the VNFM is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of + the existing "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 25e26731..e82b6f1f 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1087,6 +1087,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index fedac8d6..e3022347 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -269,15 +269,15 @@ paths: type: string maximum: 1 minimum: 1 - 303: - description: > - Shall be returned upon the following error: The grant has been rejected. - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: + description: > + 403 FORBIDDEN + + Shall be returned upon the following error: The grant has been rejected. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 46b84017..c72b6c54 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -494,12 +494,16 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: description: > + 406 NOT ACCEPTABLE + If the "Accept" header does not contain at least one name of a content type for which the NFVO can provide a representation of the VNFD, the NFVO shall respond with this response code. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that "onboardingState" of the @@ -626,12 +630,16 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: description: > + 406 NOT ACCEPTABLE + If the "Accept" header does not contain at least one name of a content type for which the NFVO can provide a representation of the VNFD, the NFVO shall respond with this response code. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > + 409 CONFLICT + Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is due to the fact that "onboardingState" of the diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index b9c9f24c..89c29219 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -113,6 +113,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > The GET method allows the server to test the notification endpoint that is provided by the client @@ -245,6 +246,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > The GET method allows the server to test the notification endpoint that is provided by the client diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index d06018bf..19268878 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -25,7 +25,7 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 + description: ETSI GS NFV-SOL 003 V2.6.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -115,6 +115,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > The GET method allows the server to test the notification endpoint that is provided by the client, @@ -248,6 +249,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > The GET method allows the server to test the notification endpoint that is provided by the client, diff --git a/src/responses/SOL002SOL003_resp.yaml b/src/responses/SOL002SOL003_resp.yaml index d42c235b..b0b39f8f 100644 --- a/src/responses/SOL002SOL003_resp.yaml +++ b/src/responses/SOL002SOL003_resp.yaml @@ -236,12 +236,6 @@ responses: $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 406: - description: > - 406 NOT ACCEPTABLE - - If the "Accept" header does not contain at least one name of a content type that is acceptable - to the API producer, the API producer shall respond with this response code. - The "ProblemDetails" structure may be omitted. headers: Content-Type: description: The MIME type of the body of the response. @@ -381,8 +375,6 @@ responses: $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 416: - description: > - 416 RANGE NOT SATISFIABLE headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 363451f76293e8103b2b6188fa379b8a4d75654f Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 07:52:57 +0200 Subject: [PATCH 068/147] SOL002_27 POST method (on VNF instances) response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 27c3569c..1d19f876 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -88,9 +88,12 @@ paths: description: > 201 CREATED - A VNF Instance identifier was created successfully. - The response body shall contain a representation of the created VNF instance, as defined in clause 5.5.2.2. - The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created VNF instance. + Shall be returned when a new "Individual VNF Instance" resource and + the associated VNF instance identifier has been created successfully. + The response body shall contain a representation of the created VNF + instance, as defined in clause 5.5.2.2. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the created VNF instance. headers: Content-Type: description: > -- GitLab From fba175d3c41cf2766f1940384f5b1ad0f9c18450 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 07:55:31 +0200 Subject: [PATCH 069/147] SOL002_28 GET method (on VNF instances) request&response updated --- .../VNFLifecycleManagement.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 1d19f876..59a17e70 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -161,7 +161,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the VnfInstance and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -193,28 +193,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfInstance structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: @@ -230,7 +230,7 @@ paths: description: > 200 OK - Information about zero or more VNF instances was queried + Information about zero or more VNF instances has been queried successfully. The response body shall contain in an array the representations of zero or more VNF instances. headers: -- GitLab From cb95e38e66838ad9e956da3ed494274be6ecbb59 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:04:17 +0200 Subject: [PATCH 070/147] SOL002_30 GET method (on Individual VNF instance) description and response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 59a17e70..71a4c3e5 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -312,15 +312,15 @@ paths: type: string get: description: > - Information about an individual VNF instance was queried successfully. + Information about a VNF instance by reading an "Individual VNF instance". responses: 200: description: > 200 OK - Information about zero or more VNF instances was queried - successfully. The response body shall contain - representations of zero or more VNF instances. + Information about an individual VNF instance has been read successfully. + The response body shall contain a representation of the VNF instance, + as defined in clause 5.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From e852914167ff8574d2bfea52b853e83cd538334c Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:06:56 +0200 Subject: [PATCH 071/147] SOL002_31 PATCH method (on Individual VNF instance) description and response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 71a4c3e5..6c72f43e 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -369,7 +369,7 @@ paths: patch: #SOL003 location: 5.4.3.3.4 description: > - This method modifies an individual VNF instance resource. Changes to + This method modifies an "Individual VNF instance" resource. Changes to the VNF configurable properties are applied to the configuration in the VNF instance, and are reflected in the representation of this resource. Other changes are applied to the VNF instance information @@ -389,7 +389,8 @@ paths: The request was accepted for processing, but the processing has not been completed. On success, the HTTP response shall include a "Location" HTTP header that contains - the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + the URI of the newly-created an "Individual VNF LCM operation occurrence" resource + corresponding to the operation. The response body shall be empty. headers: Content-Type: @@ -437,7 +438,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state - of the VNF instance resource. + of the "Individual VNF instance" resource. Typically, this is due to the fact that another LCM operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. -- GitLab From fc734f4356607b1642e12308bc40f51443c7e6a3 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:08:10 +0200 Subject: [PATCH 072/147] SOL002_32 DELETE method (on Individual VNF instance) description and response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 6c72f43e..2ac94298 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -459,13 +459,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" delete: description: > - This method deletes an individual VNF instance resource. + This method deletes an "Individual VNF instance" resource. responses: 204: description: > 204 NO CONTENT - The VNF instance resource and the associated VNF identifier were + The "Individual VNF instance" resource and the associated VNF identifier were deleted successfully. The response body shall be empty. headers: @@ -499,7 +499,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state. + Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" -- GitLab From be1f7d615780aeff4d175167df427f33cd954484 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:10:11 +0200 Subject: [PATCH 073/147] SOL002_34 POST method (on Instantiate VNF task) responses updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 2ac94298..158567ef 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -561,7 +561,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. @@ -611,7 +611,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state. + Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" -- GitLab From 7b9027042d60ac4cb344916fa73da687c9ceacc2 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:17:14 +0200 Subject: [PATCH 074/147] SOL002_36 POST method (on Scale VNF task) response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 158567ef..d5744923 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -674,10 +674,10 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Content-Type: description: The MIME type of the body of the response. @@ -724,7 +724,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF instance" resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. -- GitLab From 0ab06ed071115612c6d37f459f5d0f4eec886fbb Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:18:38 +0200 Subject: [PATCH 075/147] SOL002_38 POST method (on Scale VNF to level task) response updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index d5744923..91284004 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -788,7 +788,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. @@ -838,7 +838,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF instance" resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. -- GitLab From 4a6cc73a22e636693e86259d8accc7f914876f2c Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:20:14 +0200 Subject: [PATCH 076/147] SOL002_40 POST method (on Change VNF Flavour task) response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 91284004..f120e812 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -901,10 +901,10 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Content-Type: description: The MIME type of the body of the response. @@ -951,7 +951,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF instance" resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. -- GitLab From 101502659d3f289b8ea4b3673cbf814a2f9b3cfc Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:23:22 +0200 Subject: [PATCH 077/147] SOL002_42 POST method (on Terminate VNF task) response updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index f120e812..275563e1 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1013,7 +1013,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. @@ -1063,7 +1063,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF instance" resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. -- GitLab From 9adc09f1fd0f97617026ef59dd81f3a14d723eeb Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:24:41 +0200 Subject: [PATCH 078/147] SOL002_44 POST method (on Heal VNF task) response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 275563e1..a7508910 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1112,7 +1112,7 @@ paths: type: string post: description: > - The POST method requests to heal a VNF instance resource. + The POST method requests to heal a VNF instance. parameters: - name: HealVnfRequest description: Parameters for the Heal VNF operation. @@ -1125,10 +1125,10 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Content-Type: description: The MIME type of the body of the response. @@ -1175,7 +1175,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF instance" resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. -- GitLab From 5d81818097929d0e0c0dab4ccd6a603dbc98cbad Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:26:34 +0200 Subject: [PATCH 079/147] SOL002_47 POST method (on Operate VNF task) response updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index a7508910..c28a684d 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1224,7 +1224,7 @@ paths: type: string post: description: > - The POST method changes the operational state of a VNF instance resource. + The POST method changes the operational state of a VNF instance. parameters: - name: OperateVnfRequest description: Parameters for the Operate VNF operation. @@ -1237,7 +1237,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. -- GitLab From c7a70114b4bfd2363cf8f0651e235dafd3703dfd Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:27:17 +0200 Subject: [PATCH 080/147] SOL002_49 POST method (on Change External VNF Connectivity task) response updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index c28a684d..07fa909d 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1351,7 +1351,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. -- GitLab From 8c7d8792a35a9e7f9cba576171652faa9f798aa8 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:33:16 +0200 Subject: [PATCH 081/147] SOL002_51 GET method (on VNF LCM operation occurrences) request and response updated --- .../VNFLifecycleManagement.yaml | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 07fa909d..08dbadb0 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1444,7 +1444,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF may supply this parameter. All attribute names that appear in the VnfLcmOpOcc and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -1477,28 +1477,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfLcmOpOcc structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: @@ -1513,8 +1513,9 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. - Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + Shall be supported by the VNFM if the VNFM supports + alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1523,11 +1524,15 @@ paths: description: > 200 OK - Status information for zero or more VNF lifecycle management operation occurrences was queried successfully. - The response body shall contain in an array the status information about zero or more VNF lifecycle - operation occurrences, as defined in clause 5.5.2.13. - If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + Status information for zero or more VNF lifecycle management operation + occurrences has been queried successfully. + The response body shall contain in an array the status information + about zero or more VNF lifecycle operation occurrences, as defined in + clause 5.5.2.13. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP + header in this response shall follow the provisions in clause 5.4.2.3 + of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 8c1111278b4972db0756751dcb0834c463e6c3ba Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:34:33 +0200 Subject: [PATCH 082/147] SOL002_52 GET method ( on VNF LCM operation occurrences) description and response updated --- .../VNFLifecycleManagement.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 08dbadb0..c0443bf1 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1620,17 +1620,16 @@ paths: get: description: > The client can use this method to retrieve status information about a - VNF lifecycle management operation occurrence by reading an individual - "VNF LCM operation occurrence" resource. + VNF lifecycle management operation occurrence by reading an "Individual + VNF LCM operation occurrence" resource. responses: 200: description: > 200 OK - Information about an individual VNF instance was queried - successfully. The response body shall contain status - information about a VNF lifecycle management operation - occurrence. + Information about an individual VNF instance has been queried + successfully. The response body shall contain status information + about a VNF lifecycle management operation occurrence. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 10fa6a1c1aa2f5807a43e836876046dd3a539807 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:38:13 +0200 Subject: [PATCH 083/147] Revert "SOL002_52 GET method ( on VNF LCM operation occurrences) description and response updated" This reverts commit 8c1111278b4972db0756751dcb0834c463e6c3ba. --- .../VNFLifecycleManagement.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index c0443bf1..08dbadb0 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1620,16 +1620,17 @@ paths: get: description: > The client can use this method to retrieve status information about a - VNF lifecycle management operation occurrence by reading an "Individual - VNF LCM operation occurrence" resource. + VNF lifecycle management operation occurrence by reading an individual + "VNF LCM operation occurrence" resource. responses: 200: description: > 200 OK - Information about an individual VNF instance has been queried - successfully. The response body shall contain status information - about a VNF lifecycle management operation occurrence. + Information about an individual VNF instance was queried + successfully. The response body shall contain status + information about a VNF lifecycle management operation + occurrence. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 1241de32e1aef47fe54c6f44bcb3221e52949a9d Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:38:25 +0200 Subject: [PATCH 084/147] Revert "SOL002_51 GET method (on VNF LCM operation occurrences) request and response updated" This reverts commit 8c7d8792a35a9e7f9cba576171652faa9f798aa8. --- .../VNFLifecycleManagement.yaml | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 08dbadb0..07fa909d 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1444,7 +1444,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. + Attribute-based filtering expression according to clause 4.3.2. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF may supply this parameter. All attribute names that appear in the VnfLcmOpOcc and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -1477,28 +1477,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. + See clause 4.3.3 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. + See clause 4.3.3 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. + See clause 4.3.3 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. + See clause 4.3.3 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfLcmOpOcc structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: @@ -1513,9 +1513,8 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. - Shall be supported by the VNFM if the VNFM supports - alternative 2 (paging) according to clause 5.4.2.1 - of ETSI GS NFV-SOL 013 for this resource. + Shall be supported by the VNFM if the VNFM supports alternative 2 + (paging) according to clause 4.7.2.1 for this resource. in: query required: false type: string @@ -1524,15 +1523,11 @@ paths: description: > 200 OK - Status information for zero or more VNF lifecycle management operation - occurrences has been queried successfully. - The response body shall contain in an array the status information - about zero or more VNF lifecycle operation occurrences, as defined in - clause 5.5.2.13. - If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 - of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP - header in this response shall follow the provisions in clause 5.4.2.3 - of ETSI GS NFV-SOL 013. + Status information for zero or more VNF lifecycle management operation occurrences was queried successfully. + The response body shall contain in an array the status information about zero or more VNF lifecycle + operation occurrences, as defined in clause 5.5.2.13. + If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From e219b2af72171bbf568c093ffd5bc4d40b5a03dc Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:41:19 +0200 Subject: [PATCH 085/147] SOL002_51/52 GET method (on VNF LCM operation occurrences) request and responses updated --- .../VNFLifecycleManagement.yaml | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 07fa909d..8700d617 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1444,7 +1444,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF may supply this parameter. All attribute names that appear in the VnfLcmOpOcc and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -1477,28 +1477,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfLcmOpOcc structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: @@ -1513,8 +1513,9 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. - Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + Shall be supported by the VNFM if the VNFM supports + alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1523,11 +1524,15 @@ paths: description: > 200 OK - Status information for zero or more VNF lifecycle management operation occurrences was queried successfully. - The response body shall contain in an array the status information about zero or more VNF lifecycle - operation occurrences, as defined in clause 5.5.2.13. - If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + Status information for zero or more VNF lifecycle management operation + occurrences has been queried successfully. + The response body shall contain in an array the status information + about zero or more VNF lifecycle operation occurrences, as defined in + clause 5.5.2.13. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP + header in this response shall follow the provisions in clause 5.4.2.3 + of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. @@ -1581,7 +1586,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual VNF LCM operation occurrence # ############################################################################### -- GitLab From e14e33cb39709314429be981d9e62dd9fd99708d Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:42:16 +0200 Subject: [PATCH 086/147] SOL002_54 GET Method (on Individual VNF LCM operation occurrence) description and response updated --- .../VNFLifecycleManagement.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 8700d617..e7b35ccd 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1586,7 +1586,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### + ############################################################################### # Individual VNF LCM operation occurrence # ############################################################################### '/vnf_lcm_op_occs/{vnfLcmOpOccId}': @@ -1619,17 +1619,16 @@ paths: get: description: > The client can use this method to retrieve status information about a - VNF lifecycle management operation occurrence by reading an individual - "VNF LCM operation occurrence" resource. + VNF lifecycle management operation occurrence by reading an "Individual + VNF LCM operation occurrence" resource. responses: 200: description: > 200 OK - Information about an individual VNF instance was queried - successfully. The response body shall contain status - information about a VNF lifecycle management operation - occurrence. + Information about an individual VNF instance has been queried + successfully. The response body shall contain status information + about a VNF lifecycle management operation occurrence. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From d37e5b9f254b4f9e9d09bd4935515690aa89a290 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:47:07 +0200 Subject: [PATCH 087/147] SOL002_56 POST Method (on Retry operation task) description and response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index e7b35ccd..7eb4f9fe 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1709,13 +1709,15 @@ paths: description: > The POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" + state. responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + The request has been accepted for processing, but processing has + not been completed. The response shall have an empty payload body. headers: WWW-Authenticate: -- GitLab From 345d9c0f33b0fd5150808475f8229b6816f0f40b Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:47:48 +0200 Subject: [PATCH 088/147] SOL002_58 POST Method (on Rollback operation task) description and response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 7eb4f9fe..16ce83eb 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1803,13 +1803,14 @@ paths: description: > The POST method initiates rolling back a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" + state. responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + The request has been accepted for processing, but processing has not been completed. The response shall have an empty payload body. headers: WWW-Authenticate: -- GitLab From b158d3729b87f81a212054fc230c0764ab79df7c Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:49:07 +0200 Subject: [PATCH 089/147] SOL002_60 POST method (on Fail Operation task) updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 16ce83eb..864c900d 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1902,9 +1902,9 @@ paths: description: > 200 OK - The state of the VNF lifecycle management operation occurrence was - changed successfully. The response shall include a representation - of the VNF lifecycle operation occurrence resource. + The state of the VNF lifecycle management operation occurrence has + been changed successfully. The response shall include a representation + of the "Individual VNF lifecycle operation occurrence" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From a396f27efcbca3a78b55af28983db8b7241adc09 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:49:52 +0200 Subject: [PATCH 090/147] SOL002_62 POST Method (on Cancel operation task) description and response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 864c900d..043047d6 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1997,14 +1997,15 @@ paths: description: > The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled back, i.e. the related - "VNF LCM operation occurrence" is either in "PROCESSING" or + "Individual VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + The request has been accepted for processing, but processing has not + been completed. The response shall have an empty payload body. headers: #TODO: Add headers defined in 4.3.4.3 -- GitLab From 1c6c92ec193bccdb8d37e89ce54bf850b6b0d3af Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:51:07 +0200 Subject: [PATCH 091/147] SOL002_64 POST Method (on Subscriptions) description and response updated --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 043047d6..ac85911f 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2093,10 +2093,10 @@ paths: description: > 201 CREATED - The subscription was created successfully. The response body shall - contain a representation of the created subscription resource. + The subscription has been created successfully. The response body shall + contain a representation of the created "Individual subscription" resource. The HTTP response shall include a "Location" HTTP header that - points to the created subscription resource. + points to the created "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 9173c66a3b529103a735dcb1422d06b505807932 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:51:56 +0200 Subject: [PATCH 092/147] SOL002_65 GET Method (on Subscriptions) description and response updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index ac85911f..affbacdd 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2164,7 +2164,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the LccnSubscription and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -2199,7 +2199,7 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. + The list of subscriptions has been queried successfully. The response body shall contain in an array the representations of all active subscriptions of the functional block that invokes the method, i.e. zero or more representations of lifecycle change notification subscriptions as defined in clause 5.5.2.16. -- GitLab From 881eeaf385d4cb720adeffb61b664a89692956ed Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:52:41 +0200 Subject: [PATCH 093/147] SOL002_67 GET Method (on Individual subscription) description and response updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index affbacdd..ea97eded 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2281,7 +2281,7 @@ paths: get: description: > The GET method retrieves information about a subscription by reading - an individual subscription resource. + an "Individual subscription" resource. responses: 200: description: > @@ -2289,7 +2289,7 @@ paths: The operation has completed successfully. The response body shall contain a representation of the - subscription resource. + "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 8ca5694e7a38f0958d80a6cbc156986c36979fbf Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 08:53:19 +0200 Subject: [PATCH 094/147] SOL002_68 DELETE Method (on Individual subscription) response updated --- src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index ea97eded..754e2673 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2343,7 +2343,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + The "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: -- GitLab From 383f2e797afe8687847a0fa967c9b49dbceb3f0e Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 09:03:49 +0200 Subject: [PATCH 095/147] SOL002_69 POST Method (on Notification endpoint) request and response updated --- .../VNFLifecycleManagementNotification.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 71cd14f8..3611ba47 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -58,7 +58,7 @@ paths: The POST method delivers a notification from the server to the client. parameters: - name: VnfLcmOperationOccurrenceNotification - description: A notification about on-boarding of a VNF package. + description: A notification about lifecycle changes triggered by a VNF LCM operation occurrence. in: body required: true schema: @@ -82,7 +82,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + The notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -196,7 +196,7 @@ paths: - name: VnfIdentifierCreationNotification description: > A notification about the creation of a VNF identifier and the - related VNF instance resource. + related "Individual VNF instance" resource. in: body required: true schema: @@ -220,7 +220,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + The notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -334,7 +334,7 @@ paths: - name: VnfIdentifierDeletionNotification description: > A notification about the deletion of a VNF identifier and the - related VNF instance resource. + related "Individual VNF instance" resource. in: body required: true schema: @@ -358,7 +358,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + The notification has been delivered successfully. headers: WWW-Authenticate: description: > -- GitLab From 9a77f31f1f17ec43f3b246f224b3c77f5724e24f Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 09:04:32 +0200 Subject: [PATCH 096/147] SOL002_70 GET Method (on Notification endpoint) response updated --- .../VNFLifecycleManagementNotification.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 3611ba47..b5c24944 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -138,7 +138,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + The notification endpoint has been tested successfully. headers: WWW-Authenticate: description: > @@ -276,7 +276,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + The notification endpoint has been tested successfully. headers: WWW-Authenticate: description: > @@ -414,7 +414,7 @@ paths: description: > No Content - The notification endpoint was tested successfully. + The notification endpoint has been tested successfully. headers: WWW-Authenticate: description: > -- GitLab From 5e307e1704a4ea15e91be00e50bd36217c8594bf Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 09:21:54 +0200 Subject: [PATCH 097/147] SOL002_71 Resource "VnfInstance" updated --- .../SOL002VNFLifecycleManagement_def.yaml | 101 +++++++++++++++--- 1 file changed, 86 insertions(+), 15 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 5a493a9f..024737ce 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -33,6 +33,15 @@ definitions: vnfdId: description: > Identifier of the VNFD on which the VNF instance is based. + This attribute can be modified with the PATCH method. + Modifying the value of this attribute shall not be performed + when conflicts exist between the previous and the newly referred + VNF package, i.e. when the new VNFD is not changed with respect + to the previous VNFD apart from referencing to other VNF software + images. In order to avoid misalignment of the VnfInstance with + the current VNF's on-boarded VNF package, the values of attributes + in the VnfInstance that have corresponding attributes in the VNFD + shall be kept in sync with the values in the VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -58,7 +67,39 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > - Current values of the configurable properties of the VNF instance. + Additional VNF-specific attributes that provide the current values + of the configurable properties of the VNF instance. + These attributes represent values that are stored persistently in + the VnfInstance structure and that correspond to configuration + parameters of the VNF instance. + Modifying these attributes affects the configuration of the VNF + instance either directly (if the VNF instance is in INSTANTIATED + state at the time of the modification) or as part of the subsequent + VNF instantiation operation (if the VNF instance is in NOT_INSTANTIATED + state at the time of the modification). + Configurable properties referred in these attributes shall be declared + in the VNFD. + The declaration of configurable properties in the VNFD can optionally + contain the specification of initial values. + ETSI GS NFV-SOL 001 specifies the structure and format of the + VNFD based on TOSCA specifications. + VNF configurable properties are sometimes also referred to as configuration + parameters applicable to a VNF. Some of these are set prior to instantiation + and cannot be modified if the VNF is instantiated, some are set prior to + instantiation (are part of initial configuration) and can be modified later, + and others can be set only after instantiation. The applicability of certain + configuration may depend on the VNF and the required operation of the VNF at + a certain point in time. + These configurable properties include the following standard attributes, + which are declared in the VNFD if auto-scaling and/or auto-healing are + supported by the VNF: + - isAutoscaleEnabled: If present, the VNF supports auto-scaling. If set + to true, auto-scaling is currently enabled. If set to false, auto-scaling + is currently disabled. + - isAutohealEnabled: If present, the VNF supports auto-healing. If set + to true, auto-healing is currently enabled. If set to false, auto-healing + is currently disabled. + This attributeThese attributes can be modified with the PATCH method. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" instantiationState: description: > @@ -148,17 +189,47 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VirtualStorageResourceInfo" metadata: description: > - Additional VNF-specific metadata describing the VNF instance. - Metadata that are writeable are declared in the VNFD. + Additional VNF-specific attributes that provide metadata describing the VNF instance. + These attributes represent values that are stored persistently in the VnfInstance + structure for consumption by functional blocks that invoke the VNF lifecycle management + interface. They are not consumed by the VNFM, or the lifecycle management scripts. + + Modifying the values of these attributes has no effect on the VNF instance, it only + affects the information represented in the VnfInstance structure. + Metadata that VNF provider foresees shall be declared in the VNFD. The VNFM shall + accept requests to write metadata that are not are declared in the VNFD. + + These attributes can be initialized with default values from VNFD and/or with values + passed in the CreateVnfRequest structure (see clause 5.5.2.3). + This attribute can be modified with the PATCH method. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - VNF specific attributes that affect the lifecycle management of this VNF instance by the VNFM, - or the lifecycle management scripts. Extensions that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + Additional VNF specific attributes that affect the lifecycle management of this + VNF instance by the VNFM, or the lifecycle management scripts. + These attributes represent values that are stored persistently in the VnfInstance + structure for consumption by the VNFM, or by the lifecycle management scripts + during the execution of VNF lifecycle management operations. + + Modifying the values of these attributes has no direct effect on the VNF instance; + however, the modified attribute values can be considered during subsequent VNF + lifecycle management operations, which means that the modified values can indirectly + affect the configuration of the VNF instance. + + All extensions that are allowed for the VNF shall be declared in the VNFD. + This attribute can be be initialized with default values from VNFD and/or + with values passed in the InstantiateVnfRequest structure (see clause 5.5.2.4). + + A value initialised with default values from the VNFD can be updated with values + passed in the InstantiateVnfRequest structure. + + Further, these attributes can be modified with the PATCH method. + + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on + TOSCA specifications. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > @@ -175,54 +246,54 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" instantiate: description: > - Link to the "instantiate" task resource, if the related operation + Link to the "Instantiate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance in NOT_INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" terminate: description: > - Link to the "terminate" task resource, if the related operation + Link to the "Terminate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" scale: description: > - Link to the "scale" task resource, if the related operation is + Link to the "Scale VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" scaleToLevel: description: > - Link to the "scale_to_level" task resource, if the related + Link to the "Scale VNF to Level task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" changeFlavour: description: > - Link to the "change_flavour" task resource, if the related + Link to the "Change VNF flavour task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" heal: description: > - Link to the "heal" task resource, if the related operation is + Link to the "Heal VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" operate: description: > - Link to the "operate" task resource, if the related operation is + Link to the "Operate VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" changeExtConn: description: > - Link to the "change_ext_conn" task resource, if the related + Link to the "Change external VNF connectivity task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" -- GitLab From 1dfb789f4ee95715e98debfe5d35628216e9c90f Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 09:28:47 +0200 Subject: [PATCH 098/147] SOL002_75 Resource "VnfInfoModifications" updated --- src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index da7c31ed..68547f2f 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -218,10 +218,10 @@ definitions: If present, this attribute signals modifications of the "vnfdVersion" attribute in "VnfInstance". If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this + "vnfdId" attribute) was modified implicitly following a request to + modify the "vnfdId" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. + "vnfdId” attribute. $ref: "SOL002SOL003_def.yaml#/definitions/Version" VnfLcmOpOcc: -- GitLab From d0324e58aaf5cbc8bb53e3b2a7daa38ce3161168 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 09:33:26 +0200 Subject: [PATCH 099/147] SOL002_78 Resource "VnfLcmOperationOccurrenceNotification" updated --- .../VNFLifecycleManagementNotification_def.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml index 4f81f3d4..c425ca3b 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml @@ -31,8 +31,9 @@ definitions: If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, the notification shall be sent after all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. + been executed. + The new state shall be set in the "Individual VNF LCM operation occurrence" + resource before the notification about the state change is sent. type: object required: - id @@ -159,7 +160,8 @@ definitions: Information about changed external connectivity, if this notification represents the result of a lifecycle operation occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". + "RESULT" and the "operation" has made any change of the external + connectivity of the VNF instance. Shall be absent otherwise. type: array items: -- GitLab From 70b30217646e80f8da55c355010efa1b24f63df9 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 10:56:36 +0200 Subject: [PATCH 100/147] VnfIdentifierCreationNotification --- .../VNFPerformanceManagement.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index c7620524..e3670f0e 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -61,6 +61,9 @@ paths: post: description: > The POST method creates a PM job. + As the result of successful executing this method, a new + "Individual PM job" resource as defined in clause 6.4.3 shall + have been created. parameters: - name: CreatePmJobRequest description: The VNF creation parameters @@ -87,10 +90,11 @@ paths: description: > 201 CREATED - The PM job was created successfully. The response body shall - contain a representation of the created PM job resource. + Shall be returned when the PM job has been created successfully. + The response body shall contain a representation of the created + PM job resource. The HTTP response shall include a "Location" HTTP header that - points to the created PM job resource. + points to the created "Individual PM job" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 5a55911a671081989d887dc0a032210dcdf194fc Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 10:57:40 +0200 Subject: [PATCH 101/147] Revert "VnfIdentifierCreationNotification" This reverts commit 70b30217646e80f8da55c355010efa1b24f63df9. --- .../VNFPerformanceManagement.yaml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index e3670f0e..c7620524 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -61,9 +61,6 @@ paths: post: description: > The POST method creates a PM job. - As the result of successful executing this method, a new - "Individual PM job" resource as defined in clause 6.4.3 shall - have been created. parameters: - name: CreatePmJobRequest description: The VNF creation parameters @@ -90,11 +87,10 @@ paths: description: > 201 CREATED - Shall be returned when the PM job has been created successfully. - The response body shall contain a representation of the created - PM job resource. + The PM job was created successfully. The response body shall + contain a representation of the created PM job resource. The HTTP response shall include a "Location" HTTP header that - points to the created "Individual PM job" resource. + points to the created PM job resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 393ad5cb1b69bd3793dd8f17333a16af47f35921 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 10:58:18 +0200 Subject: [PATCH 102/147] SOL002_91 POST Method (on "PM jobs") description and response updated --- .../VNFPerformanceManagement.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index c7620524..e3670f0e 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -61,6 +61,9 @@ paths: post: description: > The POST method creates a PM job. + As the result of successful executing this method, a new + "Individual PM job" resource as defined in clause 6.4.3 shall + have been created. parameters: - name: CreatePmJobRequest description: The VNF creation parameters @@ -87,10 +90,11 @@ paths: description: > 201 CREATED - The PM job was created successfully. The response body shall - contain a representation of the created PM job resource. + Shall be returned when the PM job has been created successfully. + The response body shall contain a representation of the created + PM job resource. The HTTP response shall include a "Location" HTTP header that - points to the created PM job resource. + points to the created "Individual PM job" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 2d72cbf48bab3a3c47fe1f2b7e00a7ad6a37b6bd Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:02:59 +0200 Subject: [PATCH 103/147] SOL002_92 GET Method (on "PM jobs") request and response updated --- .../VNFPerformanceManagement.yaml | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index e3670f0e..b3221345 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -164,7 +164,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the PmJob and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. @@ -197,28 +197,32 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM shall support this parameter. The following attributes shall be excluded from the PmJob structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: @@ -230,7 +234,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -239,11 +243,16 @@ paths: description: > 200 OK - Information about zero or more PM jobs was queried successfully. + Shall be returned when information about zero or more PM jobs was queried successfully. The response body shall contain in an array the representations of zero or more PM jobs, as defined in clause 6.5.2.7. - If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), + "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in + the request, the data in the response body shall have been transformed according to + the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013for this resource, inclusion of the Link HTTP header in this + response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 715874c4ac5e8572f90339fdef3c3c14ecf45393 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:06:36 +0200 Subject: [PATCH 104/147] SOL002_94 GET Method (on "PM job") response updated --- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index b3221345..48791d5b 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -352,8 +352,9 @@ paths: description: > 200 OK - Information about an individual PM job was queried successfully. - The response body shall contain a representation of the PM job + Shall be returned when information about an individual PM job has been + ueried successfully. + The response body shall contain a representation of the "Individual PM job" resource. headers: Content-Type: -- GitLab From b4958ef285da0b410c6c29e56fa861a37fc3742c Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:07:38 +0200 Subject: [PATCH 105/147] SOL002_95 DELETE Method (on "PM job") description and response updated --- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 48791d5b..2261cb31 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -404,12 +404,14 @@ paths: delete: description: > This method terminates an individual PM job. + As the result of successfully executing this method, the "Individual PM job" + resource shall not exist any longer. responses: 204: description: > 204 NO CONTENT - The PM job was deleted successfully. + Shall be returned when the PM job has been deleted successfully. The response body shall be empty. headers: Content-Type: -- GitLab From 7ab12a3688dbab0c613ee852a3c46e35564d9394 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:09:33 +0200 Subject: [PATCH 106/147] SOL002_98 GET Method (on "Invidual performance report") response updated --- .../VNFPerformanceManagement.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 2261cb31..81bb9af9 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -505,10 +505,10 @@ paths: description: > 200 OK - Information of an individual performance report was read - successfully. - The response body shall contain a representation of the - performance report resource. + Shall be returned when information of an individual performance report + has been read successfully. + The response body shall contain a representation of the "Individual + performance report" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 912db8bd41c852b6cf5b14c0dca460615c28cc2e Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:11:51 +0200 Subject: [PATCH 107/147] SOL002_100 POST Method (on "Thresholds") description, request and response updated --- .../VNFPerformanceManagement.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 81bb9af9..0548ef67 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -577,10 +577,13 @@ paths: post: description: > The POST method can be used by the client to create a threshold. + As the result of successfully executing this method, a new + "Individual threshold" resource as defined in clause 6.4.6 shall + have been created. parameters: - name: CreateThresholdRequest description: > - Request parameters to create a threshold resource. + Request parameters to create a new "Individual threshold" resource. in: body required: true schema: @@ -604,10 +607,11 @@ paths: description: > 201 CREATED - A threshold was created successfully. The response body shall - contain a representation of the created threshold resource. + Shall be returned when a threshold has been created successfully. + The response body shall contain a representation of the created + "Individual threshold" resource. The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created threshold resource. + contains the resource URI of the created resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 9359b2e11a4171b8b78acecce6b05eb2a1566975 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:14:58 +0200 Subject: [PATCH 108/147] SOL002_101 GET Method (on "Thresholds") request and response updated --- .../VNFPerformanceManagement.yaml | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 0548ef67..9abf4488 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -674,7 +674,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the Thresholds and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. @@ -708,7 +708,8 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for + this resource. in: query required: false type: string @@ -719,10 +720,17 @@ paths: Information about zero or more thresholds was queried successfully. - The response body shall contain in an array the representations of zero or more thresholds, - as defined in clause 6.5.2.9. - If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + + If the "filter" URI parameter was supplied in the request, + the data in the response body shall have been transformed + according to the rules specified in clause 5.2.2 of + ETSI GS NFV SOL 013. + The response body shall contain in an array the representations + of zero or more thresholds, as defined in clause 6.5.2.9. + If the VNFM supports alternative 2 (paging) according to + clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion + of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 2a9b6225f7ae0fafee9fd379fa514916a049e2c2 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:17:06 +0200 Subject: [PATCH 109/147] SOL002_103 GET Method (on "Threshold") request and response updated --- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 9abf4488..10ea711d 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -830,9 +830,9 @@ paths: description: > 200 OK - Information about an individual threshold was queried - successfully. The response body shall contain a - representation of the threshold. + Shall be returned when information about an individual threshold + has been queried successfully. + The response body shall contain a representation of the threshold. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From b17a74cb45b8bf191312101e24b1f3076a5a9259 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:18:03 +0200 Subject: [PATCH 110/147] SOL002_104 DELETE Method (on "Threshold") description and response updated --- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 10ea711d..760b1ecb 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -881,6 +881,8 @@ paths: delete: description: > This method allows to delete a threshold. + As the result of successfully executing this method, the + "Individual threshold" resource shall not exist any longer. parameters: - name: Accept description: > @@ -894,7 +896,7 @@ paths: description: > 204 NO CONTENT - The threshold was deleted successfully. + Shall be returned when the threshold was deleted successfully. The response body shall be empty. headers: Version: -- GitLab From bd9d087fc450bdc00ddd0259d35f6797e7171572 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:21:13 +0200 Subject: [PATCH 111/147] SOL002_106 POST Method (on "Subscriptions") description and response updated --- .../VNFPerformanceManagement.yaml | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 760b1ecb..7c9ef58d 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -959,6 +959,9 @@ paths: post: description: > The POST method creates a new subscription. + As the result of successfully executing this method, a new + "Individual subscription" resource as defined in clause 6.4.8 + shall have been created. This method shall not trigger any notification. parameters: - name: PmSubscriptionRequest description: > @@ -986,11 +989,11 @@ paths: description: > 201 CREATED - The subscription was created successfully. A representation of the - created subscription resource shall be returned in the response - body. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created subscription resource. + Shall be returned when the subscription was created successfully. + A representation of the created "Individual subscription" resource + shall be returned in the response body. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the created "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1020,10 +1023,11 @@ paths: description: > 303 SEE OTHER - A subscription with the same callbackURI and the same filter already exists and the policy of the VNFM - is to not create redundant subscriptions. - The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing - subscription resource. + Shall be returned when a subscription with the same callbackURI and + the same filter already exists and the policy of the VNFM is to not + create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing "Individual subscription" resource. The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: -- GitLab From 554a577574fc9a25c18b9acf14089e30d5500ae5 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:24:14 +0200 Subject: [PATCH 112/147] SOL002_107 GET Method (on "Subscriptions") request and response updated --- .../VNFPerformanceManagement.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 7c9ef58d..0fcc6228 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1069,7 +1069,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the PmSubscription and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. @@ -1103,7 +1103,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1112,12 +1112,16 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. + Shall be returned when the list of subscriptions was queried successfully. The response body shall contain in an array the representations of all active subscriptions of the functional block that invokes the method, i.e. zero or more representations of PM subscriptions as defined in clause 6.5.2.3. - If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + If the "filter" URI parameter was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in clause 5.2.2 + of ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From ddc0cf34c4a89e5446ffcfc0b2b48c8e6fc5d028 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:25:20 +0200 Subject: [PATCH 113/147] SOL002_109 GET Method (on "Individual subscription") response updated --- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 0fcc6228..36c87f7a 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1221,8 +1221,9 @@ paths: description: > 200 OK - The subscription was read successfully. The response body shall - contain a representation of the subscription resource. + Shall be returned when the subscription has been read successfully. + The response body shall contain a representation of the "Individual + subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 7acce9ebf27c89facae1f149e024fb16b5834e77 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:27:29 +0200 Subject: [PATCH 114/147] SOL002_104 DELETE Method (on "Threshold") description and response updated --- .../VNFPerformanceManagement.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 36c87f7a..8ac09d90 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1272,6 +1272,11 @@ paths: delete: description: > This method terminates an individual subscription. + As the result of successfully executing this method, the "Individual subscription" + resource shall not exist any longer. This means that no notifications for that + subscription shall be sent to the formerly-subscribed API consumer. + NOTE: Due to race conditions, some notifications might still be received by the + formerly-subscribed API consumer for a certain time period after the deletion. parameters: - name: Accept description: > @@ -1285,7 +1290,8 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been + deleted successfully. The response body shall be empty. headers: Version: -- GitLab From bfb1017872fba540badf3dc3d5e892ee9f787a20 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:29:28 +0200 Subject: [PATCH 115/147] SOL002_111 POST Method (on Notification endpoint) description and response updated --- .../VNFPerformanceManagementNotification.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 4746d9ff..fe96567d 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -42,7 +42,9 @@ paths: Notify The POST method delivers a notification regarding a performance - management event from the server to the client. + management event from API producer to an API consumer. The API consumer + shall have previously created an "Individual subscription" resource with + a matching filter. parameters: - name: PerformanceInformationAvailableNotification description: > @@ -76,7 +78,7 @@ paths: description: > No Content - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -169,7 +171,9 @@ paths: Notify The POST method delivers a notification regarding a performance - management event from the server to the client. + management event from API producer to an API consumer. The API consumer + shall have previously created an "Individual subscription" resource with + a matching filter. parameters: - name: ThresholdCrossedNotification description: > @@ -203,7 +207,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > -- GitLab From e2e806b34568745a6b6b9a11d7e49c946b5d41f2 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:30:19 +0200 Subject: [PATCH 116/147] SOL002_112 GET Method (on Notification endpoint) response updated --- .../VNFPerformanceManagementNotification.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index fe96567d..52f60844 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -131,7 +131,9 @@ paths: description: > No Content - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been + tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -260,7 +262,9 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been + tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > -- GitLab From 11e5d22b175765edbe82c49ab2e10e7a98c80956 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:33:05 +0200 Subject: [PATCH 117/147] SOL002_114 Resource "ThresholdCrossedNotification " updated --- src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml index 675a97fb..289e19d0 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -520,6 +520,8 @@ definitions: description: > This type represents a notification that is sent when a threshold has been crossed. + The timing of sending this notification is determined by the capability + of the producing entity to evaluate the threshold crossing condition. The notification shall be triggered by the VNFM when a threshold has been crossed. type: object -- GitLab From 7f2d2b00120dbbcffeaef9be2c251d263ff172c0 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 11:34:45 +0200 Subject: [PATCH 118/147] SOL002_115 Resource "PerformanceInformationAvailableNotification" updated --- src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml index 289e19d0..61160e4f 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -48,10 +48,10 @@ definitions: description: > This notification informs the receiver that performance information is available. - The timing of sending this notification is determined by the capability - of the producing entity to evaluate the threshold crossing condition. The notification shall be triggered by the VNFM when new performance information collected by a PM job is available. + The periodicity of triggering this notification is influenced by the + "reportingPeriod" attribute in the "PmJobCriteria" data structure. type: object required: - id -- GitLab From 4fd73553a26f69e7a412cc18279a50099c3addd2 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:10:07 +0200 Subject: [PATCH 119/147] SOL002_122 GET Method (on "Alarms") request and response updated --- .../VNFFaultManagement/VNFFaultManagement.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 6d690c31..89af4fc6 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -79,7 +79,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter. The following attribute names shall be supported in the filter expression: id, managedObjectId, @@ -116,7 +116,8 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 5.2 of ETSI GS NFV-SOL 013 + for this resource. in: query required: false type: string @@ -125,11 +126,15 @@ paths: description: > 200 OK - Information about zero or more alarms was queried successfully. + Shall be returned when information about zero or more alarms was queried successfully. The response body shall contain in an array the representations of zero or more alarms as defined in clause 7.5.2.4. - If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + If the "filter" URI parameter was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clause 5.2.2 of + ETSI GS NFV-SOL 013. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013for this resource, inclusion of the Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From a2558e1e0f6d3a5481500d0cff709ff8d3d72a36 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:10:54 +0200 Subject: [PATCH 120/147] SOL002_124 GET Method (on "Alarm") response updated --- src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 89af4fc6..1697913f 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -240,7 +240,8 @@ paths: description: > 200 OK - Information about an individual alarm was read successfully. + Shall be returned when information about an individual alarm read + successfully. The response body shall contain a representation of the individual alarm. headers: -- GitLab From 86c33a5fbb9a9357feed2aa532ac6a55799fbd8c Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:14:25 +0200 Subject: [PATCH 121/147] SOL002_125 PATCH Method (on "Alarm") response updated --- .../VNFFaultManagement.yaml | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 1697913f..64267f6d 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -318,9 +318,9 @@ paths: description: > 200 OK - The request was accepted and completed. The response body shall - contain attribute modifications for an ‘Individual alarm’ - resource. + Shall be returned when the request was accepted and completed. + The response body shall contain attribute modifications for + an "Individual alarm" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -358,14 +358,24 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, due to a conflict with the state of - the "Individual alarm" resource. - Typically, this is due to the fact that the alarm is already in the state that is requested - to be set (such as trying to acknowledge an already-acknowledged alarm). - The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall - convey more information about the error. + Shall be returned upon the following error: The operation cannot be executed + currently, due to a conflict with the state of the "Individual alarm" resource. + Typically, this is due to the fact that the alarm is already in the state that + is requested to be set (such as trying to acknowledge an already-acknowledged + alarm). + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about the error. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: + description: > + 412 PRECONDITION FAILED + + ErrorShall be returned upon the following error: A precondition given in an + HTTP request header is not fulfilled. + Typically, this is due to an ETag mismatch, indicating that the resource was + modified by another entity. + The response body should contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" -- GitLab From 3714f9d7e1696913ea9f431074a236966be60f69 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:16:05 +0200 Subject: [PATCH 122/147] SOL002_127 POST Method (on "Escalate Perceived Severity task") description and response updated --- src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 64267f6d..f86c01c5 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -413,6 +413,9 @@ paths: description: > The POST method enables the consumer to escalate the perceived severity of an alarm that is represented by an ndividual alarm resource. + As the result of successfully executing this method, a new "Individual + subscription" resource as defined in clause 7.4.5 shall have been created. + This method shall not trigger any notification. parameters: - name: alarmId description: > @@ -435,8 +438,8 @@ paths: description: > 200 OK - The VNFM has received the proposed "escalated perceived severity" value - successfully. The response body shall be empty. + Shall be returned when the VNFM has received the proposed "escalated + perceived severity" value successfully. The response body shall be empty. headers: Version: description: The used API version. -- GitLab From 2ce30e960a5602a8e207217e7f26b626db03c236 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:19:22 +0200 Subject: [PATCH 123/147] SOL002_129 GET Method (on "Subscriptions") request and response updated --- .../VNFFaultManagement/VNFFaultManagement.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index f86c01c5..ec44b0e2 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -605,7 +605,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter. All attribute names that appear in the FmSubscription and in data types referenced from it @@ -640,7 +640,8 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for + this resource. in: query required: false type: string @@ -649,12 +650,16 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. The response + The list of subscriptions has been queried successfully. The response body shall contain the representations of all active subscriptions of the functional block that invokes the method. + If the "filter" URI parameter was supplied in the request, the data + in the response body shall have been transformed according to the + rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the VNFM supports alternative 2 (paging) according to clause - 4.7.2.1 for this resource, inclusion of the Link HTTP header in this - response shall follow the provisions in clause 4.7.2.3. + 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the + Link HTTP header in this response shall follow the provisions in + clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 67483c88f32a89fa5a88f1aa95f487149b1ba581 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:20:38 +0200 Subject: [PATCH 124/147] SOL002_131 GET Method (on "Subscription") response updated --- src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index ec44b0e2..022a1510 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -765,9 +765,10 @@ paths: description: > 200 OK - The operation has completed successfully. - The response body shall contain a representation of the - subscription resource. + Shall be returned when information about an individual subscription + has been read successfully. + The response body shall contain a representation of the "Individual + subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From fbc1e7ccf2b726c428cc37ca0ae84bcac3041488 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:22:08 +0200 Subject: [PATCH 125/147] SOL002_132 DELETE Method (on "Subscription") response updated --- src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 022a1510..0bcbab8a 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -817,12 +817,20 @@ paths: delete: description: > This method terminates an individual subscription. + As the result of successfully executing this method, the "Individual + subscription" resource shall not exist any longer. This means that no + notifications for that subscription shall be sent to the + formerly-subscribed API consumer. + NOTE: Due to race conditions, some notifications might still be + received by the formerly-subscribed API consumer for a certain time + period after the deletion. responses: 204: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has + been deleted successfully. The response body shall be empty. headers: Version: -- GitLab From 8f7bbaf513d0f40fefd69e2079ae11270b7d64ac Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:24:09 +0200 Subject: [PATCH 126/147] SOL002_133 POST Method (on Notification endpoint) description and response updated --- .../VNFFaultManagementNotification.yaml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index ddb3eac4..e8d65d54 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -56,7 +56,8 @@ paths: Notify The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + rebuilt. The API consumer shall have previously created an "Individual + subscription" resource with a matching filter. parameters: - name: AlarmNotification description: > @@ -78,7 +79,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -173,7 +174,8 @@ paths: Notify The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + rebuilt. The API consumer shall have previously created an "Individual + subscription" resource with a matching filter. parameters: - name: AlarmClearedNotification description: > @@ -195,7 +197,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -290,7 +292,8 @@ paths: Notify The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + rebuilt. The API consumer shall have previously created an "Individual + subscription" resource with a matching filter. parameters: - name: AlarmListRebuiltNotification description: > @@ -312,7 +315,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: -- GitLab From ed71a1b40e548822b98b91a5c720e7db0280f530 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:25:26 +0200 Subject: [PATCH 127/147] SOL002_134 GET Method (on Notification endpoint) response updated --- .../VNFFaultManagementNotification.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index e8d65d54..f0ae1671 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -119,7 +119,8 @@ paths: description: > 201 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate the notification endpoint has been + tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -237,7 +238,8 @@ paths: description: > 201 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate the notification endpoint has been + tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -355,7 +357,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate the notification endpoint has been + tested successfully. The response body shall be empty. headers: WWW-Authenticate: -- GitLab From b70f7d258466ddafd81d749b9eed04febff748d5 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:33:19 +0200 Subject: [PATCH 128/147] SOL002_142 GET Method (on "VNF indicators") request and response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index eefb4de0..1422bb51 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -63,7 +63,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF may supply this parameter. The VNF may supply its instance Id as an attribute filter. All attribute names that appear in the VnfIndicator data type and in data types referenced from @@ -98,7 +98,8 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF - if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource + if the EM/VNF supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013for this resource. in: query required: false type: string @@ -107,12 +108,18 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried successfully. - The response body shall contain in an array the representations of all - VNF indicators that match the attribute-based filtering parameters, - i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. - If the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when information about zero or more VNF indicators was + queried successfully. The response body shall contain in an array the + representations of all VNF indicators that match the attribute-based + filtering parameters, i.e. zero or more representations of VNF indicators + as defined in clause 8.5.2.2. + If the "filter" URI parameter was supplied in the request, the data in + the response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the EM/VNF supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013for this resource, inclusion of the Link HTTP header + in this response shall follow the provisions in clause 5.4.2.3 of + ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 3101717a890ea810d12f2a473a60ac3534b7d709 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:36:29 +0200 Subject: [PATCH 129/147] SOL002_144 GET Method (on "VNF indicators related to a VNF instance") request and response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 1422bb51..b429bad9 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -202,7 +202,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF shall support receiving filtering parameters as part of the URI query string. The VNFM may supply filtering parameters. @@ -236,8 +236,9 @@ paths: type: string - name: nextpage_opaque_marker description: > - Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF - if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource. + Marker to obtain the next page of a paged response. Shall be supported + by the EM/VNF if the EM/VNF supports alternative 2 (paging) according + to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -246,14 +247,19 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried successfully. + Shall be returned when information about zero or more VNF indicators + was queried successfully. The response body shall contain in an array the representations of all VNF indicators that are related to the particular VNF instance and that match the attribute filter., i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. - If the EM/VMF supports alternative 2 (paging) according to clause 4.7.2.1 - for this resource, inclusion of the Link HTTP header in this response shall - follow the provisions in clause 4.7.2.3. + If the "filter" URI parameter was supplied in the request, the data in + the response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the EM/VMF supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP + header in this response shall follow the provisions in clause 5.4.2.3 + of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 5a750781ee5111c59364010baeca4d2daf42aa9a Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:37:54 +0200 Subject: [PATCH 130/147] SOL002_146 GET Method (on "Individual VNF indicator") response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index b429bad9..d3656ccb 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -354,7 +354,7 @@ paths: description: > 200 OK - The VNF indicator was read successfully. + Shall be returned when the VNF indicator has been read successfully. The response body shall contain the representation of the VNF indicator. headers: Content-Type: -- GitLab From 4ea303696697ce9dab4b1330abd2a95956cea01d Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:39:22 +0200 Subject: [PATCH 131/147] SOL002_146 GET Method (on "Individual VNF indicator") response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index d3656ccb..ec930ad4 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -424,7 +424,7 @@ paths: description: > 200 OK - The VNF indicator was read successfully. + Shall be returned when the VNF indicator has been read successfully. The response body shall contain the representation of the VNF indicator. headers: Content-Type: -- GitLab From fa23f880f56ff45c98a2f09d7b60ac98c6006301 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:43:45 +0200 Subject: [PATCH 132/147] SOL002_148 POST Method (on "Subscriptions") description and response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index ec930ad4..6bfa0a73 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -484,7 +484,11 @@ paths: type: string post: summary: Create a new subscription to VNF indicator change notifications - description: Create a new subscription + description: > + This method creates a new subscription. + As the result of successfully executing this method, a new "Individual + subscription" resource as defined in clause 8.4.6 shall have been created. + This method shall not trigger any notification. parameters: - name: vnfIndicatorSubscriptionRequest in: body @@ -497,8 +501,9 @@ paths: description: > 201 CREATED - The subscription was created successfully. - The response body shall contain a representation of the created subscription resource. + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created + "Individual subscription" resource. schema: $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription' headers: @@ -521,10 +526,11 @@ paths: description: > 303 SEE OTHER - A subscription with the same callbackURI and the same filter already exists and the policy - of the VNFM is to not create redundant subscriptions. - The HTTP response shall include a "Location" HTTP header that contains the resource URI of - the existing subscription resource. + Shall be returned when a subscription with the same callbackURI and + the same filter already exists and the policy of the VNFM is to not + create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing "Individual subscription" resource. The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: -- GitLab From a9a03305eb256c4a9ee41febecca95dc4d0ff3f6 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:46:46 +0200 Subject: [PATCH 133/147] SOL002_149 GET Method (on "Subscriptions") request and response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 26 ++++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 6bfa0a73..c7adf860 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -567,7 +567,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The EM shall and the VNF may support receiving this parameter as part of the URI query string. The VNFM may supply this parameter. All attribute names that appear in the VnfIndicatorSubscription data @@ -602,8 +602,9 @@ paths: type: string - name: nextpage_opaque_marker description: > - Marker to obtain the next page of a paged response. Shall be supported by the EM - if the EM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource. + Marker to obtain the next page of a paged response. Shall be supported + by the EM if the EM supports alternative 2 (paging) according to + clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -612,13 +613,18 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The response body shall contain in an array the representations of all active - subscriptions of the functional block that invokes the method which match the - attribute filter, i.e. zero or more representations of VNF indicators subscriptions - as defined in clause 8.5.2.4. - If the EM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + Shall be returned when the list of subscriptions was queried successfully. + The response body shall contain in an array the representations of all + active subscriptions of the functional block that invokes the method which + match the attribute filter, i.e. zero or more representations of VNF + indicators subscriptions as defined in clause 8.5.2.4. + If the "filter" URI parameter was supplied in the request, the data in + the response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV SOL 013. + If the EM supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP + header in this response shall follow the provisions in clause 5.4.2.3 + of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 8899191807e15022b29a8dd00aba450e50576a77 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:48:34 +0200 Subject: [PATCH 134/147] SOL002_151 GET Method (on "Individual Subscription") response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index c7adf860..ec687806 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -712,8 +712,10 @@ paths: description: > 200 OK - The subscriptions was queried successfully. The response body shall contain - the representation of the requested subscription. + Shall be returned when information about an individual subscription + has been read successfully. + The response body shall contain the representation of the + "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From d08e8842b659e723167325939161c5ed0bcedc3b Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:50:09 +0200 Subject: [PATCH 135/147] SOL002_152 DELETE Method (on "Individual Subscription") description and response updated --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index ec687806..8fecbf26 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -755,7 +755,15 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" delete: summary: Delete a subscription - description: Terminate an individual subscription. + description: > + This method terminates an individual subscription. + As the result of successfully executing this method, the "Individual + subscription" resource shall not exist any longer. This means that no + notifications for that subscription shall be sent to the formerly-subscribed + API consumer. + NOTE: Due to race conditions, some notifications might still be received + by the formerly-subscribed API consumer for a certain time period after + the deletion. parameters: - name: subscriptionId description: > @@ -774,7 +782,7 @@ paths: description: > 204 NO CONTENT - The subscription was deleted successfully. + Shall be returned when the subscription has been deleted successfully. The response body shall be empty. headers: Version: -- GitLab From 183e65a25281e2d974c272e54e01dbccb77ac778 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:52:43 +0200 Subject: [PATCH 136/147] SOL002_153 POST Method (on Notification Enpoint) description and response updated --- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index e159dcdb..5dc269e1 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -55,7 +55,9 @@ paths: The API producer can use this resource to send notifications related to VNF indicator value changes to a subscribed API consumer, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from API producer to an API consumer. The API + consumer shall have previously created an "Individual subscription" resource with a + matching filter. parameters: - name: vnfIndicatorValueChangeNotification in: body @@ -69,7 +71,8 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. The response body shall be empty. + Shall be returned when the notification has been delivered successfully. + The response body shall be empty. headers: Version: description: The used API version. -- GitLab From d0832bdfba397a1cf8dd73fe9b862dc8b70b7511 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 12:53:18 +0200 Subject: [PATCH 137/147] SOL002_154 GET Method (on Notification Enpoint) response updated --- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 5dc269e1..148157ff 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -105,7 +105,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. The response body shall be empty. + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > -- GitLab From 43b7e19338f11bfe14a1e173172cb78902ab11a1 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 13:03:20 +0200 Subject: [PATCH 138/147] SOL002_155 Resource "VnfIndicator" updated --- src/definitions/SOL002SOL003VNFIndicator_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml index 4902d59e..7bb0e3c5 100644 --- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml +++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml @@ -46,7 +46,7 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Link" vnfInstance: description: > - Link to the related VNF instance resource. + Link to the related "Individual VNF instance" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Link" VnfIndicatorNotificationsFilter: -- GitLab From 5b85dae780ebd691a403d95e8e6d9bc59654e78e Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 13:05:49 +0200 Subject: [PATCH 139/147] SOL002_158 Resource "VnfIndicatorValueChangeNotification" updated --- .../definitions/SOL002VNFIndicatorNotification_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml index bc0d72b6..8c042ff3 100644 --- a/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml +++ b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml @@ -62,7 +62,7 @@ definitions: # LEH this must be reported as strong candidate for removal. vnfInstance: description: > - Link to the related VNF instance resource. + Link to the related "Individual VNF instance" resource. $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Link' subscription: description: > -- GitLab From a471ce3f1a688925c7a1b9af41ac629b4a3f0165 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 13:07:51 +0200 Subject: [PATCH 140/147] SOL002_163 GET Method (on "Configuration") response updated --- src/SOL002/VNFConfiguration/VNFConfiguration.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index f9aad982..9c13e8db 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -65,7 +65,9 @@ paths: 200: description: > 200 OK - Configuration information about a VNF instance was read successfully. + + Shall be returned when configuration information about a VNF instance + has been read successfully. The response body shall contain a representation of the configuration resource. schema: $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfiguration' -- GitLab From 98dd86c73ec4a56958689ae298dc0df08771bf13 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 13:10:02 +0200 Subject: [PATCH 141/147] SOL002_164 PATCH Method (on "Configuration") response updated --- src/SOL002/VNFConfiguration/VNFConfiguration.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index 9c13e8db..e2f027c0 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -131,8 +131,9 @@ paths: description: > 200 OK - The request was accepted and completed. The response body shall contain the parameters - of the configuration modification that was applied to the configuration resource. + Shall be returned when the request has been accepted and completed. + The response body shall contain the parameters of the configuration + modification that was applied to the configuration resource. schema: $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications' headers: @@ -159,6 +160,16 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 412: + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given + in an HTTP request header is not fulfilled. + Typically, this is due to an ETag mismatch, indicating that the resource + was modified by another entity. The response body should contain a + ProblemDetails structure, in which the "detail" attribute should convey + more information about the error. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" -- GitLab From 9e21d904e2243fb4fb4e09375a5f12c55ca18847 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Wed, 17 Jul 2019 13:28:23 +0200 Subject: [PATCH 142/147] SOL002_13/85/117/137/159 "API version" updated --- src/SOL002/VNFConfiguration/VNFConfiguration.yaml | 4 ++-- src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml | 4 ++-- .../VNFFaultManagementNotification.yaml | 4 ++-- src/SOL002/VNFIndicator/VNFIndicator.yaml | 4 ++-- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 4 ++-- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 +++--- .../VNFLifecycleManagementNotification.yaml | 6 +++--- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 4 ++-- .../VNFPerformanceManagementNotification.yaml | 4 ++-- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index e2f027c0..b0706383 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnfconfig/v1 diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 0bcbab8a..c29936c7 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnffm/v1 diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index f0ae1671..f817f87c 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /callback/v1 diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 8fecbf26..9f65b7f7 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnfind/v1 diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 148157ff..15490369 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf schemes: - http diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 754e2673..b9f88a2e 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Lifecycle Management interface description: > SOL002 - VNF Lifecycle Management interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnflcm/v1 diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index b5c24944..c9436051 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Lifecycle Management Notification interface description: > SOL002 - VNF Lifecycle Management Notification interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /callback/v1 diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 8ac09d90..1a4c1780 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnfpm/v1 diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 52f60844..239a1fbb 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /callback/v1 -- GitLab From 285c88d0ee1d8c560d529677354dc4b6008af68c Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 21 Aug 2019 16:32:33 +0200 Subject: [PATCH 143/147] fixes to solve Jenkins build --- .../VNFConfiguration/VNFConfiguration.yaml | 4 ++-- src/SOL002/VNFIndicator/VNFIndicator.yaml | 8 +++---- .../VNFLifecycleManagement.yaml | 6 ++--- .../SOL002VNFLifecycleManagement_def.yaml | 22 +++++++++---------- .../VNFLifecycleManagement.yaml | 16 +++++++------- .../SOL002SOL003VNFIndicator_def.yaml | 2 +- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index b0706383..134144ce 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -125,7 +125,7 @@ paths: required: true in: body schema: - $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications' + $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications' responses: 200: description: > @@ -135,7 +135,7 @@ paths: The response body shall contain the parameters of the configuration modification that was applied to the configuration resource. schema: - $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications' + $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications' headers: Content-Type: description: The MIME type of the body of the response. diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 9f65b7f7..3777c8e4 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -140,7 +140,7 @@ paths: schema: type: array items: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -280,7 +280,7 @@ paths: schema: type: array items: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -368,7 +368,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -438,7 +438,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index b9f88a2e..8ebedb08 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -895,7 +895,7 @@ paths: in: body required: true schema: - $ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" + $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" responses: 202: description: > @@ -1119,7 +1119,7 @@ paths: in: body required: true schema: - $ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" + $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" responses: 202: description: > @@ -1926,7 +1926,7 @@ paths: minimum: 1 schema: schema: - $ref: "../../definitions/SOL002SOl003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 024737ce..f278f185 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -306,25 +306,25 @@ definitions: flavourId: description: > Identifier of the VNF deployment flavour to be instantiated. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" instantiationLevelId: description: > Identifier of the instantiation level of the deployment flavour to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" extVirtualLinks: description: > Information about external VLs to connect the VNF to. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > Information about external VLs to connect the VNF to. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" localizationLanguage: description: > Localization language of the VNF to be instantiated. The value shall @@ -335,13 +335,13 @@ definitions: Additional input parameters for the instantiation process, specific to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > If present, this attribute provides values for the "extensions" attribute in "VnfInstance", as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeVnfFlavourRequest: description: > @@ -502,25 +502,25 @@ definitions: vnfdId: description: > New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules of JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > Modifications of the "metadattametadata" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules of JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > Modifications of the "extensions" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules of JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfcInfoModifications: description: > Modifications of certain entries in the "vnfcInfo" attribute array in the @@ -534,4 +534,4 @@ definitions: to be used as "deleteIdList" as defined below this table. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index e82b6f1f..3d1a37f7 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -98,14 +98,14 @@ paths: responses: 201: description: > - 201 CREATED - - Shall be returned when a new "Individual VNF instance" resource and - the associated VNF instance identifier washas been created successfully. - The response body shall contain a representation of the created VNF instance, - as defined in clause 5.5.2.2. - The HTTP response shall include a "Location" HTTP header that contains the resource - URI of the created VNF instance. + 201 CREATED + + Shall be returned when a new "Individual VNF instance" resource and + the associated VNF instance identifier washas been created successfully. + The response body shall contain a representation of the created VNF instance, + as defined in clause 5.5.2.2. + The HTTP response shall include a "Location" HTTP header that contains the resource + URI of the created VNF instance. headers: Content-Type: description: The MIME type of the body of the response. diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml index 7bb0e3c5..e1328e0d 100644 --- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml +++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml @@ -127,7 +127,7 @@ definitions: callbackUri: description: > The URI of the endpoint to send the notification to. - $ref: "SOL002SOl003_def.yaml#/definitions/Uri" + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > Authentication parameters to configure the use of Authorization when -- GitLab From efd773ec75f7c23f7d7a602dc168e7c3b5eeee23 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 21 Aug 2019 16:32:46 +0200 Subject: [PATCH 144/147] more fixes --- .../VNFPackageManagement.yaml | 266 +++++++++--------- 1 file changed, 133 insertions(+), 133 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index c72b6c54..c6f8bcda 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -818,143 +818,143 @@ paths: in: path type: string required: true - get: - description: > - Fetch VNF Package. - The GET method fetches the content of a VNF package identified by the - VNF package identifier allocated by the NFVO. - This method shall follow the provisions specified in the tables - 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request - and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - application/zip - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Range - description: > - The request may contain a "Range" HTTP header to obtain single - range of bytes from the VNF package file. This can be used to - continue an aborted transmission. - If the NFVO does not support range requests, it should return the - whole file with a 200 OK response instead. - in: header - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 200: - description: > - 200 OK + get: + description: > + Fetch VNF Package. + The GET method fetches the content of a VNF package identified by the + VNF package identifier allocated by the NFVO. + This method shall follow the provisions specified in the tables + 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request + and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK - Shall be returned when the whole content of the VNF package file has been read successfully. - The response body shall include a copy of the VNF package file. - The "Content-Type HTTP" header shall be set according to the type of the file, - i.e. to "application/zip" for a VNF Package as defined in ETSI GS NFV SOL 004. - 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 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 206: - description: > - 206 PARTIAL CONTENT + Shall be returned when the whole content of the VNF package file has been read successfully. + The response body shall include a copy of the VNF package file. + The "Content-Type HTTP" header shall be set according to the type of the file, + i.e. to "application/zip" for a VNF Package as defined in ETSI GS NFV SOL 004. + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 206: + description: > + 206 PARTIAL CONTENT - If the NFVO supports range requests, this response shall be returned when - a single consecutive byte range from the content of the VNF package file - has been read successfully according to the request. - The response body shall contain the requested part of the VNF package file. - The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. - The "Content-Type" HTTP header shall be set as defined above for the "200 OK" response. - headers: - Content-Range: - type: string - maximum: 1 - minimum: 1 - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - 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 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" - 401: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" - 403: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" - 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" - 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT + If the NFVO supports range requests, this response shall be returned when + a single consecutive byte range from the content of the VNF package file + has been read successfully according to the request. + The response body shall contain the requested part of the VNF package file. + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for the "200 OK" response. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + description: > + 409 CONFLICT - Shall be returned upon the following error: The operation cannot be executed currently, - due to a conflict with the state of the resource. - Typically, this is due to the fact that "onboardingState" of the VNF package has - a value different from "ONBOARDED". - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" - 416: - description: > - 416 RANGE NOT SATISFIABLE + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the VNF package has + a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 416: + description: > + 416 RANGE NOT SATISFIABLE - Shall be returned upon the following error: The byte range passed in the "Range" header - did not match any available byte range in the VNF package file (e.g. "access after end of file"). - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" - 500: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" - 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - 504: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + Shall be returned upon the following error: The byte range passed in the "Range" header + did not match any available byte range in the VNF package file (e.g. "access after end of file"). + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" ############################################################################### # Individual VNF package artifact # -- GitLab From 923e8cb9ded7b44ffa4071a88d9ca1ae519a097c Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 21 Aug 2019 16:50:40 +0200 Subject: [PATCH 145/147] more fixes for Jenkins build --- .../VNFPackageManagement.yaml | 288 +++++++++--------- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index c6f8bcda..63fc3ce8 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1155,154 +1155,154 @@ paths: in: path type: string required: true - get: - description: > - Fetch VNF Package Artifacts. - The GET method fetches the content of an artifact within a VNF package. - This method shall follow the provisions specified in the tables - 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request - and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Range - description: > - The request may contain a "Range" HTTP header to obtain single - range of bytes from the VNF package file. This can be used to - continue an aborted transmission. - If the NFVO does not support range requests, it should return the - whole file with a 200 OK response instead. - in: header - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 200: - description: > - 200 OK + get: + description: > + Fetch VNF Package Artifacts. + The GET method fetches the content of an artifact within a VNF package. + This method shall follow the provisions specified in the tables + 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request + and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK - Shall be returned when the whole content of the artifact file has been read successfully. - The payload body shall contain a copy of the artifact file from the VNF package, - as defined by ETSI GS NFV-SOL 004. - The "Content-Type" HTTP header shall be set according to the content type of the artifact file. - If the content type cannot be determined, the header shall be set to the value "application/octet-stream". - headers: - Content-Type: - description: > - The MIME type of the body of the response. - The "Content-Type" HTTP header shall be set according to the - content type of the artifact file. If the content type cannot - be determined, the header shall be set to the value - "application/octet-stream". - 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 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 206: - description: > - 206 PARTIAL CONTENT + Shall be returned when the whole content of the artifact file has been read successfully. + The payload body shall contain a copy of the artifact file from the VNF package, + as defined by ETSI GS NFV-SOL 004. + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. + If the content type cannot be determined, the header shall be set to the value "application/octet-stream". + headers: + Content-Type: + description: > + The MIME type of the body of the response. + The "Content-Type" HTTP header shall be set according to the + content type of the artifact file. If the content type cannot + be determined, the header shall be set to the value + "application/octet-stream". + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 206: + description: > + 206 PARTIAL CONTENT - If the NFVO supports range requests, this response shall be returned - when a single consecutive byte range from the content of the artifact - file, if the NFVO supports range requests has been read successfully - according to the request. - The response body shall contain the requested part of the VNF - package file. - The "Content-Range" HTTP header shall be provided according to - IETF RFC 7233. - The "Content-Type" HTTP header shall be set as defined above for - the "200 OK" response. - headers: - Content-Range: - type: string - maximum: 1 - minimum: 1 - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - 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 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" - 401: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" - 403: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" - 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" - 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT + If the NFVO supports range requests, this response shall be returned + when a single consecutive byte range from the content of the artifact + file, if the NFVO supports range requests has been read successfully + according to the request. + The response body shall contain the requested part of the VNF + package file. + The "Content-Range" HTTP header shall be provided according to + IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for + the "200 OK" response. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + 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 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + description: > + 409 CONFLICT - Shall be returned upon the following error: The operation cannot - be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that "onboardingState" of the - VNF package has a value different from "ONBOARDED". - The response body shall contain a ProblemDetails structure, - in which the "detail" attribute shall convey more information - about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" - 416: - description: > - 416 RANGE NOT SATISFIABLE + Shall be returned upon the following error: The operation cannot + be executed currently, due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the + VNF package has a value different from "ONBOARDED". + The response body shall contain a ProblemDetails structure, + in which the "detail" attribute shall convey more information + about the error. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 416: + description: > + 416 RANGE NOT SATISFIABLE - Shall be returned upon the following error: The byte range passed in the - "Range" header did not match any available byte range in the artifact file - (e.g. "access after end of file"). - The response body may contain a ProblemDetails structure. - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" - 500: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" - 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - 504: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + Shall be returned upon the following error: The byte range passed in the + "Range" header did not match any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails structure. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" ############################################################################### # Subscriptions # -- GitLab From 6a1f08613cbd02fb48eb7afcd90ab12cedd90e26 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 21 Aug 2019 17:12:00 +0200 Subject: [PATCH 146/147] more fixes --- .../definitions/VNFPackageManagement_def.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml index 3c02f843..f48254f3 100644 --- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml @@ -44,13 +44,13 @@ definitions: This information is copied from the VNFD. It shall be present after the VNF package content has been on-boarded and absent otherwise. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfdVersion: description: > The version of the VNFD. This information is copied from the VNFD. It shall be present after the VNF package content has been on-boarded and absent otherwise. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" checksum: description: > Checksum of the on-boarded VNF package. @@ -218,7 +218,7 @@ definitions: version: description: > Version of the software image. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" checksum: description: > Checksum of the software image file. @@ -403,7 +403,7 @@ definitions: vnfSoftwareVersion: description: > VNF software version to match. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfdVersions: description: > If present, match VNF packages that contain VNF @@ -412,7 +412,7 @@ definitions: one particular provider. type: array items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfdId: description: > Match VNF packages with a VNFD identifier listed in the attribute. -- GitLab From 81cb05d95e670d1505b580a9aa86005ec8d87695 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 21 Aug 2019 17:41:10 +0200 Subject: [PATCH 147/147] removed duplicated openapi in sol003 for quota notifications --- ...uotaAvailableNotificationNotification.yaml | 153 ------------------ ...AvailableNotificationNotification_def.yaml | 85 ---------- 2 files changed, 238 deletions(-) delete mode 100644 src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml delete mode 100644 src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml deleted file mode 100644 index 49bc2064..00000000 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml +++ /dev/null @@ -1,153 +0,0 @@ -swagger: "2.0" - -info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: SOL003 - Virtualised Resources Quota Available Notification Notification interface - description: > - SOL003 - Virtualised Resources Quota Available Notification Notification 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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf - -basePath: "/callback/v1" - -schemes: - - https - -consumes: - - "application/json" -produces: - - "application/json" - -paths: - ############################################################################### - # Notification endpoint VnfLcmOperationOccurrenceNotification # - ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription': - post: - description: > - Notify. - The POST method delivers a notification from API producer to an API consumer. - The API consumer shall have previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the tables 11.4.4.3.1-1 and 11.4.4.3.1-2 for URI - query parameters, request and response data structures, and response codes. - parameters: - - name: VrQuotaAvailNotification - description: A notification related to the availability of the virtualised resources quota. - in: body - required: true - schema: - $ref: "definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml#/definitions/VrQuotaAvailNotification" - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Content-Type - description: > - The Content-Type header shall be set to - "application/merge-patch+json" according to - IETF RFC 7396. - in: header - required: true - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" - 401: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" - 403: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" - 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" - 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 500: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" - 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - - get: - description: > - The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. - This method shall follow the provisions specified in the tables 11.4.4.3.2-1 and 11.4.4.3.2-2 - for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 204: - description: > - 204 NO CONTENT - - TheShall be returned to indicate that the notification endpoint whas been tested successfully. - The response body shall be empty. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" - 401: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" - 403: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" - 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" - 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 500: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" - 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml deleted file mode 100644 index 0187577b..00000000 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -definitions: - VrQuotaAvailNotification: - description: > - This type represents a notification which indicates the availability of - a quota applicable to the consumer. - Support of this notification is mandatory if the - Virtualised Resources Quota Available Notification interface is - supported. - The notification shall be triggered by the NFVO when a virtualised - resource quota applicable to the consumer has been set. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - resourceGroupId - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. - Shall be set to "VrQuotaAvailNotification" for this notification type. - type: string - enum: - - VrQuotaAvailNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - resourceGroupId: - description: > - Identifier of the "infrastructure resource group", logical grouping - of virtual resources assigned to a tenant within an Infrastructure - Domain. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - vimConnectionInfo: - description: > - Information about the VIM connection to manage the virtualised - resources quota. - This attribute shall only be supported and present when VNF-related - Resource Management in direct mode is applicable. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - resourceProviderId: - description: > - Identifies the entity responsible for the management of the - virtualised resources quota. - This attribute shall only be supported and present when - VNF-related Resource Management in indirect mode is applicable. The - identification scheme is outside the scope of the present document. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/QuotaAvailLinks" - - QuotaAvailLinks: - description: > - This type represents the links to resources that a notification of type - "VrQuotaAvailNotification" can contain. - type: object - required: - - subscription - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" - - - - -- GitLab