Network Functions Virtualisation (NFV); Protocols and Data Models; Specification of Patterns and Conventions for RESTful NFV-MANO APIs

DGS/NFV-SOL015

General Information

Status
Published
Publication Date
29-Jan-2020
Technical Committee
Current Stage
12 - Completion
Due Date
03-Feb-2020
Completion Date
30-Jan-2020
Ref Project

Buy Standard

Standard
ETSI GS NFV-SOL 015 V1.1.1 (2020-01) - Network Functions Virtualisation (NFV); Protocols and Data Models; Specification of Patterns and Conventions for RESTful NFV-MANO APIs
English language
50 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

ETSI GS NFV-SOL 015 V1.1.1 (2020-01)






GROUP SPECIFICATION
Network Functions Virtualisation (NFV);
Protocols and Data Models;
Specification of Patterns and Conventions
for RESTful NFV-MANO APIs
Disclaimer
The present document has been produced and approved by the Network Functions Virtualisation (NFV) ETSI Industry
Specification Group (ISG) and represents the views of those members who participated in this ISG.
It does not necessarily represent the views of the entire ETSI membership.


---------------------- Page: 1 ----------------------
2 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)



Reference
DGS/NFV-SOL015
Keywords
API, DATA, MANO, model, NFV, protocol
ETSI
650 Route des Lucioles
F-06921 Sophia Antipolis Cedex - FRANCE

Tel.: +33 4 92 94 42 00  Fax: +33 4 93 65 47 16

Siret N° 348 623 562 00017 - NAF 742 C
Association à but non lucratif enregistrée à la
Sous-Préfecture de Grasse (06) N° 7803/88

Important notice
The present document can be downloaded from:
http://www.etsi.org/standards-search
The present document may be made available in electronic versions and/or in print. The content of any electronic and/or
print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any
existing or perceived difference in contents between such versions and/or in print, the prevailing version of an ETSI
deliverable is the one made publicly available in PDF format at www.etsi.org/deliver.
Users of the present document should be aware that the document may be subject to revision or change of status.
Information on the current status of this and other ETSI documents is available at
https://portal.etsi.org/TB/ETSIDeliverableStatus.aspx
If you find errors in the present document, please send your comment to one of the following services:
https://portal.etsi.org/People/CommiteeSupportStaff.aspx
Copyright Notification
No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying
and microfilm except as authorized by written permission of ETSI.
The content of the PDF version shall not be modified without the written authorization of ETSI.
The copyright and the foregoing restriction extend to reproduction in all media.

© ETSI 2020.
All rights reserved.

DECT™, PLUGTESTS™, UMTS™ and the ETSI logo are trademarks of ETSI registered for the benefit of its Members.

3GPP™ and LTE™ are trademarks of ETSI registered for the benefit of its Members and
of the 3GPP Organizational Partners.
oneM2M™ logo is a trademark of ETSI registered for the benefit of its Members and
of the oneM2M Partners.
®
GSM and the GSM logo are trademarks registered and owned by the GSM Association.
ETSI

---------------------- Page: 2 ----------------------
3 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)
Contents
Intellectual Property Rights . 5
Foreword . 5
Modal verbs terminology . 5
1 Scope . 6
2 References . 6
2.1 Normative references . 6
2.2 Informative references . 6
3 Definition of terms, symbols and abbreviations . 7
3.1 Terms . 7
3.2 Symbols . 7
3.3 Abbreviations . 7
4 Conventions for names, strings and URIs . 8
4.1 Case conventions . 8
4.2 Conventions for URI parts . 9
4.3 Conventions for names in data structures . 10
5 Patterns . 10
5.1 Pattern: Creating a resource (POST) . 10
5.1.1 Description . 10
5.1.2 Resource definition(s) and HTTP methods . 11
5.1.3 Resource representation(s) . 11
5.1.4 HTTP Headers . 11
5.1.5 Response codes and error handling . 11
5.2 Pattern: Creating a resource (PUT) . 11
5.2.1 Description . 11
5.2.2 Resource definition(s) and HTTP methods . 12
5.2.3 Resource representation(s) . 12
5.2.4 HTTP Headers . 12
5.2.5 Response codes and error handling . 12
5.3 Pattern: Reading a resource (GET) . 13
5.3.1 Description . 13
5.3.2 Resource definition(s) and HTTP methods . 13
5.3.3 Resource representation(s) . 13
5.3.4 HTTP Headers . 13
5.3.5 Response codes and error handling . 13
5.4 Pattern: Querying a resource with filtering/selection (GET) . 14
5.4.1 Description . 14
5.4.2 Resource definition(s) and HTTP methods . 14
5.4.3 Resource representation(s) . 14
5.4.4 HTTP Headers . 14
5.4.5 Response codes and error handling . 15
5.5 Pattern: Updating a resource (PATCH) . 15
5.5.1 Description . 15
5.5.2 Resource definition(s) and HTTP methods . 16
5.5.3 Resource representation(s) . 16
5.5.4 HTTP Headers . 17
5.5.5 Response codes and error handling . 17
5.6 Pattern: Updating a resource (PUT) . 17
5.6.1 Description . 17
5.6.2 Resource definition(s) and HTTP methods . 18
5.6.3 Resource representation(s) . 18
5.6.4 HTTP headers . 18
5.6.5 Response codes and error handling . 18
5.7 Pattern: Deleting a resource (DELETE) . 18
5.7.1 Description . 18
ETSI

---------------------- Page: 3 ----------------------
4 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)
5.7.2 Resource definition(s) and HTTP methods . 19
5.7.3 Resource representation(s) . 19
5.7.4 HTTP Headers . 19
5.7.5 Response codes and error handling . 19
5.8 Pattern: Task resources . 20
5.8.1 Description . 20
5.8.2 Resource definition(s) and HTTP methods . 20
5.8.3 Resource representation(s) . 20
5.8.4 HTTP Headers . 20
5.8.5 Response codes and error handling . 20
5.9 Pattern: Subscribe-Notify . 21
5.9.1 Description . 21
5.9.2 Resource definition(s) and HTTP methods . 23
5.9.3 Resource representation(s) . 23
5.9.4 HTTP Headers . 23
5.9.5 Response codes and error handling . 23
5.10 Pattern: Links . 24
5.10.1 Description . 24
5.10.2 Resource definition(s) and HTTP methods . 24
5.10.3 Resource representation(s) . 24
5.10.4 HTTP Headers . 25
5.10.5 Response codes and error handling . 25
5.11 Pattern: Asynchronous invocation with monitor . 25
5.11.1 Description . 25
5.11.2 Resource definition(s) and HTTP methods . 27
5.11.3 Resource representation(s) . 27
5.11.4 HTTP Headers . 28
5.11.5 Response codes and error handling . 28
5.12 Pattern: Asynchronous resource creation without monitor . 28
5.12.1 Description . 28
5.12.2 Resource definition(s) and HTTP methods . 28
5.12.3 Resource representation(s) . 29
5.12.4 HTTP Headers . 29
5.12.5 Response codes and error handling . 29
5.13 Pattern: Range requests (partial GET) . 29
5.13.1 Description . 29
5.13.2 Resource definition(s) and HTTP methods . 30
5.13.3 Resource representation(s) . 30
5.13.4 HTTP Headers . 30
5.13.5 Response codes and error handling . 30
6 Specifying API and GS versions in the OpenAPI files . 30
6.1 General . 30
6.2 Visibility of the API version identifier fields in the OpenAPI specifications . 30
6.3 Relation between the API version identifiers of an OpenAPI specifications and the base GS . 31
Annex A (normative): REST API template for interface clauses . 32
Annex B (informative): Conventions for message flows . 42
B.1 Tool support . 42
B.2 Graphical conventions . 42
Annex C (normative): Change requests classification . 46
C.1 Introduction . 46
C.2 The Field "Other comments" . 46
C.3 Examples of BWC Changes . 47
C.4 Examples of NBWC Changes . 48
Annex D (informative): Change History . 49
History . 50
ETSI

---------------------- Page: 4 ----------------------
5 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)
Intellectual Property Rights
Essential patents
IPRs essential or potentially essential to normative deliverables may have been declared to ETSI. The information
pertaining to these essential IPRs, if any, is publicly available for ETSI members and non-members, and can be found
in ETSI SR 000 314: "Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in
respect of ETSI standards", which is available from the ETSI Secretariat. Latest updates are available on the ETSI Web
server (https://ipr.etsi.org/).
Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee
can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web
server) which are, or may be, or may become, essential to the present document.
Trademarks
The present document may include trademarks and/or tradenames which are asserted and/or registered by their owners.
ETSI claims no ownership of these except for any which are indicated as being the property of ETSI, and conveys no
right to use or reproduce any trademark and/or tradename. Mention of those trademarks in the present document does
not constitute an endorsement by ETSI of products, services or organizations associated with those trademarks.
Foreword
This Group Specification (GS) has been produced by ETSI Industry Specification Group (ISG) Network Functions
Virtualisation (NFV).
Modal verbs terminology
In the present document "shall", "shall not", "should", "should not", "may", "need not", "will", "will not", "can" and
"cannot" are to be interpreted as described in clause 3.2 of the ETSI Drafting Rules (Verbal forms for the expression of
provisions).
"must" and "must not" are NOT allowed in ETSI deliverables except when used in direct citation.
ETSI

---------------------- Page: 5 ----------------------
6 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)
1 Scope
The present document defines patterns and conventions for RESTful NFV-MANO API specifications, gives
recommendations on API versioning and provides an API specification template.
The present document defines provisions to be followed by the ETSI NFV Industry Specification Group (ISG) when
creating RESTful NFV-MANO API specifications. The provisions do not apply to implementations.
2 References
2.1 Normative references
References are either specific (identified by date of publication and/or edition number or version number) or
non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the
referenced document (including any amendments) applies.
Referenced documents which are not found to be publicly available in the expected location might be found at
https://docbox.etsi.org/Reference.
NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee
their long term validity.
The following referenced documents are necessary for the application of the present document.
[1] ETSI GS NFV-SOL 013: "Network Functions Virtualisation (NFV) Release 2; Protocols and Data
Models; Specification of common aspects for RESTful NFV MANO APIs".
[2] IETF RFC 5789: "PATCH Method for HTTP".
NOTE: Available from https://tools.ietf.org/html/rfc5789.
[3] IETF RFC 7396: "JSON Merge Patch".
NOTE: Available from https://tools.ietf.org/html/rfc7396.
[4] IETF RFC 7232: "Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests".
NOTE: Available from https://tools.ietf.org/html/rfc7232.
[5] IETF RFC 3986: "Uniform Resource Identifier (URI): Generic Syntax".
NOTE: Available from https://tools.ietf.org/html/rfc3986.
[6] IETF RFC 7233: "Hypertext Transfer Protocol (HTTP/1.1): Range Requests".
NOTE: Available from https://tools.ietf.org/html/rfc7233.
2.2 Informative references
References are either specific (identified by date of publication and/or edition number or version number) or
non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the
referenced document (including any amendments) applies.
NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee
their long term validity.
The following referenced documents are not necessary for the application of the present document but they assist the
user with regard to a particular subject area.
[i.1] ETSI GS NFV 003: "Network Functions Virtualisation (NFV); Terminology for Main Concepts in
NFV".
ETSI

---------------------- Page: 6 ----------------------
7 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)
[i.2] PlantUML website.
NOTE: Available from http://plantuml.com/.
[i.3] PlantUML tool download.
NOTE: Available from https://sourceforge.net/projects/plantuml/files/plantuml.jar/download.
[i.4] PlantUML reference guide.
NOTE: Available from http://plantuml.com/PlantUML_Language_Reference_Guide.pdf.
[i.5] ETSI NFV repository of OpenAPI™ files.
NOTE 1: Available from https://forge.etsi.org/rep/nfv/.
NOTE 2: OpenAPI Specification and OpenAPI Initiative and their respective logos, are trademarks of the Linux
Foundation.
3 Definition of terms, symbols and abbreviations
3.1 Terms
For the purposes of the present document, the terms given in ETSI GS NFV 003 [i.1] apply.
3.2 Symbols
Void.
3.3 Abbreviations
For the purposes of the present document, the following abbreviations apply:
API Application Programming Interface
BWC BackWard Compatible
CR Change Request
CRUD Create, Read, Update, Delete
CTC Change Type Code
ETag Entity Tag
ETSI European Telecommunications Standards Institute
GS Group Specification
HATEOAS Hypermedia As The Engine Of Application State
HTTP HyperText Transfer Protocol
IETF Internet Engineering Task Force
IFA InterFaces and Architecture
ISG Industry Specification Group
JSON JavaScript Object Notation
MANO MANagement and Orchestration
NBWC Non-BackWard Compatible
NFV Network Functions Virtualisation
REST REpresentational State Transfer
RFC Request For Comments
SOL SOLutions
URI Uniform Resource Identifier
ETSI

---------------------- Page: 7 ----------------------
8 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)
4 Conventions for names, strings and URIs
4.1 Case conventions
The following case conventions for names and strings are available for potential use in the RESTful NFV-MANO API
specifications.
1) ALLUPPER
All letters of a string shall be uppercase letters. Digits may be used except at the first position. Other characters shall not
be used.
EXAMPLES 1 and 2:
a) MANAGEMENTINTERFACE
b) ETSINFVMANAGEMENT2
2) alllower
All letters of a string shall be lowercase letters. Digits may be used except at the first position. Other characters shall not
be used.
EXAMPLES 3 and 4:
a) managementinterface
b) etsinfvmanagement2
3) UPPER_WITH_UNDERSCORE
All letters of a string shall be uppercase letters. Digits may be used except at the first position. Word boundaries shall be
represented by the underscore "_" character. Other characters shall not be used.
EXAMPLES 5 and 6:
a) MANAGEMENT_INTERFACE
b) ETSI_NFV_MANAGEMENT_2
4) lower_with_underscore
All letters of a string shall be lowercase letters. Digits may be used except at the first position. Word boundaries shall be
represented by the underscore "_" character. Other characters shall not be used.
EXAMPLES 7 and 8:
a) management_interface
b) etsi_nfv_management_2
5) UpperCamel
The string shall be formed by concatenating words as follows: Each word shall start with an uppercase letter (this
implies that the string starts with an uppercase letter). All other letters shall be lowercase letters. Digits may be used
except at the first position. Other characters shall not be used. Words that are abbreviations shall follow the same
scheme (i.e. first letter uppercase, all other letters lowercase).
EXAMPLES 9 and 10:
a) ManagementInterface
b) EtsiNfvManagement2
ETSI

---------------------- Page: 8 ----------------------
9 ETSI GS NFV-SOL 015 V1.1.1 (2020-01)
6) lowerCamel
The string shall follow the provisions defined for UpperCamel with the following difference: The first letter shall be
lowercase (i.e. the first word starts with a lowercase letter).
EXAMPLES 11 and 12:
a) managementInterface
b) etsiNfvManagement2
4.2 Conventions for URI parts
Based on IETF RFC 3986 [5], the parts of the URI syntax that are relevant in the context of the RESTful NFV-MANO
API specifications are as follows:
• Path, consisting of segments, separated by "/" (e.g. segment1/segment2/segment3)
• Query, consisting of pairs of parameter name and value (e.g. ?org=nfv&group=sol)
1) Path segment naming
a) The path segments of a resource URI which represent a constant string shall use the "lower_with_underscore"
convention.
EXAMPLE 1: vnf_instances
b) If a resource represents a collection of entities, the last path segment of that resource's URI shall be a word in
plural.
EXAMPLE 2: …/prefix/API/1_0/users
c) For resources that are not task resources, the last path segment of the resource URI should be a (composite)
noun.
EXAMPLE 3: …/prefix/API/1_0/users
d) For resources that are task resources, the last path segment of the resource URI should be a verb, or start with a
verb.
EXAMPLES 4 and 5:
 …/vnf_instances/{vnfInstanceId}/scale
 …/vnf_instances/{vnfInstanceId}/scale_to_level
e) A variable name which represents a single path segment or a sequence of one or more path segments of a
resource URI shall use the "lowerCamel" convention and shall be surrounded by curly brackets. A variable in
the path part of a resource URI represents
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.