ETSI TS 129 501 V15.7.0 (2020-04)
5G; 5G System; Principles and Guidelines for Services Definition; Stage 3 (3GPP TS 29.501 version 15.7.0 Release 15)
5G; 5G System; Principles and Guidelines for Services Definition; Stage 3 (3GPP TS 29.501 version 15.7.0 Release 15)
RTS/TSGC-0429501vf70
General Information
Standards Content (Sample)
TECHNICAL SPECIFICATION
5G;
5G System;
Principles and Guidelines for Services Definition;
Stage 3
(3GPP TS 29.501 version 15.7.0 Release 15)
3GPP TS 29.501 version 15.7.0 Release 15 1 ETSI TS 129 501 V15.7.0 (2020-04)
Reference
RTS/TSGC-0429501vf70
Keywords
5G
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
3GPP TS 29.501 version 15.7.0 Release 15 2 ETSI TS 129 501 V15.7.0 (2020-04)
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.
Legal Notice
This Technical Specification (TS) has been produced by ETSI 3rd Generation Partnership Project (3GPP).
The present document may refer to technical specifications or reports using their 3GPP identities. These shall be
interpreted as being references to the corresponding ETSI deliverables.
The cross reference between 3GPP and ETSI identities can be found under http://webapp.etsi.org/key/queryform.asp.
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
3GPP TS 29.501 version 15.7.0 Release 15 3 ETSI TS 129 501 V15.7.0 (2020-04)
Contents
Intellectual Property Rights . 2
Legal Notice . 2
Modal verbs terminology . 2
Foreword . 6
1 Scope . 8
2 References . 8
3 Definitions and abbreviations . 9
3.1 Definitions . 9
3.2 Abbreviations . 9
4 Design Principles for 5GC SBI APIs . 9
4.1 General Principles . 9
4.2 API Design Style and REST Implementation Levels . 10
4.2.1 General . 10
4.2.2 API Design Principles for Query Operation . 10
4.2.3 API Design Principles for Delete Operation . 10
4.3 Version Control . 11
4.3.0 General . 11
4.3.1 Structure of API version numbers . 11
4.3.1.1 API version number format . 11
4.3.1.2 Rules for incrementing field values. 11
4.3.1.3 Visibility of the API version number fields . 14
4.3.1.4 Relation to the Technical Specification version number . 14
4.3.1.5 Discovery of the supported versions . 14
4.3.1.6 Withdrawing API versions . 15
4.4 URI Structure . 15
4.4.1 Resource URI structure . 15
4.4.2 Custom operations URI structure . 16
4.4.3 Callback URI structure . 16
4.5 Resource Representation and Content Format Negotiation . 16
4.5.1 Resource Representation . 16
4.5.2 Content Format Negotiation . 16
4.6 Use of HTTP Methods . 17
4.6.1 Use of Request/Response Communication . 17
4.6.1.1 CRUD . 17
4.6.1.1.1 Creating a Resource . 17
4.6.1.1.1.1 General . 17
4.6.1.1.1.2 Creating a Resource using POST . 17
4.6.1.1.1.3 Creating a Resource using PUT . 18
4.6.1.1.2 Reading a Resource . 19
4.6.1.1.2.1 Reading a Single Resource . 19
4.6.1.1.2.2 Querying a Set of Resources . 19
4.6.1.1.3 Updating a Resource . 20
4.6.1.1.3.1 Usage of HTTP PUT . 20
4.6.1.1.3.2 Usage of HTTP PATCH . 21
4.6.1.1.4 Deleting a Resource . 21
4.6.1.1.5 Query Parameters . 22
4.6.1.1.5.1 General . 22
4.6.1.1.5.2 Complex query expression . 22
4.6.1.2 Custom Operations . 23
4.6.1.3 Use of Asynchronous Operations . 24
4.6.1.4 Special provisions to support the seamless change of AMF as NF service producer. 24
4.6.2 Use of Subscribe/Notify Communication . 25
4.6.2.1 General . 25
4.6.2.2 Management of Subscriptions . 25
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 4 ETSI TS 129 501 V15.7.0 (2020-04)
4.6.2.2.1 General . 25
4.6.2.2.2 Creation of a Subscription . 25
4.6.2.2.3 Modify a subscription . 26
4.6.2.2.3.1 Modification of a Subscription Using HTTP PUT. 26
4.6.2.2.3.2 Modification of a Subscription Using HTTP PATCH . 27
4.6.2.2.4 Delete a subscription . 28
4.6.2.3 Notifications . 28
4.6.2.4 Special provisions to support the seamless change of AMF as NF service consumer . 29
4.7 HATEOAS . 29
4.7.1 General . 29
4.7.2 3GPP hypermedia format . 29
4.7.3 Advertising legitimate application state transitions . 30
4.7.4 Inferring link relation semantic . 30
4.7.5 Common Relation Types . 30
4.7.5.1 Introduction . 30
4.7.5.2 Registered relation types . 31
4.7.5.3 Extension relation types . 31
4.7.6 Negotiating the support of optional HATEOAS features . 31
4.8 Error Responses . 32
4.9 Transferring multiple resources to a NF Service Consumer . 33
4.9.1 General . 33
4.9.2 Direct Delivery . 33
4.9.3 Direct Delivery with Iterations . 33
4.9.4 Indirect Delivery . 34
4.9.5 Indirect Delivery with HTTP/2 Server Push . 34
4.9.6 Criteria for choosing the transfer method . 36
5 Documenting 5GC SBI APIs . 36
5.1 Naming Conventions . 36
5.1.1 Case Conventions . 36
5.1.2 API Naming Conventions . 38
5.1.3 Conventions for URI Parts . 38
5.1.3.1 Introduction . 38
5.1.3.2 URI Path Segment Naming Conventions . 38
5.1.3.3 URI Query Naming Conventions . 39
5.1.4 Conventions for Names in Data Structures . 39
5.2 API Definition . 39
5.2.1 Resource Structure . 39
5.2.2 Resources and HTTP Methods . 40
5.2.3 Representing RPC as Custom Operations on Resources . 43
5.2.4 Data Models . 44
5.2.4.1 General . 44
5.2.4.2 Structured data types . 45
5.2.4.3 Simple data types and enumerations . 46
5.2.4.4 Binary Data . 46
5.2.4.5 Data types describing alternative data types or combinations of data types . 46
5.2.5 Relation types . 48
5.3 OpenAPI specification files . 48
5.3.1 General . 48
5.3.2 Formatting of OpenAPI specification files . 48
5.3.3 Info. 48
5.3.4 externalDocs . 48
5.3.5 Servers . 49
5.3.6 References to other 3GPP-defined OpenAPI specification files . 49
5.3.7 Server-initiated communication . 50
5.3.8 Describing the body of HTTP PATCH requests . 50
5.3.8.1 General . 50
5.3.8.2 JSON Merge Patch . 51
5.3.8.3 JSON PATCH . 51
5.3.9 Structured data types . 51
5.3.10 Data types describing alternative data types or combinations of data types . 53
5.3.11 Error Responses . 55
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 5 ETSI TS 129 501 V15.7.0 (2020-04)
5.3.12 Enumerations . 56
5.3.13 Formatting of structured data types in query parameters . 56
5.3.14 Attribute Presence Conditions . 57
5.3.15 Usage of the "tags" field . 59
5.3.16 Security . 59
5.3.17 Reuse of Structured Data Types . 60
6 Requirements for secure API design . 61
6.1 Introduction . 61
6.2 General . 61
6.3 SBA-specific requirements . 61
Annex A (informative): TS Skeleton Template . 63
Annex B (informative): Backward Incompatible Changes . 64
Annex C (Informative): Resource modelling . 65
C.0 General . 65
C.1 Document . 65
C.2 Collection . 65
C.3 Store . 65
C.4 Custom operation . 66
Annex D (informative): Example of an OpenAPI specification file for Patch . 67
Annex E (informative): Change history . 70
History . 73
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 6 ETSI TS 129 501 V15.7.0 (2020-04)
Foreword
This Technical Specification has been produced by the 3rd Generation Partnership Project (3GPP).
The contents of the present document are subject to continuing work within the TSG and may change following formal
TSG approval. Should the TSG modify the contents of the present document, it will be re-released by the TSG with an
identifying change of release date and an increase in version number as follows:
Version x.y.z
where:
x the first digit:
1 presented to TSG for information;
2 presented to TSG for approval;
3 or greater indicates TSG approved document under change control.
y the second digit is incremented for all changes of substance, i.e. technical enhancements, corrections,
updates, etc.
z the third digit is incremented when editorial only changes have been incorporated in the document.
In the present document, modal verbs have the following meanings:
shall indicates a mandatory requirement to do something
shall not indicates an interdiction (prohibition) to do something
The constructions "shall" and "shall not" are confined to the context of normative provisions, and do not appear in
Technical Reports.
The constructions "must" and "must not" are not used as substitutes for "shall" and "shall not". Their use is avoided
insofar as possible, and they are not used in a normative context except in a direct citation from an external, referenced,
non-3GPP document, or so as to maintain continuity of style when extending or modifying the provisions of such a
referenced document.
should indicates a recommendation to do something
should not indicates a recommendation not to do something
may indicates permission to do something
need not indicates permission not to do something
The construction "may not" is ambiguous and is not used in normative elements. The unambiguous constructions
"might not" or "shall not" are used instead, depending upon the meaning intended.
can indicates that something is possible
cannot indicates that something is impossible
The constructions "can" and "cannot" are not substitutes for "may" and "need not".
will indicates that something is certain or expected to happen as a result of action taken by an agency
the behaviour of which is outside the scope of the present document
will not indicates that something is certain or expected not to happen as a result of action taken by an
agency the behaviour of which is outside the scope of the present document
might indicates a likelihood that something will happen as a result of action taken by some agency the
behaviour of which is outside the scope of the present document
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 7 ETSI TS 129 501 V15.7.0 (2020-04)
might not indicates a likelihood that something will not happen as a result of action taken by some agency
the behaviour of which is outside the scope of the present document
In addition:
is (or any other verb in the indicative mood) indicates a statement of fact
is not (or any other negative verb in the indicative mood) indicates a statement of fact
The constructions "is" and "is not" do not indicate requirements.
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 8 ETSI TS 129 501 V15.7.0 (2020-04)
1 Scope
The present document defines design principles and documentation guidelines for 5GC SBI APIs. These principles and
guidelines should be followed when drafting the 5G System SBI Stage 3 specifications.
2 References
The following documents contain provisions which, through reference in this text, constitute provisions of the present
document.
- References are either specific (identified by date of publication, edition number, version number, etc.) or
non-specific.
- For a specific reference, subsequent revisions do not apply.
- For a non-specific reference, the latest version applies. In the case of a reference to a 3GPP document (including
a GSM document), a non-specific reference implicitly refers to the latest version of that document in the same
Release as the present document.
[1] 3GPP TR 21.905: "Vocabulary for 3GPP Specifications".
[2] 3GPP TS 29.500: "5G System; Technical Realization of Service Based Architecture; Stage 3".
[3] IETF RFC 8259: "The JavaScript Object Notation (JSON) Data Interchange Format".
[4] OpenAPI: "OpenAPI 3.0.0 Specification", https://github.com/OAI/OpenAPI-
Specification/blob/master/versions/3.0.0.md.
[5] 3GPP TS 29.571: "5G System; Common Data Types for Service Based Interfaces Stage 3".
[6] IETF RFC 7231: "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content"
[7] IETF RFC 7396: "JSON Merge Patch".
[8] IETF RFC 6902: "JavaScript Object Notation (JSON) Patch".
[9] IETF RFC 3986: "Uniform Resource Identifier (URI): Generic Syntax"
[10] IETF RFC 5789: "PATCH Method for HTTP"
[11] IETF RFC 8288: "Web Linking".
[12] IANA: "HTTP Status Code Registry at IANA", http://www.iana.org/assignments/http-status-codes
[13] IETF RFC 7540: "Hypertext Transfer Protocol Version 2 (HTTP/2)"
[14] Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software
Architectures. Doctoral dissertation, University of California, Irvine, 2000.
[15] Erik Wilde, Cesare Pautasso, REST: From Research to Practice, Springer
[16] YAML 1.2: "YAML Ain't Markup Language", http://yaml.org.
[17] Semantic Versioning Specification: https://semver.org
[18] 3GPP TS 29.510: "5G System; Network Function Repository Services; Stage 3".
[19] IETF RFC 7807: "Problem Details for HTTP APIs".
[20] 3GPP TS 29.502: "5G System; Session Management Services; Stage 3".
[21] 3GPP TS 29.509: "Authentication Server Services; Stage 3".
[22] 3GPP TS 33.501: "Security architecture and procedures for 5G system".
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 9 ETSI TS 129 501 V15.7.0 (2020-04)
[23] IETF RFC 6749: "The OAuth 2.0 Authorization Framework".
[24] 3GPP TS 29.573: "5G System; Public Land Mobile Network (PLMN) Interconnection;Stage 3".
[25] 3GPP TR 21.900: "Technical Specification Group working methods".
3 Definitions and abbreviations
3.1 Definitions
For the purposes of the present document, the terms and definitions given in 3GPP TR 21.905 [1] and the following
apply. A term defined in the present document takes precedence over the definition of the same term, if any, in 3GPP
TR 21.905 [1].
3.2 Abbreviations
For the purposes of the present document, the abbreviations given in 3GPP TR 21.905 [1] and the following apply. An
abbreviation defined in the present document takes precedence over the definition of the same abbreviation, if any, in
3GPP TR 21.905 [1].
5GC 5G Core Network
CNF Conjunctive Normal Form
DNF Disjunctive Normal Form
HAL Hypertext Application Language
HATEOAS Hypermedia as the Engine of Application State
SBI Service Based Interface
YAML YAML Ain't Markup Language
4 Design Principles for 5GC SBI APIs
4.1 General Principles
Each 5GC SBI API specification should include the following information for each specified service:
- Purpose of the API;
- URIs of resources;
- Supported HTTP methods for a given resource;
- Supported representations (e.g. JSON, see IETF RFC 8259 [3]);
- Request body schema(s) (where applicable);
- Response body schema(s) (where applicable);
- Supported response status codes;
- Relation types supported if HATEOAS is implemented by the API;
- A reference in the resource description clause to one of the archetypes defined in Annex C if the resource design
matches one of them; and
- A list defining identifiers of optional features (see clause 6.6 of 3GPP TS 29.500 [2] for related procedures).
For each specified service a clause to a normative Annex should be provided containing the OpenAPI definitions
according to OpenAPI Specification [4] for the service. The specifications should state that content of this normative
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 10 ETSI TS 129 501 V15.7.0 (2020-04)
annex takes precedence when being discrepant to other parts of the specification with respect to the encoding of
information elements and methods.
NOTE: The semantics and procedures, as well as conditions, e.g. for the applicability and allowed combinations
of attributes or values, not expressed in the OpenAPI definitions but defined in other parts of the
specification also apply.
The TS Skeleton Template as provided in Annex A should be used as a starting point when drafting 5GC SBI API
specifications.
Common procedures, HTTP extensions and error handling applicable to several 5GC SBI API specifications should be
defined in 3GPP TS 29.500 [2] and should be referenced from individual 5GC SBI API specifications.
Common data types applicable to several 5GC SBI API specifications should be defined in 3GPP TS 29.571 [5] and
should be referenced from individual 5GC SBI API specifications.
4.2 API Design Style and REST Implementation Levels
4.2.1 General
5GC SBI API specifications should apply a protocol design framework as follows:
a) REST-style service operations should implement the Level 2 of the Richardson maturity model, with standard
HTTP methods, whenever it is a good match for the style of interaction to model, e.g. service operations that can
naturally map to one of the standard methods (CRUD operations), this should be the preferred modelling
attempt;
b) service operations may use custom API operations (RPC-style interaction), when it is seen a better fit for the
style of interaction to model, e.g. non-CRUD service operations;
c) it is possible to mix REST-style operations and RPC-style operations in the same API.
NOTE: Level 3 (HATEOAS) of the Richardson maturity model in the 5G Service-Based Architecture can be
implemented by an API but is optional. Hypermedia usage guidelines are provided in clause 4.7 of the
present specification.
4.2.2 API Design Principles for Query Operation
When designing a query operation API, i.e. the NF service consumer invokes the API aiming to retrieve certain
information from the NF service producer, the following principles should be applied:
a) if the query operation does not require any input parameter for the NF service producer, then the REST-style
service operation with standard HTTP GET method should be used (see clause 4.6.1.1.2);
b) if
- the query operation requires input parameter(s) for the NF service producer; and
- all the required input parameter(s) are used to identify a particular resource and/or control the content of the
result of the query operation;
then the REST-style service operation with standard HTTP GET method should be used (see clause 4.6.1.1.2);
c) standard HTTP GET method shall not be used for non-safe operations and non-idempotent operations.
4.2.3 API Design Principles for Delete Operation
When designing a delete operation API, i.e. the NF service consumer invokes the API aiming to delete certain resource
on the NF service producer, the following principles should be applied:
a) if the delete operation does not require any input parameter for the NF service producer, then the REST-style
service operation with standard HTTP DELETE method should be used (see clause 4.6.1.1.4);
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 11 ETSI TS 129 501 V15.7.0 (2020-04)
b) if
- the delete operation requires input parameter(s) for the NF service producer; and
- all the required input parameter(s) are used to identify a particular resource and/or control the content of the
result of the delete operation;
then the REST-style service operation with standard HTTP DELETE method should be used (see
clause 4.6.1.1.4);
c) standard HTTP DELETE method shall not be used for non-idempotent operations.
4.3 Version Control
4.3.0 General
The version control mechanism in the present clause allows the management of changes to an API and provides a
version number that is incremented whenever changes to the API are applied.
NOTE: The version number does not reflect the usage of optional features. A mechanism to negotiate the usage
of optional features is defined in clause 6.6 of 3GPP TS 29.500 [2].
4.3.1 Structure of API version numbers
4.3.1.1 API version number format
API version numbers shall consist of at least 3 fields, following a MAJOR.MINOR.PATCH pattern according to the
Semantic Versioning Specification [17] with exceptions for 3GPP Releases under development. A fourth DRAFT field
is added to denote an OpenAPI version under development i.e., prior to the freeze of the corresponding OpenAPI
description for a given 3GPP Release. Optionally, additional fields can be added after those fields based on operator
policy.
The 1st field (MAJOR), the 2nd field (MINOR), and the 3rd field (PATCH) shall contain unsigned integer numbers.
During the development of an API (i.e. before the freeze of a given 3GPP Release), the 4th field is called DRAFT, and
it shall have the format "alpha-n", where "n" is an unsigned integer number.
After the freeze of a 3GPP Release, the optional 4th field shall not be considered as DRAFT and it may contain any
string, with a format other than "alpha-n"; any additional optional field(s), when present, may contain any string.
The fields shall be separated by ".".
EXAMPLE: "1.0.0.alpha-1".
4.3.1.2 Rules for incrementing field values
The first version of a new API under development shall obtain the version number "1.0.0.alpha-1". At the first
publication of the 3GPP Technical Specification defining the API after the OpenAPI freeze of the first 3GPP Release
that contains the API, the version number of the API shall be set to "1.0.0".
When a new version of the 3GPP TS containing OpenAPI file(s) is published, the fields of the corresponding API
version number(s) shall be incremented according to the following rules:
1st Field (MAJOR):
- This numerical field shall be incremented when:
a)- there are one or more backward incompatible changes to the API after the OpenAPI freeze for a given
3GPP Release; and
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 12 ETSI TS 129 501 V15.7.0 (2020-04)
b) there are the first backward incompatible change(s) to the existing API with respect to the latest version
in the previous 3GPP Release while a 3GPP Release is under development (i.e. prior to the OpenAPI
freeze for a given 3GPP Release).
EXAMPLE 1: Assuming that 3GPP Rel-16 under development contains API version "1.1.0.alpha-2", and a
backward incompatible change with respect to the latest version in the previous 3GPP Release is
applied to that API before the OpenAPI freeze, the new Rel-16 API version is "2.0.0.alpha-1".
NOTE 1: Subsequent changes in a given 3GPP Release under development do not lead to increment of the 1st field
(MAJOR) and 2nd field (MINOR).
NOTE 2: Rules for determining backward incompatible changes are provided in Annex B.
NOTE 3: It is recommended to avoid backward incompatible change to the API after the OpenAPI freeze whenever
possible, especially after OpenAPI freeze of a succeeding Release. It is preferable to introduce such
changes only in the 3GPP Release under development.
- If a backward incompatible change needs to be applied to several 3GPP Releases the following applies:
a) If the 3GPP Releases contain different MAJOR versions of the same API, a new MAJOR API version
shall be assigned to each 3GPP Release in the order of those 3GPP Releases in such a manner that the
lowest of those 3GPP Releases shall obtain the first unassigned MAJOR version value.
EXAMPLE 2: Assuming that 3GPP Rel-15 contains API version "1.0.0", and Rel-16 contains API version
"2.0.0", and that the same backward incompatible change is applied to that API in both Releases,
the new Rel-15 API version is "3.0.0" and the new Rel-16 API version is "4.0.0".
b) If the 3GPP Releases contain the same MAJOR version but different MINOR versions of the same API, a
single new MAJOR API version value shall be assigned for all those 3GPP Releases, unless other
backward incompatible changes only applied to some of those Releases require the creation of separate
MAJOR versions.
NOTE 4: For each such Release a new MINOR version is assigned.
EXAMPLE 3: Assuming that 3GPP Rel-15 and Rel-16 contain API version "1.0.0", and Rel-17 contains API
version "1.2.0", and that the same backward incompatible change is applied to that API in all
3GPP Releases, the new 3GPP Rel-15 and Rel-16 API version is "2.0.0" and the new 3GPP Rel-17
API version is "2.2.0".
c) If the 3GPP Releases contain the same API versions, a single new API version shall be assigned for all
those 3GPP Releases, unless other changes only applied to some of those Releases require the creation of
separate versions.
EXAMPLE 4: Assuming that 3GPP Rel-15 and 3GPP Rel-16 contain API version "1.0.0", and that only the same
backward incompatible change is applied to that API in both 3GPP Releases, the new 3GPP Rel-
15 and Rel-16 API version is "2.0.0".
EXAMPLE 5: Assuming that 3GPP Rel-15 and Rel-16 contain API version "1.0.0", and that the same backward
incompatible change is applied to that API in both Releases and an additional backward
compatible change is applied in 3GPP Rel-16, the new 3GPP Rel-15 API version is "2.0.0", and
the 3GPP Rel-16 API version is "2.1.0".
EXAMPLE 6: Assuming that 3GPP Rel-15 and Rel-16 contain API version "1.0.0", and that the same backward
incompatible change is applied to that API in both Releases and an additional backward
incompatible change is applied in 3GPP Rel-16, the new 3GPP Rel-15 API version is "2.0.0", and
the 3GPP Rel-16 API version is "3.0.0".
2nd Field (MINOR):
- This numerical field shall be incremented when:
a) there are the first one or more backward compatible changes not corresponding to changes to earlier
3GPP Releases (i.e. changes introduced by 3GPP CR with other categories than "mirror") to the same
API in a given 3GPP Release without any prior backward incompatible changes in that Release. If the
same 1st field (MAJOR) and the 2nd field (MINOR) are assigned to n previous 3GPP Releases, a
ETSI
3GPP TS 29.501 version 15.7.0 Release 15 13 ETSI TS 129 501 V15.7.0 (2020-04)
MINOR version number shall be reserved for each intermediate 3GPP Release for possible subsequent
changes in that Release and the MINOR version number shall be incremented by n; and
EXAMPLE 7: Assuming that 3GPP Rel-15 and Rel-16 contain API version "1.0.0" (because there were no
changes to the API in Rel-16), and in Rel-17 the first backward compatible new feature is added
before the OpenAPI freeze, the API version "1.2.0.alpha-1" is assigned to Rel-17.
b) there are one or more subsequent backward compatible additions of features not corresponding to
changes to previous 3GPP Releases to the API in a frozen 3GPP Release before a higher MINOR number
has been allocated for the same MAJOR version (for a subsequent Release).
- This field shall be reset to "0" if the 1st field (MAJOR) is changed, unless a backward incompatible change
needs to be applied to several 3GPP Releases that already contain the same MAJOR but different MINOR API
versions. In that case a single new major API version is assigned, and for each such 3GPP Release with an own
MINOR version, a new MINOR versio
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...