diff --git a/Readme.md b/Readme.md index dea3ce8139575c8d57947ac0244641380c0f3059..f2d51c0f93e79be64e00561a60749b91a2382e9b 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: diff --git a/src/SOL002/APIVersion/APIVersion.yaml b/src/SOL002/APIVersion/APIVersion.yaml index 9a17dc4bbd3075caf8e4eefcfe80a81533dec406..31c9890598fb73d71000bddb6ed7e7f01470e2c3 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/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index 7bad76268fe7cd3f7978dd4df428a7d21b132a3b..ea4e80c0d67266c162838437780887ccf69f53c6 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 + required: + - securityPolicy + properties: + overridingCertificateProfile: + 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' + securityPolicy: + description: > + Security policy to be satisfied for certificate. + type: array + items: + $ref: '#/definitions/SecurityPolicy' + cmfData: + description: > + Information for CMF. + $ref: '#/definitions/CmfData' + + 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 + required: + - ipAddress + - link + properties: + ipAddress: + description: An IP address of this end point. + $ref: '#/definitions/IpAddress' + link: + description: A link to this end point. + $ref: '#/definitions/Link' + 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: + description: > + This type provides input information related to CMF for certificate management. + type: object + required: + - id + - endPoint + - supportedProtocol + properties: + id: + description: Identifier of this CMF information. + type: string + $ref: "#/definitions/Identifier" + endPoint: + description: End point of CMF instance. + type: object + required: + - ipAddress + - link + properties: + ipAddress: + description: An IP address of this end point. + $ref: '#/definitions/IpAddress' + link: + description: A link to this end point. + $ref: '#/definitions/Link' + supportedProtocols: + description: Supported protocol by CMF instance. + type: array + items: + type: string + enum: + - CMP + - CMPv2 + - EST + - SCEP + certificateChain: + description: Certificate chain that this CMF provides. + type: array + items: + $ref: '#/definitions/KeyValuePairs' + 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" @@ -580,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 VIP 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). @@ -672,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: > @@ -730,11 +872,261 @@ 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: + description: > + Identifier of certificate information. + type: string + $ref: "#/definitions/Identifier" + certificateBaseProfileId: + description: > + Identifier of certificate base profile. + type: string + $ref: "#/definitions/Identifier" + securityPolicyId: + description: > + Identifier of security policy. + type: string + $ref: "#/definitions/Identifier" + cmfInfoId: + description: > + Identifier of CMF information. + type: string + $ref: "#/definitions/Identifier" + certificateContentId: + description: > + Identifier of certificate content. + type: string + $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: + description: > + Identifier of this certificate information. + type: string + $ref: "#/definitions/Identifier" + 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 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: + description: Identifier of this certificate. + type: string + $ref: "#/definitions/Identifier" + certficateDescId: + description: Identifier of certificate description in VNFD to be used to issue this certificate. + type: string + $ref: "#/definitions/IdentifierInVnfd" + certificateType: + description: Type of this certificate. + type: string + enum: + - VNFCI_CERT + - VNFOAM_CERT + supportedCertificateManagements: + description: Describes supported certificate management information. + $ref: "#/definitions/KeyValuePairs" + version: + description: Version of this certificate. + type: string + $ref: "#/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 valid period for this certificate. + $ref: "#/definitions/DateTime" + notAfter: + description: End date of valid period for this certificate. + $ref: "#/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: + $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: + 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 + $ref: "#/definitions/Identifier" + maxValidityPeriod: + description: Allowed max validity period for certificates. + type: integer + allowedAlgorithm: + description: Allowed signature algorithm. + type: string + minimumKeyLength: + description: Minimum key length for certificates. + type: integer + + 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: + description: The identifier of this certificate profile. + type: string + $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: + description: Identifier of this subject of certificates. See note. + type: string + $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 + 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 [7],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 + + 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: + description: Information of certification target subject FQDN. See note. + type: string + organization: + description: Information of certification target subject Organization. See note. + type: string + country: + description: Information of certification target subject Country. See note. + type: string + state: + description: Information of certification target subject State. See note. + type: string + locality: + description: Information of certification target subject Locality. See note. + type: string + emailAddress: + description: Information of certification contact email address. See note. + type: string + + DateTime: description: > Date-time stamp. @@ -917,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 @@ -931,6 +1324,7 @@ definitions: - CREATE_SNAPSHOT - REVERT_TO_SNAPSHOT - CHANGE_VNFPKG + - SELECT_DEPL_MODS ProblemDetails: #SOL003 location: 4.3.5.3 @@ -1004,23 +1398,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/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index b9db1e5b086032d5e8795b71732abfdc3a063f0b..d948f053aac5685d0c0235aec77456bbf32b579e 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 d195e212a38a79e9b03f4e7d48335c7e9aa9abaf..00d7299806447b79565b107897d7497f363f1eaf 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 @@ -112,12 +112,49 @@ 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. + type: 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 : 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. + 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: + description: > + Subject to be signed. + $ref: '../../General_Definitions/SOL002_def.yaml#/definitions/CertSubjectData' + certifiateProfileName: + type: string + description: > + Name of the certificate profile to be signed. + CpConfiguration: description: > This type represents configuration parameters of a CP instance. diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 7e9ab4a624e9c60edd718e95ddfd359417a03e61..4e4d9f0c3d3547ef2910498129827c443304fe34 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 diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 45590628094c54a9a791f85320684abbab0aff9d..8d0b91f5f3d77c67346e8a4e25e667db35ed6fc3 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/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.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.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/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index e8341e6ee8dae96d2cea6860f6db741f9caf6e1a..6dea5bb9427bc550c5351d3da47edbeaafdb7e24 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 diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 92b51ac5d6aa7af8b94f67d165595fe72162172a..e773f9e8119e294756134c939bd99af0b738d276 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/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.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.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/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index dd14be416517c0191908ece18c69ae26e42650e9..a6d2a748fb98dac9f435048db3cf2f1ce677166c 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 diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index fd877c54107d64fab8f817024d1a5d4b60341bab..179e56d1d86637e72ef739d72d4f8089e03aa10d 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,47 @@ 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/SOL003_params.yaml#/components/parameters/Accept + - $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/Selectdeployablemodules.Post.202' + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "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 + "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 +1427,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: @@ -3289,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 52fa68c3310be6f061b2eb34a91441a78a1569e2..b8597b9da1c8a78bf6c3ba97a780301db8f4bc75 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,43 @@ 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. + 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. + 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 +459,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 +482,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 +533,15 @@ 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: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd" + + ChangeVnfFlavourRequest: description: > @@ -534,6 +620,20 @@ 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: + $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,24 @@ 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. + 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. + 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 +1268,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 +1310,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 +1362,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 +1377,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: > @@ -1643,10 +1788,11 @@ 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 + * SELECT_DEPL_MODS: SelectVnfDeployableModulesRequest type: object isCancelPending: description: > @@ -2017,6 +2163,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 +2212,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 +2232,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 +2819,37 @@ 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 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 + $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 + 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. + type: array + items: + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/CertificateContent" VnfOperationalStateType: description: > @@ -2848,6 +3037,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 +3151,7 @@ definitions: enum: - Deployment - StatefulSet + - DaemonSet AffectedVipCp: description: > @@ -3099,15 +3291,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: + description: > + Identifier of this PaaS Service Information. + type: string + $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier" + paasServiceId: + 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: + 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: + 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: > + 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 +3426,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 +3470,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/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 4d2d5d526a14b4e4ab8334c217f3b5d7536ef896..9f68ca7932d4ab0329892b8831772926076f5c3b 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/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml index 3494047585c2c8df31ecc2145ea5fb66f4995a79..a0db81b39bd1ed9a3ab883ddf0c632762611d1ea 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 diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index a9137a84d606cf998ba69b0815a4729159322be6..6708321c51132b4a37a6eda88e2853c8b9a72fde 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 diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index e0d8fe2bb316da7a776cdfd0b415869236753d97..f5fa53457a29c5e35d87e462b34e844580c70d70 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/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 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/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index 150b645aca33cf4fa82257873ef13104cb4244fd..340a98ca72e8a0ccfa0c5dead597f0f6dfcc3a16 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/General_Definitions/SOL003_def.yaml b/src/SOL003/General_Definitions/SOL003_def.yaml index 932827a897b91fe4720c38fd099ee4a8ec015131..fb57039020b168462de661b9e34733623f437d45 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" + SupportedProtocol: + 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" @@ -524,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: @@ -541,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 @@ -661,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 @@ -735,6 +753,36 @@ 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. + 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/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" + ScaleInfo: description: > This type represents the scale level of a VNF instance related to a scaling aspect. @@ -812,11 +860,20 @@ 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 + ChangeType: + description: Signals the type of change. + type: string + enum: + - ADD + - REMOVE + - MODIFY + DateTime: description: > Date-time stamp. @@ -961,6 +1018,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 @@ -974,6 +1032,7 @@ definitions: - CHANGE_VNFPKG - CREATE_SNAPSHOT - REVERT_TO_SNAPSHOT + - SELECT_DEPL_MODS LcmOperationType: description: > @@ -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 @@ -1010,6 +1070,7 @@ definitions: - CREATE_SNAPSHOT - REVERT_TO_SNAPSHOT - CHANGE_VNFPKG + - SELECT_DEPL_MODS ProblemDetails: #SOL003 location: 4.3.5.3 @@ -1084,22 +1145,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. diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 237f61b091f22bd21e44884ca12b850579a5da95..4c3ca7e49c606d8c74c27d2dbaaccabbba08ef61 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 329c04c5a93d51cd5fefe4a74f7d0ac9c09bf62c..02392de42be859bd113be8edd049d24537b95b33 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 aa0921da8fd6af9c50e77503d841c3be84a7cd53..284639531c9962dd8fc843e16d338951daf0c50e 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 37413c6b35b153ab3a421e856079868d2549e1e7..5c0e97c8a144800eb1b6fe6ab6cff575cc801eac 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 948ad24d9778be95675fe5fbbfb7ad71abf636dc..3727cfbe388b2e626adc47bfc6ae2d7b021eb3bf 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 @@ -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,6 +1247,45 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" + ############################################################################### + # Select VNF deployable modules task # + ############################################################################### + /vnf_instances/{vnfInstanceId}/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 + 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. + requestBody: + $ref: '#/components/requestBodies/SelectVnfDeployableModulesRequest' + responses: + 202: + $ref: '#/components/responses/Selectdeployablemodules.Post.202' + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + 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" + 405: + $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: @@ -1412,6 +1454,21 @@ components: schema: type: string + VnfInstanceId_1: + name: vnfInstanceId + in: path + description: | + 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 + 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 @@ -1544,6 +1601,15 @@ components: $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/RevertToVnfSnapshotRequest" required: true + SelectVnfDeployableModulesRequest: + description: | + This type represents request parameters for the "Select VNF deployable modules" operation. + 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 +2112,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 4e129ad521b93f2c5f5d78fe4b413e94a79e78c8..5d4c9d741985347c967a64fb1719a5765b0ee87f 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,14 @@ 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. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd" + ExtManagedVirtualLinkData: description: > @@ -133,6 +148,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 +200,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 +327,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. + 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 + 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 +488,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 +510,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 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: - vnfdId @@ -530,6 +574,26 @@ 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. + 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 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 +791,47 @@ 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. + + 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 +902,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 +1031,13 @@ 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. + $ref: "#/definitions/CertificateInfo" instantiationState: description: > The instantiation state of the VNF. @@ -949,13 +1069,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. type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo" @@ -966,11 +1089,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 +1176,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 +1438,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 +1491,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 +1546,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 +2030,7 @@ definitions: * CREATE_SNAPSHOT: CreateVnfSnapshotRequest * REVERT_TO_SNAPSHOT: RevertToVnfSnapshotRequest * CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest + * SELECT_DEPL_MODS: SelectVnfDeployableModulesRequest type: object isCancelPending: description: > @@ -2177,6 +2327,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 +2506,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 +2742,364 @@ definitions: items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier" + CertificateConfigurationData: + description: > + 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 + 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" + securityPolicy: + 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. + 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. + 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. + type: object + required: + - endPoint + - supportedProtocols + 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/SupportedProtocol" + + CertSubjectData: + description: > + 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: + 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. + type: object + required: + - id + - endPoint + - supportedProtocol + 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" + supportedProtocol: + description: Supported protocols by CMF instance. + type: array + items: + $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocol" + 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. + 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/ChangeType" + + 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. + 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. + 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. + type: object + required: + - securityPolicy + 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: > + 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]. + 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 +3126,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 +3175,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 +3195,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" @@ -2977,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: @@ -3253,7 +3783,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. @@ -3530,8 +4065,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" @@ -3556,6 +4090,7 @@ definitions: enum: - Deployment - StatefulSet + - DaemonSet AffectedVipCp: description: > @@ -3700,8 +4235,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 +4318,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 +4359,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: diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 9ca182323c0f3275017e0710244e2814f697078d..bacc7a1acb0c883c19f1673deda75f24b33ee2fb 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 15045be952db989e6fb2ba4bdcc2ab43e5aafca3..f6c2c139218a8d6c373108fbdb15659026f9b906 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/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index 23490025d393c72777655daaf6b29dc8d2a737f0..e74b9520d73b7ac7bee439b25c3f11934bd1b5fa 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 diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index dd9af8e494afdab4f07195bd0df4f6ce7e4fb8b2..2474a4ddf52f32ce6cc4713063f86236359ad1a4 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 @@ -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 diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index eafa5d265d5c257281def3458d24d342af622a6a..40e881b72bb67a2c4bcd4e7da2a248d4251071c7 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 eabe85472a637c0e36653bb1716b8803d10daf6a..e527b8e5d32210103c06800c8e9db30324778172 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 670502e816e39d6c7182722809509b8dd78af3c3..e79778454827636bf80e2929f1620c7fe12cb229 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 3fb67bd59e7400c4d44a47e240d25defb518f16e..9957c7b300f65e483110e851765ddfe5241bcd2d 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/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml index 1a02648840aa9e99ecb6461f54fbc1b298fb0eef..123d8fc43693a933f8334b3e95f9bb4136fb3318 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. diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 373fc5817b6d378c4897a391944815d1fcc4f517..2897d1fb44e362f8b0bfa2408d53816c8ecb2007 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