From 33cc960e9ad1f16883925891a061fd73979e5401 Mon Sep 17 00:00:00 2001 From: muhammadh Date: Thu, 14 Dec 2023 17:02:06 +0500 Subject: [PATCH 01/30] Update SOL003 LCM, Performance Management, Fault Management, Indicator interface API's as per v4.5.1 --- .../General_Definitions/SOL003_def.yaml | 62 +- .../VNFLifecycleManagement.yaml | 74 +++ .../SOL003VNFLifecycleManagement_def.yaml | 595 +++++++++++++++++- 3 files changed, 709 insertions(+), 22 deletions(-) diff --git a/src/SOL003/General_Definitions/SOL003_def.yaml b/src/SOL003/General_Definitions/SOL003_def.yaml index 932827a8..9b51d5c6 100644 --- a/src/SOL003/General_Definitions/SOL003_def.yaml +++ b/src/SOL003/General_Definitions/SOL003_def.yaml @@ -15,6 +15,15 @@ definitions: Shall be an absolute URI (i.e. a UTI that contains {apiRoot}). $ref: "#/definitions/Uri" + SupportedProtocolEnum: + description: Supported protocol by CMF instance. + type: string + enum: + - CMP + - CMPv2 + - EST + - SCEP + NotificationLink: description: > This type represents a link to a resource in a notification, using an absolute or relative URI. @@ -363,6 +372,15 @@ definitions: different than the one that has used it before the operation, or by no external CP instance at all. Renaming a CPD identifier during the "changeCurrentVnfPkg" operation does not count as moving the related "cpConfig" map entries to a new "extCpData" structure. + * NOTE 5: Subports need not be used for containerized VNFCs. The application container can send and receive IP + packets with any VLAN tag as long as the network interface to connect to the secondary container cluster + network has been configured appropriately. Thus, no individual cpConfig, except the one representing the + trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point. + * NOTE 6: In the case that the cloud native template included in the MCIOP describes the set of VNFC instances, for + containerized VNFCs individual connection points need not be configured for each VNFC instance. It is only + required to configure one cpConfig per cpdId, not per VNFC instance. The case of using, for a scalable VDU, a + cloud native template in the MCIOP that describes one single VNFC instance is not specified in the present + document version. type: object required: - cpdId @@ -378,7 +396,7 @@ definitions: The key of the map which identifies the individual VnfExtCpConfig entries is of type "IdentifierInVnf" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). - See notes 2, 3 and 4. + See notes 2, 3, 4, 5, 6. type: object additionalProperties: $ref: "#/definitions/VnfExtCpConfig" @@ -735,6 +753,39 @@ definitions: items: $ref: "#/definitions/NetAttDefResourceData" + PaasServiceHandle: + description: > + This type provides information enabling the access and use of the PaaS + Service by the VNF instance. The type and format of the handle depends on + the form that the PaaS Service is formed. It shall comply with the + provisions defined in table 4.4.1.19-1. + type: object + required: + - id + properties: + id: + description: > + Identifier of this PaaS Service handle. + $ref: "#/definitions/Identifier" + interfaceInfo: + description: > + Information of the interface or interfaces to the PaaS Service + instance, if applicable, such as the URI of an interface endpoint to + communicate with the PaaS Service instance. + $ref: "#/definitions/KeyValuePairs" + accessInfo: + description: > + Authentication credentials for accessing the PaaS Service instance. + If the PaasServiceHandle structure is part of an HTTP GET response + payload body, sensitive attributes that are children of this + attribute (such as passwords) shall not be included. + $ref: "#/definitions/Identifier" + extra: + description: > + PaaS Service instance-specific additional information. The applicable + structure, and whether or not this attribute is available. + $ref: "#/definitions/KeyValuePairs" + ScaleInfo: description: > This type represents the scale level of a VNF instance related to a scaling aspect. @@ -817,6 +868,14 @@ definitions: An identifier with the intention of being globally unique. type: string + ChangeTypeEnum: + description: Signals the type of change. + type: string + enum: + - ADD + - REMOVE + - MODIFY + DateTime: description: > Date-time stamp. @@ -996,6 +1055,7 @@ definitions: CREATE_SNAPSHOT | Represents the "Create VNF Snapshot" LCM operation. REVERT_TO_SNAPSHOT | Represents the “Revert-To VNF Snapshot" LCM operation. CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation. + SELECT_DEPL_MODS | Represents the “Select VNF deployable modules” LCM operation type: string enum: - INSTANTIATE diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 948ad24d..c43602f8 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1244,6 +1244,36 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" + /vnf_snapshots/{vnfSnapshotInfoId}/select_depl_mods: + #SOL003 location: 5.4.26.2 + parameters: + - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept + - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization + - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version + post: + description: | + The POST method requests to select deployable modules of a VNF instance and therefore to instantiate or terminate + VNFC instances according to the selected deployable modules. + The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2. + requestBody: + $ref: '#/components/requestBodies/SelectVnfDeployableModulesRequest' + responses: + 202: + $ref: '#/components/responses/selectdeployablemodules.Post.202' + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + 409: + $ref: '#/components/responses/IndividualVnfInstance.Delete.409' + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" components: parameters: filter_vnf_instances: @@ -1544,6 +1574,16 @@ components: $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/RevertToVnfSnapshotRequest" required: true + SelectVnfDeployableModulesRequest: + description: | + This type represents request parameters for the "Select VNF deployable modules" operation. It shall comply with the + provisions defined in table 5.5.2.27-1. + content: + application/json: + schema: + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/SelectVnfDeployableModulesRequest" + required: true + CreateVnfSnapshotInfoRequest: description: | The VNF snapshot resource creation parameters, as defined in clause 5.5.2.20. @@ -2046,6 +2086,40 @@ components: schema: type: string + selectdeployablemodules.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty.The HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created "Individual + VNF LCM operation occurrence" resource corresponding to the operation + headers: + Location: + description: | + The resource URI of the created "Individual VNF LCM operation + occurrence" resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + ScaleVnfInstance.Post.404: description: | 404 NOT FOUND diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 4e129ad5..699c3406 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -24,6 +24,13 @@ definitions: scalable constituents of the VNF (e.g, VDUs/VLs). For scaling aspects not specified in targetScaleLevelInfo or for the VNF constituents (e.g.,VDUs/VLs) that are not scalable, the default instantiation level as declared in the VNFD shall be used for instantiation. + * NOTE 5: If the referenced instantiationLevel or the targetScaleLevelInfo contain information related to VNFCs that are + not going to be instantiated due to the selection of deployable modules, the information is stored in the VNFM + for later use and included in the instantiatedVnfInfo. If none of the attributes is present, the information from the + defaultInstantiationLevel related to those VNFCs is stored and included in the instantiatedVnfInfo. If, during the + lifecycle of the VNF, as a result of a change of the selected deployable modules any of those VNFCs is going to + be instantiated, the stored information determines the number of instances, unless the request that triggered + the change also contains information about the number of instances. anyOf: - required: - instantiationLevelId @@ -40,7 +47,7 @@ definitions: instantiationLevelId: description: > Identifier of the instantiation level of the deployment - flavour to be instantiated. See note 3. + flavour to be instantiated. See note 3 and 5. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" targetScaleLevelInfo: description: > @@ -49,7 +56,7 @@ definitions: For each scaling aspect of the current deployment flavour, the attribute specifies the scale level of VNF constituents (e.g., VDU level) to be instantiated. See - notes 3 and 4. + notes 3, 4, and 5. type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" @@ -122,6 +129,12 @@ definitions: the "vnfConfigurableProperties" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling configurable properties during the operation are defined in clause 5.4.4.3.1. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + selectedDeployableModule: + description: > + Identifier of a selected deployable module. Only VNFCs based on VDUs that belong to deployable + modules listed in this attribute are requested to be instantiated. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + ExtManagedVirtualLinkData: description: > @@ -133,6 +146,12 @@ definitions: network. * NOTE 3: An example of the network attachment definition resource when the container infrastructure service management is a Kubernetes® instance is a network attachment definition (NAD). + + * NOTE 4: In the case that the cloud native template included in the MCIOP describes the set of VNFC instances, an + instance of intCp need not be included for each VNFC instance as all instances would contain the same + information. It is sufficient to include one intCp for the related CPD. The case of using, for a scalable VDU, a + cloud native template in the MCIOP that describes one single VNFC instance is not specified in the present + document version type: object required: - id @@ -179,7 +198,7 @@ definitions: intCp: description: > Internal CPs of the VNF to be connected to this - externally-managed VL. See note 1. + externally-managed VL. See note 1 and 4. type: array items: $ref: "#/definitions/IntVnfCpData" @@ -306,6 +325,21 @@ definitions: in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the operation, are defined in clause 5.4.7.3.1. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + selectedDeployableModule: + description: > + Identifier of a selected deployable module. Only VNFCs based on VDUs that belong to deployable + modules listed in this attribute are requested to be instantiated or preserved if they were already + instantiated. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile and security policy in this VNF. Can + be present when setting a new certificate to the VNF instance in delegation mode. Otherwise shall not be + present. + This attribute shall be supported when delegation mode of certificate management is applicable. + $ref: "#/definitions/CertificateConfigurationData" + + TerminateVnfRequest: description: > @@ -452,6 +486,12 @@ definitions: to the VNF being instantiated, as declared in the VNFD as part of "ChangeExtVnfConnectivityOpConfig" defined in ETSI GS NFV-IFA 011 [10]. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile and security policy in this VNF. Can be + present when setting a new certificate to the VNF instance in delegation mode. Otherwise shall not be + present.This attribute shall be supported when delegation mode of certificate management is applicable. + $ref: "#/definitions/CertificateConfigurationData" ChangeCurrentVnfPkgRequest: description: > @@ -468,6 +508,8 @@ definitions: VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 4.4.1.12). + NOTE 2: Component mappings are defined in the VNFD in the source or destination package for the relevant change + path. See clause 7.1.15.2 in ETSI GS NFV-IFA 011 [13]. type: object required: - vnfdId @@ -530,6 +572,22 @@ definitions: in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the operation, and needed passed parameter values in case of conflicts, are defined in clause 5.4.11a.3.1. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + selectedDeployableModule: + description: > + Identifier of a selected deployable module.If this attribute is present only VNFCs based on + VDUs that belong to deployable modules listed in this attribute are requested to be instantiated or + preserved if they were already instantiated.If this attribute is not present the deployable + modules that were selected before the operation, and that still are defined in the VNFD in the + destination package, or the corresponding ones according to the component mappings, remain + valid. See note 3. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile and security policy in this VNF. + Can be present when setting a new certificate to the VNF instance in delegation mode. Otherwise + shall not be present.This attribute shall be supported when delegation + mode of certificate management is applicable. + $ref: "#/definitions/CertificateConfigurationData" VnfInfoModificationRequest: description: > @@ -727,6 +785,48 @@ definitions: “reverted”, as declared in the VNFD as part of “RevertToSnapshotVnfOpConfig” defined in ETSI GS NFV-IFA 011 [10]. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + SelectVnfDeployableModulesRequest: + description: > + This type represents request parameters for the "Select VNF deployable + modules" operation. It shall comply with the provisions defined in table + 5.5.2.27-1. + + NOTE: Thus, the select VNF deployable modules operation cannot be used as a scale VNF operation to scale VNFCs that were already instantiated. + type: object + properties: + selectedDeployableModule: + description: > + Identifier of a selected deployable module, as defined in the VNFD. + VNFCs based on VDUs that belong to deployable modules listed in + this attribute will be instantiated if not already instantiated. + VNFCs based on VDUs that belong to deployable modules not listed in + this attribute and that were already instantiated will be terminated. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + targetScaleLevelInfo: + description: > + Defines the target scale levels of scaling aspects of the VDUs that + belong to selected deployable modules. If this attribute is not + present or if there are VDUs that belong to selected deployable + modules that take no part in any of the scaling aspects indicated in + this attribute, the VNFCs based on those VDUs shall be instantiated + according to the currently valid VNF scale level or instantiation + level. This attribute should only contain scale level information of + scaling aspects associated with VDUs that will be used to + instantiate VNFCs as a result of this operation. If it contains + other scale level information, it shall be ignored. See note. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the selection + of deployable modules process, specific to the VNF being affected by + this operation, as declared in the VNFD as part of + "selectVnfDeployableModulesOpConfig" defined in ETSI GS NFV-IFA 011 [10]. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + VnfSnapshotInfoModificationRequest: description: | This type represents attribute modifications for an "Individual VNF snapshot" resource, i.e. modifications @@ -797,6 +897,14 @@ definitions: multi-site VL instance (refer to clause 5.5.3.3). NOTE 6: Even though externally-managed internal VLs are also used for VNF-internal connectivity, they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. + NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP + packets with any VLAN tag as long as the network interface to connect to the secondary container cluster + network has been configured appropriately. Thus, no individual vnfcCpInfo, except the one representing + the trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point. + NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable + modules, the “scaleStatus” indicates the scale level that would be applicable to the aspect if a VNF LCM + operation changes the selected deployable modules and the related VNFCs are instantiated, unless the + VNF LCM operation explicitly indicates the scale level for the aspect. type: object required: - id @@ -918,6 +1026,15 @@ definitions: type: object additionalProperties: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo" + certificateInfo: + description: > + Information about certificate and certificate management in this VNF. Shall be present + when using delegation mode, otherwise shall be absent.This attribute can be modified with the + PATCH method.Content of this attribute shall not be either added (if previously not set) or removed (if + previously set) by using the Modify VNF Information operation. See note 3. + type: object + additionalProperties: + $ref: "#/definitions/CertificateInfo" instantiationState: description: > The instantiation state of the VNF. @@ -956,6 +1073,14 @@ definitions: This attribute shall be present if the VNF supports scaling. See clause B.2 for an explanation of VNF scaling. + For an aspect that has not been deployed + because the related deployableModule has + not been selected, it indicates the scale level + that has been requested in the instantiation + or in a scaling operation, or, if none has been + requested in any of them, the scale level + applicable to the aspect based on the default + instantiation level. See note 8. type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" @@ -966,11 +1091,18 @@ definitions: type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" + selectedDeployableModule: + description: > + References a currently selected deployable module, as defined in the VNFD, that has + already completed the instantiation of its VNFCs. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" extCpInfo: description: > Information about the external CPs exposed by the VNF instance. When trunking is enabled, the list of entries includes both, external CPs corresponding to parent ports of a trunk, - and external CPs associated to sub-ports of a trunk. + and external CPs associated to sub-ports of a trunk.See note 7. type: array minItems: 1 items: @@ -1046,7 +1178,12 @@ definitions: type: array items: $ref: "#/definitions/McioInfo" - + vnfPaasServiceInfo: + description: > + Information on the PaaS Services assigned and used by the VNF instance. + type: array + items: + $ref: "#/definitions/PaasServiceInfo" metadata: description: > Additional VNF-specific attributes that provide metadata describing the VNF instance. @@ -1303,8 +1440,12 @@ definitions: or the "VnfLcmOpOcc" structure related to this LCM operation occurrence. NOTE 5: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment definition resource is needed to fulfil the connectivity requirements of the internal CP, e.g. to build a link - redundant mated pair in SR-IOV cases. + redundant mated pair in SR-IOV cases. NOTE 6: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace. + NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP + packets with any VLAN tag as long as the network interface to connect to the secondary container cluster + network has been configured appropriately. Thus, no individual vnfcCpInfo, except the one representing the + trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point. type: object required: - id @@ -1352,7 +1493,7 @@ definitions: description: > CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is exposed as an external CP of the VNF instance or is connected to an external CP of the - VNF instance. See note 2. May be present otherwise. + VNF instance. See note 2. May be present otherwise. See note 7. type: array items: type: object @@ -1407,12 +1548,22 @@ definitions: description: > Metadata about this CP. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" - + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC + CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" metadata: description: > Metadata about this resource. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" - + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC + instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" VnfSnapshotInfo: description: > This type represents an "Individual VNF snapshot" resource. @@ -1881,6 +2032,7 @@ definitions: * CREATE_SNAPSHOT: CreateVnfSnapshotRequest * REVERT_TO_SNAPSHOT: RevertToVnfSnapshotRequest * CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest + * SELECT_DEPL_MODS: SelectVnfDeployableModulesRequest type: object isCancelPending: description: > @@ -2177,6 +2329,7 @@ definitions: - Change of the deployment flavour of the VNF instance - Change of the external connectivity of the VNF instance - Change of the current VNF package + - Selection of deployable modules 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 @@ -2355,6 +2508,15 @@ definitions: type: array items: $ref: "#/definitions/AffectedVirtualCp" + affectedCertificates: + description: > + Information about certificate content that were affected during the execution of the lifecycle management + operation, if this notification represents the result of a lifecycle management operation occurrence. + Shall be present when using delegation mode, otherwise shall be absent. + This attribute shall be supported when delegation mode in certificate management is applicable + type: array + items: + $ref: "#/definitions/AffectedCertificate" changedExtConnectivity: description: > Information about changed external connectivity, if this notification @@ -2582,6 +2744,368 @@ definitions: items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + CertificateConfigurationData: + description: > + This type provides input information related to certificate management. It shall comply with the provisions defined in + table 5.5.3.29-1. + ETSI GS NFV-SOL 009 [i.18] specifies the means to discover the applicable certificate management mode of VNFM + and configure into the NFVO applicable certificate management mode via the "NFV-MANO Configuration and + Information Management" interface + type: object + properties: + overridingCertificateProfiles: + description: > + Overriding certificate profile. This overrides the + certificateBaseProfile provided in the VNFD, and the CA + and CMF can additionally override aspects of this + certificateBaseProfile at later point in the VNF lifecycle if + necessary to meet operator security policy. + type: array + items: + $ref: "#/definitions/CertificateBaseProfile" + securityPolicies: + description: > + Security policy to be satisfied for the certificate. + type: array + items: + $ref: "#/definitions/SecurityPolicy" + cmfData: + description: > + Information for CMF. + $ref: "#/definitions/CmfData" + + SecurityPolicy: + description: > + This type provides input information related to security policy for certificate management. It shall comply with the + provisions defined in table 5.5.3.30-1 + type: object + required: + - id + properties: + id: + description: Identifier of this security policy. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + maxValidityPeriod: + description: Allowed max validity period for certificates. + type: number + allowedAlgorithm: + description: Allowed signature algorithm. + type: string + minimumKeyLength: + description: Minimum key length for certificates. + type: number + + CertificateBaseProfile: + description: > + NOTE: At least one overriding attributes shall be present, otherwise shall be absent. + + This type provides input information to override certificate base profile + for certificate management. It shall comply with the provisions defined + in table 5.5.3.31-1. + type: object + required: + - id + properties: + id: + description: The identifier of this certificate profile. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + issuer: + description: Issuer of certificates. See note. + type: string + issuerUniqueIdentifier: + description: Identifier of this issuer of certificates. See note. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + subject: + description: Subject of certificates. See note. + $ref: "#/definitions/CertSubjectData" + subjectUniqueIdentifier: + description: Identifier of this subject of certificates. See note. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + basicConstraints: + description: Basic constraints of certificates. See note. + type: string + issuerAltName: + description: Alternative name of issuer of certificates in this NS. See note. + type: array + items: + type: string + subjectAltName: + description: > + Alternative name of subject of certificates. Shall be present when + this certificate is used for encrypted communication using IP + address and subjectAltName attribute of CertificateBaseProfile in + CertificateDesc of VNFD is empty (see ETSI GS NFV-IFA 011 [14], + clause 7.1.19.4). See note. + type: array + items: + type: string + nameConstraints: + description: Name constraints of certificates. See note. + type: array + items: + type: string + + CmfData: + description: > + This type provides input information related to CMF for certificate + management. It shall comply with the provisions defined in table 5.5.3.32-1. + type: object + required: + - endPoint + properties: + endPoint: + description: End point of CMF instance. + type: object + properties: + ipAddress: + description: An IP address of this end point. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IpAddress" + link: + description: A link to this end point. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link" + supportedProtocols: + description: Supported protocols by CMF instance. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocolEnum" + + CertSubjectData: + description: > + This type provides input information related to the subject of the + certificate. It shall comply with the provisions defined in table + 5.5.3.33-1. + type: object + properties: + commonName: + description: > + Information of the certification target subject FQDN. Can be set + empty when this certificate is used for encrypted communication + using IP address. See note. + type: string + organization: + description: Information of the certification target subject Organization. See note. + type: string + country: + description: Information of the certification target subject Country. See note. + type: string + state: + description: Information of the certification target subject State. See note. + type: string + locality: + description: Information of the certification target subject Locality. See note. + type: string + emailAddress: + description: Information of the certification contact email address. See note. + type: string + + CmfInfo: + description: > + This type provides input information related to CMF for certificate + management. It shall comply with the provisions defined in table 5.5.3.34-1. + type: object + required: + - id + - endPoint + properties: + id: + description: Identifier of this CMF information. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + endPoint: + description: End point of CMF instance. + type: object + properties: + ipAddress: + description: An IP address of this end point. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IpAddress" + link: + description: A link to this end point. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link" + supportedProtocols: + description: Supported protocols by CMF instance. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocolEnum" + certificateChain: + description: Certificate chain that this CMF provides. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + + AffectedCertificate: + description: > + This type provides input information about added, deleted, and modified + certificate contents. It shall comply with the provisions defined in + table 5.5.3.35-1. + type: object + required: + - certificateInfoId + - changeType + properties: + certificateInfoId: + description: Identifier of certificate information. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + certificateBaseProfileId: + description: Identifier of certificate base profile. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + securityPolicyId: + description: Identifier of security policy. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + cmfInfoId: + description: Identifier of CMF information. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + certificateContentId: + description: Identifier of certificate content. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + changeType: + description: Signals the type of change. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ChangeTypeEnum" + + PaasServiceInfo: + description: > + This type provides input information about a PaaS Service that is used by + a VNF instance. The PaasServiceInfo is comprised of various sets of + information. Some information comes from the VNFD, other information comes + from the PaaS Service assets provided by the NFVO to the VNFM, and other + information is provided at runtime information about the usage of the PaaS + Service. It shall comply with the provisions defined in table 5.5.3.36-1. + type: object + required: + - id + - paasServiceId + - paasServiceType + - paasServiceRequestId + - paasServiceHandle + properties: + id: + description: Identifier of this PaaS Service Information. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + paasServiceId: + description: Identifier of the assigned PaaS Service as managed by the PaaS Services Management (PSM) function. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + paasServiceType: + description: The type of PaaS Service. The value of this attribute is expected to be matched against values of the registered PaaS Services in the PSR. + type: string + paasServiceVersion: + description: Version of the PaaS Service. It shall be present if the PaaS Service is versioned. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version" + paasServiceRequestId: + description: Identifier of the PaaS Service request in the VNFD that maps to the assigned PaaS Service. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + paasServiceHandle: + description: A handle enabling the access and use of the PaaS Service by the VNF instance. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/PaasServiceHandle" + additionalInfo: + description: Additional information which is specific to the PaaS Service, its type, and which is available from the PaaS Service instance. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + + CertificateInfo: + description: > + This type provides input information related to certificate and certificate + management. It shall comply with the provisions defined in table 5.5.3.37-1. + type: object + required: + - id + properties: + id: + description: Identifier of this certificate information. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + certificateConfigurationInfo: + description: > + Configuration for certificate management such as certificate profile + and security policy. + $ref: "#/definitions/CertificateConfigurationInfo" + certificateContents: + description: > + Information for contents of issued certificates. The information + contained in this attribute may be updated over time during the VNF + LCM, e.g., certificate(s) renewal. + type: array + items: + $ref: "#/definitions/CertificateContent" + + CertificateConfigurationInfo: + description: > + This type provides input information related to certificate management. + It shall comply with the provisions defined in table 5.5.3.38-1. + type: object + properties: + certificateBaseProfile: + description: Information for certificate profile. + type: array + items: + $ref: "#/definitions/CertificateBaseProfile" + securityPolicy: + description: Information for security policy to be satisfied for certificate. + type: array + items: + $ref: "#/definitions/SecurityPolicy" + delegationSupportedCertificateManagements: + description: Describes supported certificate management information. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + cmfInfo: + description: Information for CMF. + $ref: "#/definitions/CmfInfo" + + CertificateContent: + description: > + NOTE: The CertificateDesc data type is defined in clause 7.1.19.2 of ETSI GS NFV IFA 011 [10]. + + This type provides input information related to certificate content. + It shall comply with the provisions defined in table 5.5.3.39-1. + type: object + required: + - id + - certificateDescId + - certificateType + properties: + id: + description: Identifier of this certificate. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + certificateDescId: + description: > + Identifier of certificate description in VNFD to be used to issue + this certificate. See note. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + certificateType: + description: Type of this certificate. + type: string + enum: + - VNFCI_CERT + - VNFOAM_CERT + supportedCertificateManagements: + description: Describes supported certificate management information. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + version: + description: Version of this certificate. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version" + serialNumber: + description: Serial number of this certificate. + type: integer + signatureAlgorithm: + description: Algorithm of this certificate’s signature. + type: string + issuer: + description: Issuer of this certificate. + type: string + notBefore: + description: Start date of the valid period for this certificate. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime" + notAfter: + description: End date of the valid period for this certificate. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime" + subject: + description: Subject of this certificate. + type: string + publicKeyAlgorithm: + description: Algorithm of this certificate’s public key. + type: string + publicKey: + description: Public key of this certificate. + type: string + certificateExtensions: + description: Extension of this certificate. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + CreateVnfRequest: description: > This type represents request parameters for the "Create VNF identifier" operation. @@ -2608,6 +3132,12 @@ definitions: the "metadata" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling metadata during the operation are defined in clause 5.4.2.3.1. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile, information of CMF and security policy + in this VNF. It shall be present when using delegation mode, otherwise it shall be absent. + This attribute shall be supported when delegation mode of certificate management is applicable. + $ref: "#/definitions/CertificateConfigurationData" ScaleVnfRequest: description: > @@ -2651,8 +3181,14 @@ definitions: description: > This type represents request parameters for the "Scale VNF to Level" operation. - NOTE: Either the instantiationLevelId attribute or the scaleInfo attribute shall - be included. + NOTE 1: Either the instantiationLevelId attribute or the scaleInfo attribute shall + be included. + NOTE 2: If the referenced instantiationLevel or the scaleInfo attribute contain information related to VNFCs that are not + going to be instantiated due to the selection of deployable modules, the information is stored in the VNFM for + later use and included in the instantiatedVnfInfo. If, during the lifecycle of the VNF, as a result of a change of + the selected deployable modules any of those VNFCs is going to be instantiated, the stored information + determines the number of instances, unless the request that triggered the change also contains information + about the number of instances type: object anyOf: - oneOf: @@ -2665,13 +3201,13 @@ definitions: description: > Identifier of the target instantiation level of the current deployment flavour to which the VNF is requested to be scaled. - See note. + See note 1 and 2. $ref: "../../General_Definitions/SOL003_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. - See note. + See note 1 and 2. type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" @@ -3253,7 +3789,12 @@ definitions: type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" - + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this + VNF CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" VnfOperationalStateType: description: > STARTED: The VNF instance is up and running. @@ -3556,6 +4097,7 @@ definitions: enum: - Deployment - StatefulSet + - DaemonSet AffectedVipCp: description: > @@ -3700,8 +4242,11 @@ definitions: This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC - instances realized by one or a set of OS containers and compare it to the desired state as specified - in the respective declarative descriptor. It triggers actions toward the CIS to align the actual to + instances realized by one or a set of OS containers and compare it to the desired state For an MCIO related to a VDU that has the + attribute isNumOfInstancesClusterBased set to FALSE the desired state is specified in the respective declarative + descriptor. For an MCIO related to a VDU that has the attribute isNumOfInstancesClusterBased set to TRUE, the + desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements.as specified in + the respective declarative descriptor. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. @@ -3780,14 +4325,21 @@ definitions: from the CISM. See note 2. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" - + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this + MCIO instance uses. Shall be present when using in delegation mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" VirtualCpInfo: description: > This type provides information related to a virtual CP instance of a VNF. - NOTE: A consumer of the VNF LCM interface can learn the actual VNFC instances implementing the service - accessible via the virtual CP instance by querying the "vnfcResourceInfo" from the "InstantiatedVnfInfo" - and filtering by corresponding "vduIds" values. + NOTE 1: A consumer of the VNF LCM interface can learn the actual VNFC instances implementing the service + accessible via the virtual CP instance by querying the "vnfcResourceInfo" from the "InstantiatedVnfInfo" + and filtering by corresponding "vduIds" values. + NOTE 2: The information can be omitted because it is already available as part of the external CP information in the + VnfExtCpInfo structure. type: object required: - cpInstanceId @@ -3814,12 +4366,13 @@ definitions: cpProtocolInfo: description: > Protocol information for this CP. There shall be one cpProtocolInfo for each layer protocol supported. + This attribute may be omitted if the virtual CP is exposed as an external CP. See note 2. type: array items: $ref: "#/definitions/CpProtocolInfo" vduIds: description: > - Reference to the VDU(s) which implement the service accessible via the virtual CP instance. See note. + Reference to the VDU(s) which implement the service accessible via the virtual CP instance. See note 1. type: array minItems: 1 items: -- GitLab From b343f79f79bac5ed47877db2c4bd5630504584d5 Mon Sep 17 00:00:00 2001 From: muhammadh Date: Thu, 14 Dec 2023 17:38:30 +0500 Subject: [PATCH 02/30] Update API versions for all API's --- src/SOL003/APIVersion/APIVersion.yaml | 4 ++-- src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml | 6 +++--- .../VNFFaultManagementNotification.yaml | 6 +++--- src/SOL003/VNFIndicator/VNFIndicator.yaml | 6 +++--- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 6 +++--- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 6 +++--- .../VNFLifecycleManagementNotification.yaml | 6 +++--- .../VNFLifecycleOperationGranting.yaml | 6 +++--- src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml | 6 +++--- .../VNFPackageManagementNotification.yaml | 6 +++--- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 6 +++--- .../VNFPerformanceManagementNotification.yaml | 6 +++--- .../VNFSnapshotPackageManagement.yaml | 6 +++--- .../VirtualisedResourcesQuotaAvailableNotification.yaml | 6 +++--- 14 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index 150b645a..340a98ca 100644 --- a/src/SOL003/APIVersion/APIVersion.yaml +++ b/src/SOL003/APIVersion/APIVersion.yaml @@ -20,8 +20,8 @@ info: version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf paths: /vrqan/api_versions: diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 237f61b0..4c3ca7e4 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/vnffm/v1 diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 329c04c5..02392de4 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index aa0921da..28463953 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/vnfind/v1 diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 37413c6b..5c0e97c8 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index c43602f8..40719636 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/vnflcm/v2 diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 9ca18232..bacc7a1a 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 15045be9..f6c2c139 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/grant/v1 diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index dd9af8e4..6c052724 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/vnfpkgm/v2 diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index eafa5d26..40e881b7 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index eabe8547..e527b8e5 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/vnfpm/v2 diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 670502e8..e7977845 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index 3fb67bd5..9957c7b3 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/vnfsnapshotpkgm/v1 diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 373fc581..2897d1fb 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.04.01_60/gs_NFV-SOL003v040401p.pdf + description: ETSI GS NFV-SOL 003 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/04.05.01_60/gs_NFV-SOL003v040501p.pdf servers: - url: http://127.0.0.1/vrqan/v1 -- GitLab From 0cbb045579e5e8ed1aca90f387a14297fcf57e36 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Fri, 15 Dec 2023 13:01:22 +0500 Subject: [PATCH 03/30] update GrantedLcmOperationType enum --- .../General_Definitions/SOL003_def.yaml | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/SOL003/General_Definitions/SOL003_def.yaml b/src/SOL003/General_Definitions/SOL003_def.yaml index 9b51d5c6..a9c0b43e 100644 --- a/src/SOL003/General_Definitions/SOL003_def.yaml +++ b/src/SOL003/General_Definitions/SOL003_def.yaml @@ -755,10 +755,8 @@ definitions: PaasServiceHandle: description: > - This type provides information enabling the access and use of the PaaS - Service by the VNF instance. The type and format of the handle depends on - the form that the PaaS Service is formed. It shall comply with the - provisions defined in table 4.4.1.19-1. + This type provides information enabling the access and use of the PaaS Service by the VNF instance. + The type and format of the handle depends on the form that the PaaS Service is formed. type: object required: - id @@ -769,21 +767,20 @@ definitions: $ref: "#/definitions/Identifier" interfaceInfo: description: > - Information of the interface or interfaces to the PaaS Service - instance, if applicable, such as the URI of an interface endpoint to - communicate with the PaaS Service instance. + Information of the interface or interfaces to the PaaS Service instance, if applicable, such + as the URI of an interface endpoint to communicate with the PaaS Service instance. $ref: "#/definitions/KeyValuePairs" accessInfo: description: > Authentication credentials for accessing the PaaS Service instance. - If the PaasServiceHandle structure is part of an HTTP GET response - payload body, sensitive attributes that are children of this - attribute (such as passwords) shall not be included. - $ref: "#/definitions/Identifier" + + If the PaasServiceHandle structure is part of an HTTP GET response payload body, sensitive attributes + that are children of this attribute (such as passwords) shall not be included. + $ref: "#/definitions/KeyValuePairs" extra: description: > - PaaS Service instance-specific additional information. The applicable - structure, and whether or not this attribute is available. + PaaS Service instance specific additional information. The applicable structure, and whether + or not this attribute is available, is dependent on the type of the PaaS Service. $ref: "#/definitions/KeyValuePairs" ScaleInfo: @@ -1020,6 +1017,7 @@ definitions: CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation. CREATE_SNAPSHOT | Represents the "Create VNF snapshot" LCM operation. REVERT_TO_SNAPSHOT | Represents the "Revert to VNF snapshot" LCM operation. + SELECT_DEPL_MODS | Represents the “Select VNF deployable modules” LCM operation. type: string enum: - INSTANTIATE @@ -1033,6 +1031,7 @@ definitions: - CHANGE_VNFPKG - CREATE_SNAPSHOT - REVERT_TO_SNAPSHOT + - SELECT_DEPL_MODS LcmOperationType: description: > -- GitLab From 9d20fe38761e557d86ae84d9105bb2482b01108d Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Fri, 15 Dec 2023 13:02:40 +0500 Subject: [PATCH 04/30] fix minor issues in SOL003 VNF LCM API --- .../VNFLifecycleManagement.yaml | 32 ++++++++++++++---- .../SOL003VNFLifecycleManagement_def.yaml | 33 +++++++------------ 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 40719636..a7b057de 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1200,6 +1200,9 @@ paths: 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503" + ############################################################################### + # VNF state snapshot # + ############################################################################### /vnf_snapshots/{vnfSnapshotInfoId}/vnf_state_snapshot: #SOL003 location: 5.4.25.2 parameters: @@ -1244,9 +1247,13 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" + ############################################################################### + # Select VNF deployable modules task # + ############################################################################### /vnf_snapshots/{vnfSnapshotInfoId}/select_depl_mods: #SOL003 location: 5.4.26.2 parameters: + - $ref: '#/components/parameters/VnfInstanceId_1' - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version @@ -1254,16 +1261,15 @@ paths: description: | The POST method requests to select deployable modules of a VNF instance and therefore to instantiate or terminate VNFC instances according to the selected deployable modules. - The steps and conditions that apply as the result of successfully executing this method are specified in clause 5.4.1.2. requestBody: $ref: '#/components/requestBodies/SelectVnfDeployableModulesRequest' responses: 202: - $ref: '#/components/responses/selectdeployablemodules.Post.202' + $ref: '#/components/responses/Selectdeployablemodules.Post.202' 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" 409: - $ref: '#/components/responses/IndividualVnfInstance.Delete.409' + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -1442,6 +1448,21 @@ components: schema: type: string + VnfInstanceId_1: + name: vnfInstanceId + in: path + description: | + Identifier of the "Individual VNF snapshot" resource. See note. + + NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header + in the response to a POST request creating a new "Individual VNF instance" resource. It can + also be retrieved from the "id" attribute in the message content of that response. + required: true + style: simple + explode: false + schema: + type: string + Range: name: Range in: header @@ -1576,8 +1597,7 @@ components: SelectVnfDeployableModulesRequest: description: | - This type represents request parameters for the "Select VNF deployable modules" operation. It shall comply with the - provisions defined in table 5.5.2.27-1. + This type represents request parameters for the "Select VNF deployable modules" operation. content: application/json: schema: @@ -2086,7 +2106,7 @@ components: schema: type: string - selectdeployablemodules.Post.202: + Selectdeployablemodules.Post.202: description: | 202 ACCEPTED diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 699c3406..32df1443 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -787,9 +787,7 @@ definitions: SelectVnfDeployableModulesRequest: description: > - This type represents request parameters for the "Select VNF deployable - modules" operation. It shall comply with the provisions defined in table - 5.5.2.27-1. + This type represents request parameters for the "Select VNF deployable modules" operation. NOTE: Thus, the select VNF deployable modules operation cannot be used as a scale VNF operation to scale VNFCs that were already instantiated. type: object @@ -2746,8 +2744,8 @@ definitions: CertificateConfigurationData: description: > - This type provides input information related to certificate management. It shall comply with the provisions defined in - table 5.5.3.29-1. + This type provides input information related to certificate management. + ETSI GS NFV-SOL 009 [i.18] specifies the means to discover the applicable certificate management mode of VNFM and configure into the NFVO applicable certificate management mode via the "NFV-MANO Configuration and Information Management" interface @@ -2776,8 +2774,7 @@ definitions: SecurityPolicy: description: > - This type provides input information related to security policy for certificate management. It shall comply with the - provisions defined in table 5.5.3.30-1 + This type provides input information related to security policy for certificate management. type: object required: - id @@ -2800,8 +2797,7 @@ definitions: NOTE: At least one overriding attributes shall be present, otherwise shall be absent. This type provides input information to override certificate base profile - for certificate management. It shall comply with the provisions defined - in table 5.5.3.31-1. + for certificate management. type: object required: - id @@ -2848,7 +2844,7 @@ definitions: CmfData: description: > This type provides input information related to CMF for certificate - management. It shall comply with the provisions defined in table 5.5.3.32-1. + management. type: object required: - endPoint @@ -2872,8 +2868,7 @@ definitions: CertSubjectData: description: > This type provides input information related to the subject of the - certificate. It shall comply with the provisions defined in table - 5.5.3.33-1. + certificate. type: object properties: commonName: @@ -2900,8 +2895,7 @@ definitions: CmfInfo: description: > - This type provides input information related to CMF for certificate - management. It shall comply with the provisions defined in table 5.5.3.34-1. + This type provides input information related to CMF for certificate management. type: object required: - id @@ -2933,9 +2927,7 @@ definitions: AffectedCertificate: description: > - This type provides input information about added, deleted, and modified - certificate contents. It shall comply with the provisions defined in - table 5.5.3.35-1. + This type provides input information about added, deleted, and modified certificate contents. type: object required: - certificateInfoId @@ -2967,7 +2959,7 @@ definitions: information. Some information comes from the VNFD, other information comes from the PaaS Service assets provided by the NFVO to the VNFM, and other information is provided at runtime information about the usage of the PaaS - Service. It shall comply with the provisions defined in table 5.5.3.36-1. + Service. type: object required: - id @@ -3000,8 +2992,7 @@ definitions: CertificateInfo: description: > - This type provides input information related to certificate and certificate - management. It shall comply with the provisions defined in table 5.5.3.37-1. + This type provides input information related to certificate and certificate management. type: object required: - id @@ -3026,7 +3017,6 @@ definitions: CertificateConfigurationInfo: description: > This type provides input information related to certificate management. - It shall comply with the provisions defined in table 5.5.3.38-1. type: object properties: certificateBaseProfile: @@ -3051,7 +3041,6 @@ definitions: NOTE: The CertificateDesc data type is defined in clause 7.1.19.2 of ETSI GS NFV IFA 011 [10]. This type provides input information related to certificate content. - It shall comply with the provisions defined in table 5.5.3.39-1. type: object required: - id -- GitLab From e95fef5d992ee2d30faf3b5784e6b0402acc2da2 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Fri, 15 Dec 2023 13:03:23 +0500 Subject: [PATCH 05/30] update VNF LCM Oper Granting API as per SOL003 v4.5.1 --- ...L003VNFLifecycleOperationGranting_def.yaml | 150 ++++++++++++------ 1 file changed, 103 insertions(+), 47 deletions(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index 23490025..596b958f 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -13,7 +13,10 @@ definitions: NOTE 3: 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. + will be released before the "result" notification of the VNF LCM operation is sent by the VNFM. In the + case of PaaS Service requests, the handling of the allocation and release of the PaaS Service is a + responsibility of the NFVO (supported by corresponding PaaS Service management functions) + based on the information about the progress and completion of the VNF LCM operation. NOTE 4: For the affinity/anti-affinity rules defined in the VNFD and the placement constraints in the GrantVnfLifecycleOperation as defined in this clause, the following applies: Assuming unlimited capacity, the combination of all the aforementioned rules shall be satisfiable by at least one possible @@ -36,6 +39,14 @@ definitions: scalable constituents of the VNF (e.g, VDUs/VLs) in the granting process. For scaling aspects not specified in targetScaleLevelInfo or for the VNF constituents (e.g.,VDUs/VLs) that are not scalable, the default instantiation level as declared in the VNFD shall be used in the granting process. + NOTE 9: For resources related to a VDU that has the attribute isNumOfInstancesClusterBased set to TRUE, + only one occurrence of the addResources, or tempResources or removeResources, or + updateResources shall be included per descriptor indicated in the resourceTemplateId of the + ResourceDefinition, not one per VNFC instance. + NOTE 10: If the granting request is for InstantiateVNF and if there are deployable modules defined in the + applicable VNF DF in the VNFD, either the selectedDeployableModules attribute or the + addResource attribute shall be included but not both. If selectedDeployableModules is included, + either the instantiationLevel or targetScaleLevelInfo attribute shall be also included. anyOf: - required: - instantiationLevelId @@ -102,56 +113,68 @@ definitions: 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. See notes 2 and 7. + operation=INSTANTIATE. See notes 2, 7 and 10. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" targetScaleLevelInfo: description: > - This attribute shall only be used for - Instantiate VNF requests. This is applicable - if VNF supports target scale level - instantiation. - This attribute provides an alternative way to - define the resources to be added for the - VNFs. - For each scaling aspect of the current - deployment flavour, the attribute specifies - the scale level of VNF constituents (e.g., - VDU level) to be instantiated. See notes 2, - 7 and 8. + This attribute shall only be used for Instantiate VNF requests. This is applicable if VNF + supports target scale level instantiation. + + This attribute provides an alternative way to define the resources to be added for the VNFs. + + For each scaling aspect of the current deployment flavour, the attribute specifies + the scale level of VNF constituents (e.g., VDU level) to be instantiated. See notes 2, + 7, 8 and 10. type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" + + selectedDeployableModule: + description: > + References a selected deployable module. + Resources related to VDUs that belong to not selected deployable modules shall not + be considered in the granting + + This attribute shall only be used for the instantiate VNF request. See note 10. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + addResources: description: > List of resource definitions in the VNFD for resources to be added by the LCM operation - which is related to this grant request, with one entry per resource. See note 2. + which is related to this grant request, with one entry per resource. See notes 2, 9 and 10. 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. See note 3. + resource. See notes 3 and 9. 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. + resource. See note 9. 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. + resource. See note 9. type: array items: $ref: "#/definitions/ResourceDefinition" + placementConstraints: description: > Placement constraints that the VNFM may send to the NFVO in order to influence the resource @@ -161,6 +184,7 @@ definitions: type: array items: $ref: "#/definitions/PlacementConstraint" + vimConstraints: description: > Used by the VNFM to require that multiple resources are managed @@ -174,11 +198,13 @@ definitions: type: array items: $ref: "#/definitions/VimConstraint" + additionalParams: description: > Additional parameters passed by the VNFM, specific to the VNF and the LCM operation. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" + _links: description: > Links to resources related to this request. @@ -251,6 +277,9 @@ definitions: In a first step, the information passed in the related LCM operation is applied to the baseline information known from earlier LCM operation executions. In a second step, the information passed in the Grant is applied to the information resulting from the first step. + NOTE 9: For resources related to ResourceDefinition whose VDU has the attribute + isNumOfInstancesClusterBased set to TRUE, only one occurrence of the addResources, or + tempResources or removeResources, or updateResources shall be included. type: object required: - id @@ -282,22 +311,12 @@ definitions: This attribute is not intended for the modification of VimConnectionInfo entries passed earlier; for that, the VnfInfoModificationRequest structure shall be used. - This attribute shall only be supported - when - - all or part of the granted - resources are managed by - a VIM and VNF-related - Resource Management in - direct mode is applicable. - - all or part of the granted - resources are managed by - a CISM. - In direct mode, this parameter shall - be absent if the VIM or CISM - information was configured to the - VNFM in another way, present - otherwise. - See note 1. + This attribute shall only be supported when + - all or part of the granted resources are managed by a VIM and VNF-related + Resource Management in direct mode is applicable. + - all or part of the granted resources are managed by a CISM. + In direct mode, this parameter shall be absent if the VIM or CISM + information was configured to the VNFM in another way, present otherwise. See note 1. type: object additionalProperties: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo" @@ -341,7 +360,7 @@ definitions: addResources: description: > List of resources that are approved to be added, with one entry per - resource. Shall be set when resources are approved to be added and + resource. See note 9. Shall be set when resources are approved to be added and shall contain the same set of resources requested to be added in the related GrantRequest. type: array @@ -351,7 +370,7 @@ definitions: description: > List of resources that are approved to be temporarily instantiated during the runtime of the lifecycle operation, with one entry per - resource. Shall be set when resources are approved to be temporarily + resource. See note 9. Shall be set when resources are approved to be temporarily instantiated and shall contain the same set of resources requested to be temporarily instantiated in the related GrantRequest. type: array @@ -360,7 +379,7 @@ definitions: removeResources: description: > List of resources that are approved to be removed, with one entry - per resource. Shall be set when resources are approved to be removed + per resource. See note 9. Shall be set when resources are approved to be removed and shall contain the same set of resources requested to be removed in the related GrantRequest. type: array @@ -369,7 +388,7 @@ definitions: updateResources: description: > List of resources that are approved to be modified, with one entry - per resource. Shall be set when resources are approved to be updated + per resource. See note 9. Shall be set when resources are approved to be updated and shall contain the same set of resources requested to be updated in the related GrantRequest. type: array @@ -411,6 +430,12 @@ definitions: type: array items: $ref: "#/definitions/StorageAsset" + paasAssets: + description: > + Information about PaaS Services assigned to the VNF and that are managed in the PSM by the NFVO. + type: array + items: + $ref: "#/definitions/PaasAssets" extVirtualLinks: description: > Information about external VLs to connect the VNF to. See notes 5, 7 and 8. If this attribute @@ -454,7 +479,7 @@ definitions: ResourceDefinition: description: > - This type provides information of an existing or proposed resource used by the VNF. + This type provides information of an existing or proposed resource or PaaS Service used by the VNF. NOTE 1: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples for such a configuration. @@ -485,6 +510,7 @@ definitions: * LINKPORT * OSCONTAINER * VIRTUALCP + * PAASSERVICE type: string enum: - COMPUTE @@ -493,6 +519,7 @@ definitions: - LINKPORT - OSCONTAINER - VIRTUALCP + - PAASSERVICE vduId: description: > Reference to the related VDU in the VNFD applicable to this @@ -514,6 +541,7 @@ definitions: - if type="STORAGE" : VirtualStorageDesc - If type="OSCONTAINER": OsContainerDesc - If type="VIRTUALCP": VirtualCpd + - If type="PAASSERVICE": PaasServiceRequest - Cardinality may be greater than "1" when type="OSCONTAINER" and multiple references to OsContainerDesc are present in the VDU indicated by the "vduId". Cardinality shall be "1" otherwise. type: array @@ -543,8 +571,8 @@ definitions: GrantInfo: description: > - This type contains information about a Compute, storage or network - resource whose addition/update/deletion was granted. + This type contains information about a Compute, storage or network resource whose addition/update/deletion + was granted. It enables also referencing to a PaaS Service request definition which has been granted. type: object required: - resourceDefinitionId @@ -855,7 +883,7 @@ definitions: this structure. The applicable "VimConnectionInfo" structure, which is referenced by vimConnectionId, can be obtained from the "vimConnectionInfo" - attribute of the "VnfInstance" structure. + attribute of the "VnfInstance" structure when "vimConnectionInfo" is available. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" @@ -893,11 +921,9 @@ definitions: properties: vimConnectionId: description: > - Identifier of the VIM or CIR connection to access the - software image referenced in this structure. - The applicable "VimConnectionInfo" structure, which is - referenced by vimConnectionId, can be obtained from the - "vimConnectionInfo" attribute of the "VnfInstance" structure. + Identifier of the VIM or CIR connection to access the software image referenced in this structure. + The applicable "VimConnectionInfo" structure, which is referenced by vimConnectionId, can be obtained from the + "vimConnectionInfo" attribute of the "VnfInstance" structure when "vimConnectionInfo" is available. This attribute shall only be supported and present if - the software image is to be loaded in a virtual machine and VNF-related resource management in direct mode is applicable. @@ -1055,3 +1081,33 @@ definitions: Name of storage class, which represents features and policies concerning a virtual storage. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String" + + PaasAssets: + type: object + required: + - paasServiceType + - paasServiceId + - paasServiceRequestId + - paasServiceHandle + properties: + paasServiceType: + description: > + The type of PaaS Service. The value of this attribute is expected to be + matched against values of the registered PaaS Services in the PSR. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String" + paasServiceId: + description: > + Identifier of the assigned PaaS Service as managed by the PSM. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + paasServiceVersion: + description: > + Version of the PaaS Service. It shall be present if the PaaS Service is versioned. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version" + paasServiceRequestId: + description: > + Identifier of the PaaS Service request in the VNFD that maps to the assigned PaaS Service. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + PaasServiceHandle: + description: > + A handle enabling the access and use of the PaaS Service by the VNF. + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/PaasServiceHandle" \ No newline at end of file -- GitLab From c2357da45160c22d77f3ac16d0e94663df12c9ed Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Fri, 15 Dec 2023 13:04:44 +0500 Subject: [PATCH 06/30] update version from 4.4.1 to 4.5.1 in README --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index dea3ce81..f2d51c0f 100644 --- a/Readme.md +++ b/Readme.md @@ -1,7 +1,7 @@ # NFV SOL002 and SOL003 APIs This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation -for the APIs defined in ETSI NFV GSs SOL002 and SOL003 v4.4.1. +for the APIs defined in ETSI NFV GSs SOL002 and SOL003 v4.5.1. The APIs described in this repository are defined for the following reference points: -- GitLab From 1ba421eea790234acb76d63f395bb875145826ee Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 18 Dec 2023 11:55:09 +0500 Subject: [PATCH 07/30] fix minor issues in SOL003_def.yaml --- src/SOL003/General_Definitions/SOL003_def.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SOL003/General_Definitions/SOL003_def.yaml b/src/SOL003/General_Definitions/SOL003_def.yaml index a9c0b43e..bf4e4a39 100644 --- a/src/SOL003/General_Definitions/SOL003_def.yaml +++ b/src/SOL003/General_Definitions/SOL003_def.yaml @@ -15,7 +15,7 @@ definitions: Shall be an absolute URI (i.e. a UTI that contains {apiRoot}). $ref: "#/definitions/Uri" - SupportedProtocolEnum: + SupportedProtocol: description: Supported protocol by CMF instance. type: string enum: @@ -542,7 +542,7 @@ definitions: of the packets or it may be an identifier used between the application and the NFVI networking infrastructure to identify the network sub-interface of the trunk port in question. In the latter case the NFVI infrastructure will map this local segmentationId to whatever segmentationId is - actually used by the NFVI’s transport technology. + actually used by the NFVI's transport technology. type: object anyOf: - required: @@ -559,8 +559,8 @@ definitions: description: > Specifies the encapsulation type for the traffics coming in and out of the trunk subport. Permitted values: - - VLAN: the subport uses VLAN as encapsulation type. - - INHERIT: the subport gets its segmentation type from the network it’s connected to. + - VLAN: the subport uses VLAN as encapsulation type. + - INHERIT: the subport gets its segmentation type from the network it's connected to. This attribute may be present for CP instances that represent subports in a trunk and shall be absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used. type: string @@ -865,7 +865,7 @@ definitions: An identifier with the intention of being globally unique. type: string - ChangeTypeEnum: + ChangeType: description: Signals the type of change. type: string enum: -- GitLab From fd70e0323bfd6e5bf8d7a306f658678959af42d3 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 18 Dec 2023 11:55:43 +0500 Subject: [PATCH 08/30] fix minor issues in SOL003VNFLifecycleManagement_def.yaml --- .../SOL003VNFLifecycleManagement_def.yaml | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 32df1443..d00918aa 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -2761,7 +2761,7 @@ definitions: type: array items: $ref: "#/definitions/CertificateBaseProfile" - securityPolicies: + securityPolicy: description: > Security policy to be satisfied for the certificate. type: array @@ -2848,6 +2848,7 @@ definitions: type: object required: - endPoint + - supportedProtocols properties: endPoint: description: End point of CMF instance. @@ -2863,12 +2864,13 @@ definitions: description: Supported protocols by CMF instance. type: array items: - $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocolEnum" + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocol" CertSubjectData: description: > - This type provides input information related to the subject of the - certificate. + This type provides input information related to the subject of the certificate. + + NOTE: At least one overriding attributes shall be present, otherwise shall be absent. type: object properties: commonName: @@ -2900,6 +2902,7 @@ definitions: required: - id - endPoint + - supportedProtocol properties: id: description: Identifier of this CMF information. @@ -2914,11 +2917,11 @@ definitions: link: description: A link to this end point. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link" - supportedProtocols: + supportedProtocol: description: Supported protocols by CMF instance. type: array items: - $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocolEnum" + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocol" certificateChain: description: Certificate chain that this CMF provides. type: array @@ -2950,7 +2953,7 @@ definitions: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" changeType: description: Signals the type of change. - $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ChangeTypeEnum" + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ChangeType" PaasServiceInfo: description: > @@ -3018,6 +3021,8 @@ definitions: description: > This type provides input information related to certificate management. type: object + required: + - securityPolicy properties: certificateBaseProfile: description: Information for certificate profile. @@ -3038,9 +3043,9 @@ definitions: CertificateContent: description: > + This type provides input information related to certificate content. + NOTE: The CertificateDesc data type is defined in clause 7.1.19.2 of ETSI GS NFV IFA 011 [10]. - - This type provides input information related to certificate content. type: object required: - id @@ -3071,7 +3076,7 @@ definitions: description: Serial number of this certificate. type: integer signatureAlgorithm: - description: Algorithm of this certificate’s signature. + description: Algorithm of this certificate's signature. type: string issuer: description: Issuer of this certificate. @@ -3086,7 +3091,7 @@ definitions: description: Subject of this certificate. type: string publicKeyAlgorithm: - description: Algorithm of this certificate’s public key. + description: Algorithm of this certificate's public key. type: string publicKey: description: Public key of this certificate. @@ -3502,7 +3507,7 @@ definitions: transport header of the packets or it may be an identifier used between the application and the NFVI networking infrastructure to identify the network sub-interface of the trunk port in question. In the latter case the NFVI infrastructure will map this local segmentationId - to whatever segmentationId is actually used by the NFVI’s transport technology. + to whatever segmentationId is actually used by the NFVI's transport technology. type: object anyOf: - required: -- GitLab From b3fb1637fd1344f704ce06226c8ebb203a082770 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 18 Dec 2023 11:56:20 +0500 Subject: [PATCH 09/30] fix minor issues in SOL003VNFSnapshotPackageManagement_def.yaml --- .../definitions/SOL003VNFSnapshotPackageManagement_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml index 1a026488..123d8fc4 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml @@ -100,7 +100,7 @@ definitions: - CREATED: the VNF snapshot package information has been created. - BUILDING: the VNF snapshot package is being built. - UPLOADING: the VNF snapshot package is being uploaded. - - EXTRACTING: the VNF snapshot package’s content is being extracted. + - EXTRACTING: the VNF snapshot package's content is being extracted. - AVAILABLE: the VNF snapshot package is available (i.e., build or upload is completed). - PROCESSING: the VNF snapshot is being processed. - ERROR: failure during the VNF snapshot package building, uploading or processing. -- GitLab From 1d28477c37447e1dd37ee759a3db659287f24a02 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 18 Dec 2023 12:18:23 +0500 Subject: [PATCH 10/30] fix indentation and minor issues in SOL003VNFLifecycleManagement_def.yaml --- .../SOL003VNFLifecycleManagement_def.yaml | 46 +++++++++---------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index d00918aa..80bb8c35 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -339,8 +339,6 @@ definitions: This attribute shall be supported when delegation mode of certificate management is applicable. $ref: "#/definitions/CertificateConfigurationData" - - TerminateVnfRequest: description: > This type represents request parameters for the "Terminate VNF" operation. @@ -508,7 +506,7 @@ definitions: VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 4.4.1.12). - NOTE 2: Component mappings are defined in the VNFD in the source or destination package for the relevant change + NOTE 3: Component mappings are defined in the VNFD in the source or destination package for the relevant change path. See clause 7.1.15.2 in ETSI GS NFV-IFA 011 [13]. type: object required: @@ -574,12 +572,14 @@ definitions: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" selectedDeployableModule: description: > - Identifier of a selected deployable module.If this attribute is present only VNFCs based on - VDUs that belong to deployable modules listed in this attribute are requested to be instantiated or - preserved if they were already instantiated.If this attribute is not present the deployable - modules that were selected before the operation, and that still are defined in the VNFD in the - destination package, or the corresponding ones according to the component mappings, remain - valid. See note 3. + Identifier of a selected deployable module. + + If this attribute is present only VNFCs based on VDUs that belong to deployable modules listed + in this attribute are requested to be instantiated or preserved if they were already instantiated. + + If this attribute is not present the deployable modules that were selected before the operation, + and that still are defined in the VNFD in the destination package, or the corresponding ones + according to the component mappings, remain valid. See note 3. $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" certificateConfigurationData: description: > @@ -789,7 +789,8 @@ definitions: description: > This type represents request parameters for the "Select VNF deployable modules" operation. - NOTE: Thus, the select VNF deployable modules operation cannot be used as a scale VNF operation to scale VNFCs that were already instantiated. + NOTE: Thus, the select VNF deployable modules operation cannot be used as a scale VNF operation + to scale VNFCs that were already instantiated. type: object properties: selectedDeployableModule: @@ -1064,21 +1065,16 @@ definitions: $ref: "#/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. + 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. - For an aspect that has not been deployed - because the related deployableModule has - not been selected, it indicates the scale level - that has been requested in the instantiation - or in a scaling operation, or, if none has been - requested in any of them, the scale level - applicable to the aspect based on the default - instantiation level. See note 8. + + For an aspect that has not been deployed because the related deployableModule has + not been selected, it indicates the scale level that has been requested in the instantiation + or in a scaling operation, or, if none has been requested in any of them, the scale level + applicable to the aspect based on the default instantiation level. See note 8. type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" @@ -2030,7 +2026,7 @@ definitions: * CREATE_SNAPSHOT: CreateVnfSnapshotRequest * REVERT_TO_SNAPSHOT: RevertToVnfSnapshotRequest * CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest - * SELECT_DEPL_MODS: SelectVnfDeployableModulesRequest + * SELECT_DEPL_MODS: SelectVnfDeployableModulesRequest type: object isCancelPending: description: > -- GitLab From d126f77338791f21a08df53df184d812972e184b Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 18 Dec 2023 12:33:14 +0500 Subject: [PATCH 11/30] remove 'the provision for .. defined in ..' phrases --- .../definitions/SOL003VNFLifecycleManagement_def.yaml | 3 +-- .../VNFPackageManagement/VNFPackageManagement.yaml | 10 ++++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 80bb8c35..f1ad9cf3 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -4061,8 +4061,7 @@ definitions: vimConnectionInfo: description: > If present, this attribute signals the changes to VIM connection info that were passed in the related - "ChangeCurrentVnfPkgRequest" structure. The provisions for sensitive information defined in clause - 4.4.1.6 apply. + "ChangeCurrentVnfPkgRequest" structure. type: object additionalProperties: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo" diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 6c052724..2474a4dd 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -388,9 +388,9 @@ paths: - $ref: '#/components/parameters/VnfPkgId' get: description: | - The GET method shall return an archive that contains a set of artifacts according to the provisions for - inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package. - See clause 10.4.5a.3.2. + The GET method shall return an archive that contains a set of artifacts. + + This GET method is used to Bulk-fetch artifacts that are not images. parameters: - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization @@ -434,9 +434,7 @@ paths: - $ref: '#/components/parameters/VnfdId' get: description: | - The GET method shall return an archive that contains a set of artifacts according to the provisions for - inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package. - See clause 10.4.5a.3.2. + The GET method fetches the content of an artifact within a VNF package. parameters: - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization -- GitLab From b9a80c60ca7fd153ac329da0250132aae1fbd523 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Mon, 18 Dec 2023 21:53:20 +0500 Subject: [PATCH 12/30] update SOL002 VNF LCM API as per v4.5.1 --- .../General_Definitions/SOL002_def.yaml | 405 +++++++++++++++++- .../VNFLifecycleManagement.yaml | 54 ++- .../SOL002VNFLifecycleManagement_def.yaml | 277 +++++++++++- ...NFLifecycleManagementNotification_def.yaml | 10 + 4 files changed, 726 insertions(+), 20 deletions(-) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index 7bad7626..a3a439b2 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -40,6 +40,140 @@ definitions: different type. type: object + CertificateConfigurationData: + description: > + This type provides input information related to certificate management. + type: object + properties: + overridingCertificateProfile: + type: array + items: + $ref: '#/definitions/CertificateBaseProfile' + description: > + Overriding certificate profile. This overrides the certificateBaseProfile provided + in the VNFD, and the CA and CMF can additionally override aspects of this certificateBaseProfile + at later point in the VNF lifecycle if necessary to meet operator security policy. + securityPolicy: + type: array + items: + $ref: '#/definitions/SecurityPolicy' + description: > + Security policy to be satisfied for certificate. + cmfData: + $ref: '#/definitions/CmfData' + description: > + Information for CMF. + + CmfData: + description: > + This type provides input information related to CMF for certificate management. + type: object + required: + - endPoint + - supportedProtocol + properties: + endPoint: + description: > + End point of CMF instance. + type: object + properties: + ipAddress: + $ref: '#/definitions/IpAddress' + description: > + An IP address of this end point. + link: + $ref: '#/definitions/Link' + description: > + A link to this end point. + supportedProtocol: + description: > + Supported protocols by CMF instance. + type: array + items: + type: string + enum: + - CMP + - CMPv2 + - EST + - SCEP + + PaasServiceHandle: + description: > + This type provides information enabling the access and use of the PaaS Service by the + VNF instance. The type and format of the handle depends on the form that the + PaaS Service is formed. + type: object + required: + - id + properties: + id: + type: string + description: > + Identifier of this PaaS Service handle. + $ref: "#/definitions/Identifier" + interfaceInfo: + description: > + Information of the interface or interfaces to the PaaS Service + instance, if applicable, such as the URI of an interface endpoint to communicate + with the PaaS Service instance. + $ref: "#/definitions/KeyValuePairs" + accessInfo: + description: > + Authentication credentials for accessing the PaaS Service instance. + If the PaasServiceHandle structure is part of an HTTP GET response + payload body, sensitive attributes that are children of this attribute + (such as passwords) shall not be included. + $ref: "#/definitions/KeyValuePairs" + extra: + description: > + PaaS Service instance specific additional information. The applicable + structure, and whether or not this attribute is available, is dependent + on the type of the PaaS Service. + $ref: "#/definitions/KeyValuePairs" + + CmfInfo: + type: object + required: + - id + - endPoint + - supportedProtocol + properties: + id: + type: string + description: > + Identifier of this CMF information. + $ref: "#/definitions/Identifier" + endPoint: + type: object + properties: + ipAddress: + $ref: '#/definitions/IpAddress' + description: > + An IP address of this end point. + link: + $ref: '#/definitions/Link' + description: > + A link to this end point. + description: > + End point of CMF instance. + supportedProtocols: + type: array + items: + type: string + enum: + - CMP + - CMPv2 + - EST + - SCEP + description: > + Supported protocol by CMF instance. + certificateChain: + type: array + items: + $ref: '#/definitions/KeyValuePairs' + description: > + Certificate chain that this CMF provides. + ApiVersionInformation: description: > This type represents API version information. @@ -275,7 +409,15 @@ definitions: map entry may be used by an external CP instance different than the one that has used it before the operation, or by no external CP instance at all. Renaming a CPD identifier during the "changeCurrentVnfPkg" operation does not count as moving the related "cpConfig" map entries to a new "extCpData" structure. - + * NOTE 5: Subports need not be used for containerized VNFCs. The application container can send and receive IP + packets with any VLAN tag as long as the network interface to connect to the secondary container cluster + network has been configured appropriately. Thus, no individual cpConfig, except the one representing the + trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point. + * NOTE 6: In the case that the cloud native template included in the MCIOP describes the set of VNFC instances, for + containerized VNFCs individual connection points need not be configured for each VNFC instance. It is only + required to configure one "cpConfig" per "cpdId", not per VNFC instance. The case of using, for a scalable + VDU, a cloud native template in the MCIOP that describes one single VNFC instance is not specified in the + present document version. type: object required: - cpdId @@ -291,7 +433,7 @@ definitions: The key of the map which identifies the individual VnfExtCpConfig entries is of type "IdentifierInVnf" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). - See notes 2, 3 and 4. + See notes 2, 3, 4, 5 and 6. type: object additionalProperties: $ref: "#/definitions/VnfExtCpConfig" @@ -730,11 +872,270 @@ definitions: specification of the interface to attach the connection points to a secondary container cluster network. $ref: "#/definitions/ResourceHandle" + Identifier: description: > An identifier with the intention of being globally unique. type: string + AffectedCertificate: + description: > + This type provides input information about added, deleted and modified certificate contents. + type: object + required: + - certificateInfoId + - changeType + properties: + certificateInfoId: + type: string + description: > + Identifier of certificate information. + $ref: "#/definitions/Identifier" + certificateBaseProfileId: + type: string + description: > + Identifier of certificate base profile. + $ref: "#/definitions/Identifier" + securityPolicyId: + type: string + description: > + Identifier of security policy. + $ref: "#/definitions/Identifier" + cmfInfoId: + type: string + description: > + Identifier of CMF information. + $ref: "#/definitions/Identifier" + certificateContentId: + type: string + description: > + Identifier of certificate content. + $ref: "#/definitions/Identifier" + changeType: + description: > + Signals the type of change. + type: string + enum: + - ADD + - REMOVE + - MODIFY + + CertificateInfo: + description: > + Represents information about certificates, including configuration details and contents. + type: object + required: + - id + properties: + id: + type: string + description: > + Identifier of this certificate information. + $ref: "#/definitions/Identifier" + certificateConfigurationInfo: + $ref: '#/definitions/CertificateConfigurationInfo' + description: > + Configuration for certificate management such as certificate profile, information of CMF, and security policy. + certificateContents: + description: > + Information for contents of issued certificates. The information contained in this attribute may be updated over time during the VNF + LCM, e.g., certificate(s) renewal. + type: array + items: + $ref: '#/definitions/CertificateContent' + + CertificateContent: + description: > + This type provides input information related to certificate content. + type: object + required: + - id + - certificateDescId + - certificateType + properties: + id: + type: string + description: Identifier of this certificate. + $ref: "#/definitions/Identifier" + certficateDescId: + type: string + description: Identifier of certificate description in VNFD to be used to issue this certificate. + $ref: "#/definitions/IdentifierInVnfd" + certificateType: + type: string + enum: + - VNFCI_CERT + - VNFOAM_CERT + description: Type of this certificate. + supportedCertificateManagements: + $ref: "#/definitions/KeyValuePairs" + description: Describes supported certificate management information. + version: + type: string + description: Version of this certificate. + $ref: "#/definitions/Version" + serialNumber: + type: integer + description: Serial number of this certificate. + signatureAlgorithm: + type: string + description: Algorithm of this certificate’s signature. + issuer: + type: string + description: Issuer of this certificate. + notBefore: + type: string + description: Start date of valid period for this certificate. + notAfter: + type: string + description: End date of valid period for this certificate. + subject: + type: string + description: Subject of this certificate. + publicKeyAlgorithm: + type: string + description: Algorithm of this certificate’s public key. + publicKey: + type: string + description: Public key of this certificate. + certificateExtensions: + $ref: "#/definitions/KeyValuePairs" + description: Extension of this certificate. + + CertificateConfigurationInfo: + description: > + This type provides input information related to certificate management. + type: object + required: + - securityPolicy + properties: + certificateBaseProfile: + description: > + Information for certificate profile. + type: array + $ref: "#/definitions/CertificateBaseProfile" + securityPolicy: + description: > + Information for security policy to be satisfied for certificate. + type: array + items: + $ref: "#/definitions/SecurityPolicy" + delegationSupportedCertificateManagements: + description: > + Describes supported certificate management information. + $ref: "#/definitions/KeyValuePairs" + cmfInfo: + description: > + Information of CMF. + type: object + $ref: "#/definitions/CmfInfo" + + SecurityPolicy: + type: object + properties: + id: + type: string + description: > + Identifier of this security policy. + $ref: "#/definitions/Identifier" + maxValidityPeriod: + type: integer + description: > + Allowed max validity period for certificates. + allowedAlgorithm: + type: string + description: > + Allowed signature algorithm. + minimumKeyLength: + type: integer + description: > + Minimum key length for certificates. + + CertificateBaseProfile: + description: > + This type provides input information to override certificate base profile for + certificate management + + * NOTE : At least one overriding attributes shall be present, otherwise shall be absent. + required: + - id + properties: + id: + type: string + description: > + The identifier of this certificate profile. + $ref: "#/definitions/Identifier" + issuer: + type: string + description: > + Issuer of certificates. See note. + issuerUniqueIdentifier: + type: string + description: > + Identifier of this issuer of certificates. See note. + $ref: "#/definitions/Identifier" + subject: + $ref: '#/definitions/CertSubjectData' + description: > + Subject of certificates. See note. + subjectUniqueIdentifier: + type: string + description: > + Identifier of this subject of certificates. See note. + basicConstraints: + type: string + description: > + Basic constraints of certificates. See note. + issuerAltName: + type: array + items: + type: string + description: > + Alternative name of issuer of certificates in this NS. See note. + subjectAltName: + type: array + items: + type: string + description: > + Alternative name of subject of certificates. See note. + nameConstraints: + type: string + description: > + Name constraints of certificates. See note. + + CertSubjectData: + description: > + This type provides input information related to subject of certificate. + + * NOTE: At least one overriding attributes shall be present, otherwise shall be absent. + type: object + properties: + commonName: + type: string + description: > + Information of certification target subject FQDN. See note. + organization: + type: string + description: > + Information of certification target subject Organization. See note. + country: + type: string + description: > + Information of certification target subject Country. See note. + state: + type: string + description: > + Information of certification target subject State. See note. + locality: + type: string + description: > + Information of certification target subject Locality. See note. + emailAddress: + type: string + description: > + Information of certification contact email address. See note. + + DateTime: description: > Date-time stamp. diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index fd877c54..bc53191d 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/vnflcm/v2 @@ -219,6 +219,46 @@ paths: "504": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + /vnf_instances/{vnfInstanceId}/select_depl_mods: + parameters: + - $ref: '#/components/parameters/VnfInstanceId' + - $ref: ../../components/SOL002_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization + post: + description: | + The POST method requests to select deployable modules of a VNF instance. See clause 5.4.11b.3.1 + requestBody: + $ref: '#/components/requestBodies/SelectVnfDeployableModulesRequest' + responses: + "202": + $ref: '#/components/responses/InstantiateVnfInstance.Post.202' + "409": + $ref: '#/components/responses/InstantiateVnfInstance.Post.409' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + /vnf_instances/{vnfInstanceId}/instantiate: parameters: - $ref: '#/components/parameters/VnfInstanceId' @@ -1386,6 +1426,14 @@ components: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest required: true + SelectVnfDeployableModulesRequest: + description: Parameters for the VNF deployable modules selection. + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/SelectVnfDeployableModulesRequest + required: true + VnfInstanceScaleRequest: description: Parameters for the scale VNF operation. content: diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 52fa68c3..11c77287 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -12,7 +12,7 @@ definitions: 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. * NOTE 2: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. - * NOTE 3: VNF configurable properties are sometimes also referred to as configuration parameters + * NOTE 3: These attributes 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. @@ -31,6 +31,14 @@ definitions: and externally-managed multi-site VL instance (refer to clause 5.5.3.5). * NOTE 6: Even though externally-managed internal VLs are also used for VNF-internal connectivity, they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. + * NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP + packets with any VLAN tag as long as the network interface to connect to the secondary container cluster + network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the + trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point. + * NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable + modules, the “scaleStatus” indicates the scale level that would be applicable to the aspect if a VNF LCM + operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF + LCM operation explicitly indicates the scale level for the aspect. type: object required: @@ -110,6 +118,13 @@ definitions: Further, these configurable properties can be created, modified or deleted with the PATCH method. In addition, the provisions in clause 5.7 shall apply. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + certificateInfo: + description: > + Information about certificate and certificate management in this VNF. Shall be present when + using delegation mode, otherwise shall be absent. This attribute can be modified with the PATCH method, + Content of this attribute shall not be either added (if previously not set) or removed (if previously set) + by using the Modify VNF Information operation. See note 3. + $ref: "#/definitions/CertificateInfo" instantiationState: description: > The instantiation state of the VNF. @@ -142,6 +157,11 @@ definitions: 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. + For an aspect that has not been deployed because the related + deployableModule has not been selected, it indicates the scale level + that has been requested in the instantiation or in a scaling operation, + or, if none has been requested in any of them, the scale level applicable + to the aspect based on the default instantiation level. See note 8. type: array items: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ScaleInfo" @@ -152,11 +172,18 @@ definitions: type: array items: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ScaleInfo" + selectedDeployableModule: + description: > + References a currently selected deployable module, as defined in the + VNFD, that has already completed the instantiation of its VNFCs + type: array + items: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" extCpInfo: description: > Information about the external CPs exposed by the VNF instance. When trunking is enabled, the list of entries includes both, external CPs corresponding to parent ports of a trunk, and external CPs associated - to sub-ports of a trunk. + to sub-ports of a trunk. See note 7. type: array minItems: 1 items: @@ -245,6 +272,12 @@ definitions: type: array items: $ref: "#/definitions/McioInfo" + vnfPaasServiceInfo: + description: > + Information on the PaaS Services assigned and used by the VNF instance. + type: array + items: + $ref: "#/definitions/PaasServiceInfo" metadata: description: > Additional VNF-specific attributes that provide metadata describing the VNF instance. @@ -374,6 +407,41 @@ definitions: in INSTANTIATED state). $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Link" + SelectVnfDeployableModulesRequest: + description: > + This type represents request parameters for the "Select VNF deployable modules" operation. + * NOTE: Thus, the select VNF deployable modules operation cannot be used as a scale VNF operation to scale VNFCs + that were already instantiated + type: object + properties: + selectedDeployableModule: + description: > + Identifier of a selected deployable module, as defined in the VNFD. VNFCs based on VDUs that belong to + deployable modules listed in this attribute will be instantiated if not already instantiated. VNFCs based on + VDUs that belong to deployable modules not listed in this attribute and that were already instantiated will be + terminated. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + targetScaleLevelInfo: + description: > + Defines the target scale levels of scaling aspects of the VDUs that belong to selected deployable modules. + If this attribute is not present or if there are VDUs that belong to selected deployable modules that take no part + in any of the scaling aspects indicated in this attribute, the VNFCs based on those VDUs shall be instantiated + according to the currently valid VNF scale level or instantiation level. + This attribute should only contain scale level information of scaling aspects associated to VDUs that will be used + to instantiate VNFCs as a result of this operation. If it contains other scale level information it shall be ignored. + See note. + The VNF Provider defines in the VNFD whether or not a particular VNF supports scaling according to this + parameter. Such a property in the VNFD applies for all instances of a particular VNF. + type: array + items: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ScaleInfo" + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the selection of deployable modules process, specific to + the VNF being affected by this operation, as declared in the VNFD as part of "selectVnfDeployableModulesOpConfig" + defined in ETSI GS NFV-IFA 011 [7]. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + InstantiateVnfRequest: description: > This type represents request parameters for the "Instantiate VNF" operation. @@ -389,6 +457,13 @@ definitions: instantiating scalable constituents of the VNF (e.g, VDUs/VLs). For scaling aspects not specified in targetScaleLevelInfo or for the VNF constituents (e.g., VDUs/VLs) that are not scalable, the default instantiation level as declared in the VNFD shall be used for instantiation. + NOTE 4: If the referenced instantiationLevel or the targetScaleLevelInfo contain information related to VNFCs that are + not going to be instantiated due to the selection of deployable modules, the information is stored in the VNFM + for later use and included in the instantiatedVnfInfo. If none of the attributes is present, the information from the + defaultInstantiationLevel related to those VNFCs is stored and included in the instantiatedVnfInfo. If, during the + lifecycle of the VNF, as a result of a change of the selected deployable modules any of those VNFCs is going to + be instantiated, the stored information determines the number of instances, unless the request that triggered + the change also contains information about the number of instances. anyOf: - required: - instantiationLevelId @@ -405,14 +480,14 @@ definitions: instantiationLevelId: description: > Identifier of the instantiation level of the deployment flavour to be - instantiated. See note 2. + instantiated. See notes 2 and 4. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" targetScaleLevelInfo: description: > This attribute is applicable if VNF supports target scale level instantiation. For each scaling aspect of the current deployment flavour, the attribute specifies the scale level of VNF constituents (e.g., VDU level) to be instantiated. See notes 2 - and 3. + 3, and 4. type: array items: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ScaleInfo" @@ -456,6 +531,16 @@ definitions: "vnfConfigurableProperties" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling configurable properties during the operation are defined in clause 5.4.4.3.1. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + selectedDeployableModule: + description: > + Identifier of a selected deployable module. Only VNFCs based on VDUs that belong + to deployable modules listed in this attribute are requested to be instantiated. + type: array + items: + type: string + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + + ChangeVnfFlavourRequest: description: > @@ -534,6 +619,21 @@ definitions: "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the operation, are defined in clause 5.4.7.3.1. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + selectedDeployableModule: + description: > + Identifier of a selected deployable module. Only VNFCs based on VDUs that belong + to deployable modules listed in this attribute are requested to be instantiated. + type: array + items: + type: string + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile and security policy in this VNF. Can be + present when setting a new certificate to the VNF instance in delegation mode. Otherwise shall not be + present. + This attribute shall be supported when delegation mode of certificate management is applicable. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateConfigurationData" TerminateVnfRequest: description: > @@ -675,16 +775,25 @@ definitions: of which the external connectivity is changed, as declared in the VNFD as part of "ChangeExtVnfConnectivityOpConfig" defined in ETSI GS NFV-IFA 011 [7]. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile and security policy in this VNF. Can be + present when setting a new certificate to the VNF instance in delegation mode. Otherwise shall not be + present. + This attribute shall be supported when delegation mode of certificate management is applicable. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateConfigurationData" ChangeCurrentVnfPkgRequest: description: > This type represents request parameters for the "Change current VNF package" operation to replace the VNF package on which a VNF instance is based. - * NOTE: The indication of externally-managed internal VLs is needed in case networks have been + * NOTE 1: The indication of externally-managed internal VLs is needed in case networks have been pre-configured for use with certain VNFs, for instance to ensure that these networks have certain properties such as security or acceleration features, or to address particular network topologies. The present document assumes that externally-managed internal VLs are managed by the NFVO and created towards the VIM. + * NOTE 2: Component mappings are defined in the VNFD in the source or destination package for the relevant change + path. See clause 7.1.15.2 in ETSI GS NFV-IFA 011 [7]. type: object required: - vnfdId @@ -731,6 +840,22 @@ definitions: in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the operation, and needed passed parameter values in case of conflicts, are defined in clause 5.4.11a.3.1. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + selectedDeployableModule: + description: > + Identifier of a selected deployable module. + If this attribute is present only VNFCs based on VDUs that belong to deployable modules listed in + this attribute are requested to be instantiated or preserved if they were already instantiated. + If this attribute is not present the deployable modules that were selected before the operation, + and that still are defined in the VNFD in the destination package, or the corresponding ones + according to the component mappings, remain valid. See note 2. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile and security policy in this VNF. + Can be present when setting a new certificate to the VNF instance in delegation mode. Otherwise + shall not be present. + This attribute shall be supported when delegation mode of certificate management is applicable. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateConfigurationData" VnfInfoModificationRequest: description: > @@ -1141,6 +1266,10 @@ definitions: definition resource is needed to fulfil the connectivity requirements of the internal CP, e.g. to build a link redundant mated pair in SR-IOV cases. * NOTE 6: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace. + * NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP + packets with any VLAN tag as long as the network interface to connect to the secondary container cluster + network has been configured appropriately. Thus, no individual vnfcCpInfo, except the one representing the + trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point. type: object required: - id @@ -1179,7 +1308,7 @@ definitions: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" vnfcCpInfo: description: > - All the CPs of the VNFC instance. + All the CPs of the VNFC instance. See note 7. type: array items: type: object @@ -1231,6 +1360,13 @@ definitions: type: array items: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC + CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable. + type: string + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" metadata: description: > Metadata about this CP. @@ -1239,6 +1375,13 @@ definitions: description: > Metadata about this resource. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC + CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable. + type: string + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" VnfVirtualLinkResourceInfo: description: > @@ -1647,6 +1790,7 @@ definitions: * CREATE_SNAPSHOT: CreateVnfSnapshotRequest * REVERT_TO_SNAPSHOT: RevertToVnfSnapshotRequest * CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest + * SELECT_DEPL_MODS: SelectVnfDeployableModulesRequest type: object isCancelPending: description: > @@ -2017,6 +2161,12 @@ definitions: the "metadata" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling metadata during the operation are defined in clause 5.4.2.3.1. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + certificateConfigurationData: + description: > + Configuration for certificate management such as certificate profile, information of CMF and security policy + in this VNF. It shall be present when using delegation mode, otherwise it shall be absent. + This attribute shall be supported when delegation mode of certificate management is applicable + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateConfigurationData" ScaleVnfRequest: description: > @@ -2060,8 +2210,14 @@ definitions: description: > This type represents request parameters for the "Scale VNF to Level" operation. - NOTE: Either the instantiationLevelId attribute or the scaleInfo attribute shall + NOTE 1: Either the instantiationLevelId attribute or the scaleInfo attribute shall be included. + NOTE 2: If the referenced instantiationLevel or the scaleInfo attribute contain information related to VNFCs that are not + going to be instantiated due to the selection of deployable modules, the information is stored in the VNFM for + later use and included in the instantiatedVnfInfo. If, during the lifecycle of the VNF, as a result of a change of + the selected deployable modules any of those VNFCs is going to be instantiated, the stored information + determines the number of instances, unless the request that triggered the change also contains information + about the number of instances. type: object anyOf: - oneOf: @@ -2074,13 +2230,13 @@ definitions: description: > Identifier of the target instantiation level of the current deployment flavour to which the VNF is requested to be scaled. - See note. + See notes 1 and 2. $ref: "../../General_Definitions/SOL002_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. - See note. + See notes 1 and 2. type: array items: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ScaleInfo" @@ -2661,6 +2817,33 @@ definitions: type: array items: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC + CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable. + type: string + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" + + CertificateInfo: + type: object + required: + - id + properties: + id: + description: > + Identifier of this certificate information. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" + type: string + certificateConfigurationInfo: + description: > + Configuration for certificate management such as certificate profile, information of CMF and security policy. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateConfigurationInfo" + certificateContents: + description: > + Information for contents of issued certificates. The information contained in this attribute may be + updated over time during the VNF LCM, e.g. certificate(s) renewal. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateContent" VnfOperationalStateType: description: > @@ -2848,6 +3031,8 @@ definitions: id: description: > Identifier of the VNFC instance. + This attribute shall not be changed, even if the virtualised resources which this VNFC instance uses can be + changed via the VNF LCM operations, unless the VNFC instance is deleted. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf" vduId: description: > @@ -2960,6 +3145,7 @@ definitions: enum: - Deployment - StatefulSet + - DaemonSet AffectedVipCp: description: > @@ -3099,15 +3285,65 @@ definitions: - REMOVED - MODIFIED + PaasServiceInfo: + description: > + This type provides information about a PaaS Service that is used by a VNF instance. + The PaasServiceInfo is comprised of various sets of information. Some information comes from the VNFD, other + information comes from the PaaS Service assets provided by the NFVO to the VNFM, and other information is + provided at runtime information about the usage of the PaaS Service. + type: object + required: + - id + - paasServiceId + - paasServiceType + - paasServiceRequestId + - paasServiceHandle + properties: + id: + type: string + description: > + Identifier of this PaaS Service Information. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" + paasServiceId: + type: string + description: > + Identifier of the assigned PaaS Service as managed by the PaaS Services Management + (PSM) function. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" + paasServiceType: + type: string + description: > + The type of PaaS Service. The value of this attribute is expected to be matched against + values of the registered PaaS Services in the PSR. + paasServiceVersion: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Version" + description: > + Version of the PaaS Service. It shall be present if the PaaS Service is versioned. + paasServiceRequestId: + type: string + description: > + Identifier of the PaaS Service request in the VNFD that maps to the assigned PaaS Service. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + paasServiceHandle: + description: > + A handle enabling the access and use of the PaaS Service by the VNF instance. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/PaasServiceHandle" + additionalInfo: + description: > + Additional information which is specific to the PaaS Service, its type, and which is available from the PaaS Service instance. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + McioInfo: description: > This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC - instances realized by one or a set of OS containers and compare it to the desired state as specified - in the respective declarative descriptor. It triggers actions toward the CIS to align the actual to - the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available - at any specific point in time. In addition, an MCIO controller maintains properties and runtime information + instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a + VDU that has the attribute "isNumOfInstancesClusterBased" set to FALSE the desired state is specified in the respective + declarative descriptor. For an MCIO related to a VDU that has the attribute "isNumOfInstancesClusterBased" set to TRUE, + the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions + toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances + available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller. @@ -3184,14 +3420,24 @@ definitions: from the CISM. See note 2. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" + certificateContentId: + description: > + Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC + CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. + This attribute shall be supported when delegation mode in certificate management is applicable. + type: string + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" VirtualCpInfo: description: > This type provides information related to a virtual CP instance of a VNF. - NOTE: A consumer of the VNF LCM interface can learn the actual VNFC instances implementing the service - accessible via the virtual CP instance by querying the "vnfcResourceInfo" from the "InstantiatedVnfInfo" + * NOTE 1: A consumer of the VNF LCM interface can learn the actual VNFC instances implementing the service + accessible via the virtual CP instance by querying the "vnfcResourceInfo" from the "InstantiatedVnfInfo" and filtering by corresponding "vduIds" values. + * NOTE 2: The information can be omitted because it is already available as part of the external CP information in the + VnfExtCpInfo structure. + type: object required: - cpInstanceId @@ -3218,6 +3464,7 @@ definitions: cpProtocolInfo: description: > Protocol information for this CP. There shall be one cpProtocolInfo for each layer protocol supported. + This attribute may be omitted if the virtual CP is exposed as an external CP. See note 2. type: array items: $ref: "#/definitions/CpProtocolInfo" diff --git a/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml index 34940475..a0db81b3 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml @@ -17,6 +17,7 @@ definitions: * 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 + * Selection of deployable modules 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" @@ -188,6 +189,15 @@ definitions: type: array items: $ref: "../../VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualCp" + affectedCertificates: + description: > + Information about certificate content that were affected during the execution of the lifecycle management + operation, if this notification represents the result of a lifecycle management operation occurrence. + Shall be present when using delegation mode, otherwise shall be absent. + This attribute shall be supported when delegation mode in certificate management is applicable. + type: array + items: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/AffectedCertificate" changedExtConnectivity: description: > Information about changed external connectivity, if this -- GitLab From 8789c2d78d0994bf0d812e582bd13f8554d84e70 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 19 Dec 2023 11:31:45 +0500 Subject: [PATCH 13/30] update VNF Performance Management API as per v4.5.1 --- .../VNFLifecycleManagementNotification.yaml | 6 +++--- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 4d2d5d52..9f68ca79 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index a9137a84..6708321c 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/vnfpm/v2 -- GitLab From 703572522f4dc9cc0bc37142dfc585729704a7b4 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 19 Dec 2023 11:37:47 +0500 Subject: [PATCH 14/30] update VNF Fault Management API as per v4.5.1 --- src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 7e9ab4a6..4e4d9f0c 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/vnffm/v1 -- GitLab From 559a6c278df7a906e878e76bf7145158a3a16fe8 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 19 Dec 2023 11:41:38 +0500 Subject: [PATCH 15/30] update VNF Indicator API as per v4.5.1 --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index e8341e6e..6dea5bb9 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/vnfind/v1 -- GitLab From 8d4e733e8ab419ce409946e7a03111538384754a Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 19 Dec 2023 14:28:47 +0500 Subject: [PATCH 16/30] update VNF Configuration API as per v4.5.1 --- .../VNFConfiguration/VNFConfiguration.yaml | 6 ++-- .../SOL002VNFConfiguration_def.yaml | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index b9db1e5b..d948f053 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/vnfconfig/v1 diff --git a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml index d195e212..82ed6ace 100644 --- a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml +++ b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml @@ -112,12 +112,48 @@ definitions: type: array items: $ref: '#/definitions/CpConfiguration' + certificateData: + description: > + Certificates data to be configured or modified into VNFC instance. Shall be present if delegation-mode is used. + Otherwise it shall be absent. + tyoe: array + items: + $ref: '#/definitions/CertificateData' vnfcSpecificData: description: > Additional configurable properties of the VNFC instance declared in the VNFD as "VnfcConfigurableProperties". See note. $ref: '../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs' + CertificateData: + description: > + This type provides input information related to subject of certificate. + * NOTE: NOTE : Either set of “privatekey” and “certificateFile” or “keystoreFile” but not both shall be present. + tyoe: object + properties: + privateKey: + type: string + description: > + Private key paired with the signed public key. VNFM shall generate both the private key and public key and set + this attribute. See note. + certificateFile: + type: string + description: > + Signed certificate including the public key and certificate chain. See note. + keystoreFile: + type: string + description: > + Keystore which includes the private key, signed certificate, and certificate chain (e.g., pkcs#12, pfx). + Credentials to read this file shall be provided to the VNF instance by outbound. See note. + certSubjectData: + $ref: '../../General_Definitions/SOL002_def.yaml#/definitions/CertSubjectData' + description: > + Subject to be signed. + certifiateProfileName: + type: string + description: > + Name of the certificate profile to be signed. + CpConfiguration: description: > This type represents configuration parameters of a CP instance. -- GitLab From 8e7b61f3159e0e81cd1208464d056676cf2b4b70 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Tue, 19 Dec 2023 14:43:31 +0500 Subject: [PATCH 17/30] fix minor issues in SOL002 VNFConfAPI and def.yaml --- src/SOL002/General_Definitions/SOL002_def.yaml | 18 +++++++++--------- .../SOL002VNFConfiguration_def.yaml | 15 ++++++++------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index a3a439b2..15e2517e 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -46,23 +46,23 @@ definitions: type: object properties: overridingCertificateProfile: - type: array - items: - $ref: '#/definitions/CertificateBaseProfile' description: > Overriding certificate profile. This overrides the certificateBaseProfile provided in the VNFD, and the CA and CMF can additionally override aspects of this certificateBaseProfile at later point in the VNF lifecycle if necessary to meet operator security policy. - securityPolicy: type: array items: - $ref: '#/definitions/SecurityPolicy' + $ref: '#/definitions/CertificateBaseProfile' + securityPolicy: description: > Security policy to be satisfied for certificate. + type: array + items: + $ref: '#/definitions/SecurityPolicy' cmfData: - $ref: '#/definitions/CmfData' description: > Information for CMF. + $ref: '#/definitions/CmfData' CmfData: description: > @@ -168,11 +168,11 @@ definitions: description: > Supported protocol by CMF instance. certificateChain: + description: > + Certificate chain that this CMF provides. type: array items: $ref: '#/definitions/KeyValuePairs' - description: > - Certificate chain that this CMF provides. ApiVersionInformation: description: > @@ -933,9 +933,9 @@ definitions: Identifier of this certificate information. $ref: "#/definitions/Identifier" certificateConfigurationInfo: - $ref: '#/definitions/CertificateConfigurationInfo' description: > Configuration for certificate management such as certificate profile, information of CMF, and security policy. + $ref: '#/definitions/CertificateConfigurationInfo' certificateContents: description: > Information for contents of issued certificates. The information contained in this attribute may be updated over time during the VNF diff --git a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml index 82ed6ace..c413e4e8 100644 --- a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml +++ b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml @@ -95,8 +95,8 @@ definitions: VnfcConfigurationData: description: > This type represents configuration parameters of a VNFC instance. - * NOTE: ETSI GS NFV-SOL 001 specifies the structure and format - of the VNFD based on TOSCA specifications. + + NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. type: object required: - vnfcInstanceId @@ -128,14 +128,15 @@ definitions: CertificateData: description: > This type provides input information related to subject of certificate. - * NOTE: NOTE : Either set of “privatekey” and “certificateFile” or “keystoreFile” but not both shall be present. - tyoe: object + + NOTE : Either set of “privatekey” and “certificateFile” or “keystoreFile” but not both shall be present. + type: object properties: privateKey: type: string description: > - Private key paired with the signed public key. VNFM shall generate both the private key and public key and set - this attribute. See note. + Private key paired with the signed public key. VNFM shall generate both the private key and + public key and set this attribute. See note. certificateFile: type: string description: > @@ -146,9 +147,9 @@ definitions: Keystore which includes the private key, signed certificate, and certificate chain (e.g., pkcs#12, pfx). Credentials to read this file shall be provided to the VNF instance by outbound. See note. certSubjectData: - $ref: '../../General_Definitions/SOL002_def.yaml#/definitions/CertSubjectData' description: > Subject to be signed. + $ref: '../../General_Definitions/SOL002_def.yaml#/definitions/CertSubjectData' certifiateProfileName: type: string description: > -- GitLab From 7b15bbe23c238ffa6c758c34c5534c54b7a51a4c Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Tue, 19 Dec 2023 14:44:28 +0500 Subject: [PATCH 18/30] respell tyoe to type in SOL002VNFConfiguration_def.yaml --- .../definitions/SOL002VNFConfiguration_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml index c413e4e8..00d72998 100644 --- a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml +++ b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml @@ -116,7 +116,7 @@ definitions: description: > Certificates data to be configured or modified into VNFC instance. Shall be present if delegation-mode is used. Otherwise it shall be absent. - tyoe: array + type: array items: $ref: '#/definitions/CertificateData' vnfcSpecificData: -- GitLab From cc56b3f40cdbb9292fa5b86f8c63d3cb3d80aedb Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 19 Dec 2023 14:59:03 +0500 Subject: [PATCH 19/30] update VNF LCM Coordination API as per v4.5.1 --- .../VNFLifecycleCoordination/VNFLifecycleCoordination.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index dd14be41..a6d2a748 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/lcmcoord/v1 -- GitLab From 82760300a2151bc6f63dcb4b31ee4b9d1f547903 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 19 Dec 2023 18:44:59 +0500 Subject: [PATCH 20/30] fix minor issues in SOL002 VNF LCM API --- .../General_Definitions/SOL002_def.yaml | 112 +++++++++--------- .../SOL002VNFLifecycleManagement_def.yaml | 19 +-- 2 files changed, 70 insertions(+), 61 deletions(-) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index 15e2517e..428dd8e0 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -144,19 +144,21 @@ definitions: Identifier of this CMF information. $ref: "#/definitions/Identifier" endPoint: + description: > + End point of CMF instance. type: object properties: ipAddress: - $ref: '#/definitions/IpAddress' description: > An IP address of this end point. + $ref: '#/definitions/IpAddress' link: - $ref: '#/definitions/Link' description: > A link to this end point. - description: > - End point of CMF instance. + $ref: '#/definitions/Link' supportedProtocols: + description: > + Supported protocol by CMF instance. type: array items: type: string @@ -165,8 +167,6 @@ definitions: - CMPv2 - EST - SCEP - description: > - Supported protocol by CMF instance. certificateChain: description: > Certificate chain that this CMF provides. @@ -722,7 +722,7 @@ definitions: * NOTE 1: The information about the VIM connection referenced by the VIM connection id is known to the VNFM. Moreover, the identifier of the VIM connection provides scope to the resourceId. - * NOTE 2: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: + * NOTE 2: A link port is not needed for an external CP instance that exposes a CP in the following cases: 1) For a VIP CP directly exposed as an external CP: 1.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD. 1.2) A dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed @@ -814,13 +814,13 @@ definitions: attribute of the VnfInstance (e.g. during a "Change current VNF package" operation or due to its final failure). - $ref: "#/definitions/IdentifierInVnfd" - scaleToLevel: + $ref: "#/definitions/Identifier" + scaleLevel: description: > Indicates the scale level. The minimum value shall be 0 - and the maximum value shall be ≤ maxScaleLevel as + and the maximum value shall be <= maxScaleLevel as described in the VNFD. - $ref: "#/definitions/Identifier" + type: integer AdditionalResourceInfo: description: > @@ -963,13 +963,13 @@ definitions: $ref: "#/definitions/IdentifierInVnfd" certificateType: type: string + description: Type of this certificate. enum: - VNFCI_CERT - VNFOAM_CERT - description: Type of this certificate. supportedCertificateManagements: - $ref: "#/definitions/KeyValuePairs" description: Describes supported certificate management information. + $ref: "#/definitions/KeyValuePairs" version: type: string description: Version of this certificate. @@ -979,7 +979,7 @@ definitions: description: Serial number of this certificate. signatureAlgorithm: type: string - description: Algorithm of this certificate’s signature. + description: Algorithm of this certificate's signature. issuer: type: string description: Issuer of this certificate. @@ -994,7 +994,7 @@ definitions: description: Subject of this certificate. publicKeyAlgorithm: type: string - description: Algorithm of this certificate’s public key. + description: Algorithm of this certificate's public key. publicKey: type: string description: Public key of this certificate. @@ -1060,48 +1060,51 @@ definitions: required: - id properties: - id: - type: string - description: > - The identifier of this certificate profile. - $ref: "#/definitions/Identifier" - issuer: - type: string - description: > - Issuer of certificates. See note. - issuerUniqueIdentifier: - type: string - description: > - Identifier of this issuer of certificates. See note. - $ref: "#/definitions/Identifier" - subject: - $ref: '#/definitions/CertSubjectData' - description: > - Subject of certificates. See note. - subjectUniqueIdentifier: + id: + type: string + description: > + The identifier of this certificate profile. + $ref: "#/definitions/Identifier" + issuer: + type: string + description: > + Issuer of certificates. See note. + issuerUniqueIdentifier: + type: string + description: > + Identifier of this issuer of certificates. See note. + $ref: "#/definitions/Identifier" + subject: + description: > + Subject of certificates. See note. + $ref: '#/definitions/CertSubjectData' + subjectUniqueIdentifier: + type: string + description: > + Identifier of this subject of certificates. See note. + $ref: "#/definitions/Identifier" + basicConstraints: + type: string + description: > + Basic constraints of certificates. See note. + issuerAltName: + type: array + items: type: string - description: > - Identifier of this subject of certificates. See note. - basicConstraints: + description: > + Alternative name of issuer of certificates in this NS. See note. + subjectAltName: + type: array + items: type: string - description: > - Basic constraints of certificates. See note. - issuerAltName: - type: array - items: - type: string - description: > - Alternative name of issuer of certificates in this NS. See note. - subjectAltName: - type: array - items: - type: string - description: > - Alternative name of subject of certificates. See note. - nameConstraints: + description: > + Alternative name of subject of certificates. See note. + nameConstraints: + type: array + items: type: string - description: > - Name constraints of certificates. See note. + description: > + Name constraints of certificates. See note. CertSubjectData: description: > @@ -1332,6 +1335,7 @@ definitions: - CREATE_SNAPSHOT - REVERT_TO_SNAPSHOT - CHANGE_VNFPKG + - SELECT_DEPL_MODS ProblemDetails: #SOL003 location: 4.3.5.3 diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 11c77287..cda0e05b 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -420,7 +420,9 @@ definitions: deployable modules listed in this attribute will be instantiated if not already instantiated. VNFCs based on VDUs that belong to deployable modules not listed in this attribute and that were already instantiated will be terminated. - $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + type: array + items: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" targetScaleLevelInfo: description: > Defines the target scale levels of scaling aspects of the VDUs that belong to selected deployable modules. @@ -625,7 +627,6 @@ definitions: to deployable modules listed in this attribute are requested to be instantiated. type: array items: - type: string $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" certificateConfigurationData: description: > @@ -848,7 +849,9 @@ definitions: If this attribute is not present the deployable modules that were selected before the operation, and that still are defined in the VNFD in the destination package, or the corresponding ones according to the component mappings, remain valid. See note 2. - $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + type: array + items: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" certificateConfigurationData: description: > Configuration for certificate management such as certificate profile and security policy in this VNF. @@ -1786,7 +1789,7 @@ definitions: * HEAL: HealVnfRequest * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest * TERMINATE: TerminateVnfRequest - * MODIFY_INFO: VnfInfoModifications + * MODIFY_INFO: VnfInfoModificationRequest * CREATE_SNAPSHOT: CreateVnfSnapshotRequest * REVERT_TO_SNAPSHOT: RevertToVnfSnapshotRequest * CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest @@ -2819,7 +2822,7 @@ definitions: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" certificateContentId: description: > - Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC + Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNF CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. This attribute shall be supported when delegation mode in certificate management is applicable. type: string @@ -2843,7 +2846,9 @@ definitions: description: > Information for contents of issued certificates. The information contained in this attribute may be updated over time during the VNF LCM, e.g. certificate(s) renewal. - $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateContent" + type: array + items: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateContent" VnfOperationalStateType: description: > @@ -3316,9 +3321,9 @@ definitions: The type of PaaS Service. The value of this attribute is expected to be matched against values of the registered PaaS Services in the PSR. paasServiceVersion: - $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Version" description: > Version of the PaaS Service. It shall be present if the PaaS Service is versioned. + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Version" paasServiceRequestId: type: string description: > -- GitLab From 6e3c67e9c153d43af9b60f0dfab4a7a7af324837 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 20 Dec 2023 10:15:05 +0500 Subject: [PATCH 21/30] fix minor issues in SOL002VNFLifecycleManagement_def and SOL002_def files --- src/SOL002/General_Definitions/SOL002_def.yaml | 2 ++ .../definitions/SOL002VNFLifecycleManagement_def.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index 428dd8e0..cf29ac21 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -1031,6 +1031,8 @@ definitions: $ref: "#/definitions/CmfInfo" SecurityPolicy: + description: > + This type provides input information related to security policy for certificate management. type: object properties: id: diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index cda0e05b..d3bd7a4d 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -2829,6 +2829,8 @@ definitions: $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" CertificateInfo: + description: > + This type provides input information related to certificate and certificate management. type: object required: - id -- GitLab From 813c7fb9e5bfa0fa9e7b8c1c323a2e8a482c748c Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 20 Dec 2023 15:12:28 +0500 Subject: [PATCH 22/30] fix minor issues in SOL002 OAS v4.5.1 --- .../General_Definitions/SOL002_def.yaml | 136 ++++++++---------- .../VNFLifecycleManagement.yaml | 45 +++++- .../SOL002VNFLifecycleManagement_def.yaml | 8 +- .../VNFPerformanceManagementNotification.yaml | 2 +- 4 files changed, 104 insertions(+), 87 deletions(-) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index cf29ac21..ac94f5b6 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -44,6 +44,8 @@ definitions: description: > This type provides input information related to certificate management. type: object + required: + - securityPolicy properties: overridingCertificateProfile: description: > @@ -73,21 +75,20 @@ definitions: - supportedProtocol properties: endPoint: - description: > - End point of CMF instance. + description: End point of CMF instance. type: object + required: + - ipAddress + - link properties: ipAddress: + description: An IP address of this end point. $ref: '#/definitions/IpAddress' - description: > - An IP address of this end point. link: + description: A link to this end point. $ref: '#/definitions/Link' - description: > - A link to this end point. supportedProtocol: - description: > - Supported protocols by CMF instance. + description: Supported protocols by CMF instance. type: array items: type: string @@ -139,26 +140,24 @@ definitions: - supportedProtocol properties: id: + description: Identifier of this CMF information. type: string - description: > - Identifier of this CMF information. $ref: "#/definitions/Identifier" endPoint: - description: > - End point of CMF instance. + description: End point of CMF instance. type: object + required: + - ipAddress + - link properties: ipAddress: - description: > - An IP address of this end point. + description: An IP address of this end point. $ref: '#/definitions/IpAddress' link: - description: > - A link to this end point. + description: A link to this end point. $ref: '#/definitions/Link' supportedProtocols: - description: > - Supported protocol by CMF instance. + description: Supported protocol by CMF instance. type: array items: type: string @@ -168,8 +167,7 @@ definitions: - EST - SCEP certificateChain: - description: > - Certificate chain that this CMF provides. + description: Certificate chain that this CMF provides. type: array items: $ref: '#/definitions/KeyValuePairs' @@ -887,29 +885,29 @@ definitions: - changeType properties: certificateInfoId: - type: string description: > Identifier of certificate information. + type: string $ref: "#/definitions/Identifier" certificateBaseProfileId: - type: string description: > Identifier of certificate base profile. + type: string $ref: "#/definitions/Identifier" securityPolicyId: - type: string description: > Identifier of security policy. + type: string $ref: "#/definitions/Identifier" cmfInfoId: - type: string description: > Identifier of CMF information. + type: string $ref: "#/definitions/Identifier" certificateContentId: - type: string description: > Identifier of certificate content. + type: string $ref: "#/definitions/Identifier" changeType: description: > @@ -928,9 +926,9 @@ definitions: - id properties: id: - type: string description: > Identifier of this certificate information. + type: string $ref: "#/definitions/Identifier" certificateConfigurationInfo: description: > @@ -938,8 +936,8 @@ definitions: $ref: '#/definitions/CertificateConfigurationInfo' certificateContents: description: > - Information for contents of issued certificates. The information contained in this attribute may be updated over time during the VNF - LCM, e.g., certificate(s) renewal. + Information for contents of issued certificates. The information contained in this attribute may be + updated over time during the VNF LCM, e.g., certificate(s) renewal. type: array items: $ref: '#/definitions/CertificateContent' @@ -954,16 +952,16 @@ definitions: - certificateType properties: id: - type: string description: Identifier of this certificate. + type: string $ref: "#/definitions/Identifier" certficateDescId: - type: string description: Identifier of certificate description in VNFD to be used to issue this certificate. + type: string $ref: "#/definitions/IdentifierInVnfd" certificateType: - type: string description: Type of this certificate. + type: string enum: - VNFCI_CERT - VNFOAM_CERT @@ -971,33 +969,33 @@ definitions: description: Describes supported certificate management information. $ref: "#/definitions/KeyValuePairs" version: - type: string description: Version of this certificate. + type: string $ref: "#/definitions/Version" serialNumber: - type: integer description: Serial number of this certificate. + type: integer signatureAlgorithm: - type: string description: Algorithm of this certificate's signature. - issuer: type: string + issuer: description: Issuer of this certificate. - notBefore: type: string + notBefore: description: Start date of valid period for this certificate. - notAfter: type: string + notAfter: description: End date of valid period for this certificate. - subject: type: string + subject: description: Subject of this certificate. - publicKeyAlgorithm: type: string + publicKeyAlgorithm: description: Algorithm of this certificate's public key. - publicKey: type: string + publicKey: description: Public key of this certificate. + type: string certificateExtensions: $ref: "#/definitions/KeyValuePairs" description: Extension of this certificate. @@ -1034,79 +1032,69 @@ definitions: description: > This type provides input information related to security policy for certificate management. type: object + required: + - id properties: id: + description: Identifier of this security policy. type: string - description: > - Identifier of this security policy. $ref: "#/definitions/Identifier" maxValidityPeriod: + description: Allowed max validity period for certificates. type: integer - description: > - Allowed max validity period for certificates. allowedAlgorithm: + description: Allowed signature algorithm. type: string - description: > - Allowed signature algorithm. minimumKeyLength: + description: Minimum key length for certificates. type: integer - description: > - Minimum key length for certificates. CertificateBaseProfile: description: > This type provides input information to override certificate base profile for certificate management - * NOTE : At least one overriding attributes shall be present, otherwise shall be absent. + NOTE : At least one overriding attributes shall be present, otherwise shall be absent. required: - id properties: id: + description: The identifier of this certificate profile. type: string - description: > - The identifier of this certificate profile. $ref: "#/definitions/Identifier" issuer: type: string - description: > - Issuer of certificates. See note. + description: Issuer of certificates. See note. issuerUniqueIdentifier: type: string - description: > - Identifier of this issuer of certificates. See note. + description: Identifier of this issuer of certificates. See note. $ref: "#/definitions/Identifier" subject: - description: > - Subject of certificates. See note. + description: Subject of certificates. See note. $ref: '#/definitions/CertSubjectData' subjectUniqueIdentifier: + description: Identifier of this subject of certificates. See note. type: string - description: > - Identifier of this subject of certificates. See note. $ref: "#/definitions/Identifier" basicConstraints: type: string description: > Basic constraints of certificates. See note. issuerAltName: + description: Alternative name of issuer of certificates in this NS. See note. type: array items: type: string - description: > - Alternative name of issuer of certificates in this NS. See note. subjectAltName: + description: Alternative name of subject of certificates. See note. type: array items: type: string - description: > - Alternative name of subject of certificates. See note. nameConstraints: + description: Name constraints of certificates. See note. type: array items: type: string - description: > - Name constraints of certificates. See note. CertSubjectData: description: > @@ -1116,29 +1104,23 @@ definitions: type: object properties: commonName: + description: Information of certification target subject FQDN. See note. type: string - description: > - Information of certification target subject FQDN. See note. organization: + description: Information of certification target subject Organization. See note. type: string - description: > - Information of certification target subject Organization. See note. country: + description: Information of certification target subject Country. See note. type: string - description: > - Information of certification target subject Country. See note. state: + description: Information of certification target subject State. See note. type: string - description: > - Information of certification target subject State. See note. locality: + description: Information of certification target subject Locality. See note. type: string - description: > - Information of certification target subject Locality. See note. emailAddress: + description: Information of certification contact email address. See note. type: string - description: > - Information of certification contact email address. See note. DateTime: diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index bc53191d..179e56d1 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -223,6 +223,7 @@ paths: parameters: - $ref: '#/components/parameters/VnfInstanceId' - $ref: ../../components/SOL002_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization post: description: | @@ -231,17 +232,17 @@ paths: $ref: '#/components/requestBodies/SelectVnfDeployableModulesRequest' responses: "202": - $ref: '#/components/responses/InstantiateVnfInstance.Post.202' + $ref: '#/components/responses/Selectdeployablemodules.Post.202' + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 "409": - $ref: '#/components/responses/InstantiateVnfInstance.Post.409' + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 "403": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 - "404": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 "405": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": @@ -3337,4 +3338,38 @@ components: content: application/json: schema: - $ref: "../General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails" \ No newline at end of file + $ref: "../General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails" + + Selectdeployablemodules.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created + "Individual VNF LCM operation occurrence" resource corresponding to the operation. + headers: + Location: + description: | + The resource URI of the created "Individual VNF LCM operation + occurrence" resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index d3bd7a4d..de855ef3 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -3307,29 +3307,29 @@ definitions: - paasServiceHandle properties: id: - type: string description: > Identifier of this PaaS Service Information. + type: string $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" paasServiceId: - type: string description: > Identifier of the assigned PaaS Service as managed by the PaaS Services Management (PSM) function. + type: string $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" paasServiceType: - type: string description: > The type of PaaS Service. The value of this attribute is expected to be matched against values of the registered PaaS Services in the PSR. + type: string paasServiceVersion: description: > Version of the PaaS Service. It shall be present if the PaaS Service is versioned. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Version" paasServiceRequestId: - type: string description: > Identifier of the PaaS Service request in the VNFD that maps to the assigned PaaS Service. + type: string $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" paasServiceHandle: description: > diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index e0d8fe2b..22cf5531 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.11.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V4.4.1 -- GitLab From dd7c0c2b28cdf5d3756b8899f4e7786ebfdf9c0a Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 20 Dec 2023 15:12:37 +0500 Subject: [PATCH 23/30] fix minor issues in SOL003 OAS v4.5.1 --- .../VNFLifecycleManagement.yaml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index a7b057de..3c81ae9d 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1280,6 +1280,12 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" components: parameters: filter_vnf_instances: @@ -2111,9 +2117,9 @@ components: 202 ACCEPTED Shall be returned when the request has been accepted for processing. - The response body shall be empty.The HTTP response shall include a - "Location" HTTP header that contains the URI of the newly-created "Individual - VNF LCM operation occurrence" resource corresponding to the operation + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created + "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Location: description: | -- GitLab From b797a93d81f7c2cc91bf3344b26ea68b3d19077c Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 20 Dec 2023 15:29:29 +0500 Subject: [PATCH 24/30] update version from 4.4.1 to 4.5.1 in SOL002 --- src/SOL002/APIVersion/APIVersion.yaml | 4 ++-- .../VNFFaultManagementNotification.yaml | 4 ++-- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 4 ++-- .../VNFPerformanceManagementNotification.yaml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/SOL002/APIVersion/APIVersion.yaml b/src/SOL002/APIVersion/APIVersion.yaml index 9a17dc4b..31c98905 100644 --- a/src/SOL002/APIVersion/APIVersion.yaml +++ b/src/SOL002/APIVersion/APIVersion.yaml @@ -19,8 +19,8 @@ info: version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf paths: /vnfconfig/api_versions: diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 45590628..300cffeb 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -19,8 +19,8 @@ info: version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 92b51ac5..8b04dec2 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -19,8 +19,8 @@ info: version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 22cf5531..f5fa5345 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -19,8 +19,8 @@ info: version: 2.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V4.4.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.04.01_60/gs_NFV-SOL002v040401p.pdf + description: ETSI GS NFV-SOL 002 V4.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/04.05.01_60/gs_NFV-SOL002v040501p.pdf servers: - url: http://127.0.0.1/callback/v2 -- GitLab From 2b3545835a1a52a9704b2021610c5be1353f802c Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Thu, 25 Jan 2024 15:44:13 +0500 Subject: [PATCH 25/30] fix bug in SOL003 VNFLifecycleManagement.yaml as per NFVSOL(24)000012 --- src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 3c81ae9d..3727cfbe 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1250,7 +1250,7 @@ paths: ############################################################################### # Select VNF deployable modules task # ############################################################################### - /vnf_snapshots/{vnfSnapshotInfoId}/select_depl_mods: + /vnf_instances/{vnfInstanceId}/select_depl_mods: #SOL003 location: 5.4.26.2 parameters: - $ref: '#/components/parameters/VnfInstanceId_1' @@ -1458,7 +1458,7 @@ components: name: vnfInstanceId in: path description: | - Identifier of the "Individual VNF snapshot" resource. See note. + Identifier of the VNF instance of which the deployable modules are requested to be selected. See note. NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. It can -- GitLab From c63b3f0a1cc25348aeff4544dd9d4ee24d4a6890 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Thu, 1 Feb 2024 17:48:56 +0500 Subject: [PATCH 26/30] remove deprecated authorization methods BASIC and TLS_CERT from SOL002 and SOL003 --- src/SOL002/General_Definitions/SOL002_def.yaml | 10 +--------- src/SOL003/General_Definitions/SOL003_def.yaml | 8 -------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index ac94f5b6..a68be6c4 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -1393,23 +1393,15 @@ definitions: description: > Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. - Permitted values: - * BASIC: In every HTTP request to the notification endpoint, use - HTTP Basic authentication with the client credentials. + Permitted values: * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the notification endpoint, use an OAuth 2.0 Bearer token, obtained using the client credentials grant type. - * TLS_CERT: Every HTTP request to the notification endpoint is sent - over a mutually authenticated TLS session, i.e. not only the - server is authenticated, but also the client is authenticated - during the TLS tunnel setup. type: array items: type: string enum: - - BASIC - OAUTH2_CLIENT_CREDENTIALS - - TLS_CERT paramsBasic: description: > Parameters for authentication/authorization using BASIC. diff --git a/src/SOL003/General_Definitions/SOL003_def.yaml b/src/SOL003/General_Definitions/SOL003_def.yaml index bf4e4a39..66a1ffda 100644 --- a/src/SOL003/General_Definitions/SOL003_def.yaml +++ b/src/SOL003/General_Definitions/SOL003_def.yaml @@ -1143,22 +1143,14 @@ definitions: Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: - * BASIC: In every HTTP request to the notification endpoint, use - HTTP Basic authentication with the client credentials. * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the notification endpoint, use an OAuth 2.0 Bearer token, obtained using the client credentials grant type. - * TLS_CERT: Every HTTP request to the notification endpoint is sent - over a mutually authenticated TLS session, i.e. not only the - server is authenticated, but also the client is authenticated - during the TLS tunnel setup. type: array items: type: string enum: - - BASIC - OAUTH2_CLIENT_CREDENTIALS - - TLS_CERT paramsBasic: description: > Parameters for authentication/authorization using BASIC. -- GitLab From 0feaf7574ed1c5354c66be4844ed09b63d573844 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Tue, 6 Feb 2024 12:04:13 +0500 Subject: [PATCH 27/30] Fix API version mismatch in xxxNotification.YAML for SOL002 --- .../VNFFaultManagementNotification.yaml | 2 +- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 300cffeb..8d0b91f5 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V4.5.1 diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 8b04dec2..e773f9e8 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.12.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V4.5.1 -- GitLab From f8f9d34145332e593240d2221113b148f6187e69 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Tue, 6 Feb 2024 12:46:26 +0500 Subject: [PATCH 28/30] Fix SOL002 API's inconsistencies in data types and descriptions. --- src/SOL002/General_Definitions/SOL002_def.yaml | 11 ++++++++--- .../definitions/SOL002VNFLifecycleManagement_def.yaml | 1 - 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index a68be6c4..cc85e2c5 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -133,6 +133,8 @@ definitions: $ref: "#/definitions/KeyValuePairs" CmfInfo: + description: > + This type provides input information related to CMF for certificate management. type: object required: - id @@ -983,10 +985,10 @@ definitions: type: string notBefore: description: Start date of valid period for this certificate. - type: string + $ref: "#/definitions/DateTime" notAfter: description: End date of valid period for this certificate. - type: string + $ref: "#/definitions/DateTime" subject: description: Subject of this certificate. type: string @@ -1086,7 +1088,9 @@ definitions: items: type: string subjectAltName: - description: Alternative name of subject of certificates. See note. + description: Alternative name of subject of certificates. Shall be present when this certificate is used for encrypted + communication using IP address and subjectAltName attribute of CertificateBaseProfile in CertificateDesc of + VNFD is empty (see ETSI GS NFV-IFA 011 [7],clause 7.1.19.4). See note type: array items: type: string @@ -1305,6 +1309,7 @@ definitions: CREATE_SNAPSHOT | Represents the "Create VNF Snapshot" LCM operation. REVERT_TO_SNAPSHOT | Represents the “Revert-To VNF Snapshot" LCM operation. CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation. + SELECT_DEPL_MODS | Represents the "Select VNF deployable modules" LCM operation type: string enum: - INSTANTIATE diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index de855ef3..b8597b9d 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -539,7 +539,6 @@ definitions: to deployable modules listed in this attribute are requested to be instantiated. type: array items: - type: string $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" -- GitLab From 195e4d1421e351b63ccb59b4bc7ec5701ef18faf Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Tue, 6 Feb 2024 15:44:08 +0500 Subject: [PATCH 29/30] Resolve various SOL003 OAS mismatches and missing properties. --- src/SOL003/General_Definitions/SOL003_def.yaml | 4 +++- .../SOL003VNFLifecycleManagement_def.yaml | 16 ++++++++++------ .../SOL003VNFLifecycleOperationGranting_def.yaml | 12 ++++++------ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/SOL003/General_Definitions/SOL003_def.yaml b/src/SOL003/General_Definitions/SOL003_def.yaml index 66a1ffda..fb570390 100644 --- a/src/SOL003/General_Definitions/SOL003_def.yaml +++ b/src/SOL003/General_Definitions/SOL003_def.yaml @@ -679,7 +679,7 @@ definitions: description: > This type represents an external VL. - * NOTE 1: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: + * NOTE 1: A link port is not needed for an external CP instance that exposes a CP in the following cases: 1) For a VIP CP directly exposed as an external CP: 1.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD. 1.2) A dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed @@ -860,6 +860,7 @@ definitions: specification of the interface to attach the connection points to a secondary container cluster network. $ref: "#/definitions/ResourceHandle" + Identifier: description: > An identifier with the intention of being globally unique. @@ -1069,6 +1070,7 @@ definitions: - CREATE_SNAPSHOT - REVERT_TO_SNAPSHOT - CHANGE_VNFPKG + - SELECT_DEPL_MODS ProblemDetails: #SOL003 location: 4.3.5.3 diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index f1ad9cf3..5d4c9d74 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -133,7 +133,9 @@ definitions: description: > Identifier of a selected deployable module. Only VNFCs based on VDUs that belong to deployable modules listed in this attribute are requested to be instantiated. - $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" ExtManagedVirtualLinkData: @@ -330,7 +332,9 @@ definitions: Identifier of a selected deployable module. Only VNFCs based on VDUs that belong to deployable modules listed in this attribute are requested to be instantiated or preserved if they were already instantiated. - $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" certificateConfigurationData: description: > Configuration for certificate management such as certificate profile and security policy in this VNF. Can @@ -580,7 +584,9 @@ definitions: If this attribute is not present the deployable modules that were selected before the operation, and that still are defined in the VNFD in the destination package, or the corresponding ones according to the component mappings, remain valid. See note 3. - $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" certificateConfigurationData: description: > Configuration for certificate management such as certificate profile and security policy in this VNF. @@ -1031,9 +1037,7 @@ definitions: when using delegation mode, otherwise shall be absent.This attribute can be modified with the PATCH method.Content of this attribute shall not be either added (if previously not set) or removed (if previously set) by using the Modify VNF Information operation. See note 3. - type: object - additionalProperties: - $ref: "#/definitions/CertificateInfo" + $ref: "#/definitions/CertificateInfo" instantiationState: description: > The instantiation state of the VNF. diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index 596b958f..e74b9520 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -430,12 +430,12 @@ definitions: type: array items: $ref: "#/definitions/StorageAsset" - paasAssets: - description: > - Information about PaaS Services assigned to the VNF and that are managed in the PSM by the NFVO. - type: array - items: - $ref: "#/definitions/PaasAssets" + paasAssets: + description: > + Information about PaaS Services assigned to the VNF and that are managed in the PSM by the NFVO. + type: array + items: + $ref: "#/definitions/PaasAssets" extVirtualLinks: description: > Information about external VLs to connect the VNF to. See notes 5, 7 and 8. If this attribute -- GitLab From 624a161b39f456a2f15f2278d2d7e41fdc34281a Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Tue, 6 Feb 2024 19:06:55 +0500 Subject: [PATCH 30/30] fix issue #17 - [v4.5.1] fix definition of ExtVirtualLinkData Note2 in SOL002_def.yaml --- .../General_Definitions/SOL002_def.yaml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index cc85e2c5..ea4e80c0 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -722,16 +722,16 @@ definitions: * NOTE 1: The information about the VIM connection referenced by the VIM connection id is known to the VNFM. Moreover, the identifier of the VIM connection provides scope to the resourceId. - * NOTE 2: A link port is not needed for an external CP instance that exposes a CP in the following cases: - 1) For a VIP CP directly exposed as an external CP: - 1.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD. - 1.2) A dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed - (createExtLinkPort in VnfExtCpConfig set to false). - 2) For a VIP CP exposed as an external CP via a floating IP address: - 2.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and the VNFC CP - associated to the VIP CP is also exposed via a floating IP address. - 3) For a VIRTUAL CP exposed as an external CP. - 4) For a VNFC CP exposed as an external CP in a secondary container cluster external network. + * NOTE 2: A link port is not needed for an external CP instance that exposes a CP in the following cases: + 1) For a virtual IP CP directly exposed as an external CP: + 1.1) No dedicated IP address is allocated as virtual IP address, as indicated in the VNFD. + 1.2) A dedicated IP address is allocated as virtual IP address, but the NFVO indicates that no port is + needed (createExtLinkPort in VnfExtCpconfig set to false). + 2) For a virtual IP CP exposed as an external CP via a floating IP address: + 2.1) No dedicated IP address is allocated as virtual IP address, as indicated in the VNFD, and the VNFC + CP associated to the virtual IP CP is also exposed via a floating IP address. + 3) For a VIRTUAL CP exposed as an external CP. + 4) For a VNFC CP exposed as an external CP in a secondary container cluster external network. * NOTE 3: An example of the network attachment definition resource when the container infrastructure service management is a Kubernetes® instance is a network attachment definition (NAD). -- GitLab