diff --git a/yang-models/_3gpp-common-files.yang b/yang-models/_3gpp-common-files.yang index 3a4ba43dcbeafffc4253e8f33491e29993c73059..a9c934a71b0270bbc36c2bb86e2a7630b01ee20b 100644 --- a/yang-models/_3gpp-common-files.yang +++ b/yang-models/_3gpp-common-files.yang @@ -13,7 +13,7 @@ module _3gpp-common-files { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of File retrieval NRM fragment including the IOCs File and Files. - Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) @@ -24,41 +24,54 @@ module _3gpp-common-files { Generic Network Resource Model (NRM) Integration Reference Point (IRP); Information Service (IS)"; - - revision 2024-05-12 { reference CR-0362 ; } - revision 2023-09-18 { reference CR-0271 ; } + + // the file is common for r17,18,19 + revision 2025-07-01 { reference "CR-0557 CR-0558 CR-0559"; } + revision 2024-05-25 { reference "CR-0361 CR-0362"; } + revision 2023-09-18 { reference "CR-0270 CR-0271"; } revision 2022-09-28 { reference CR-0191; } grouping FileGrp { description "Represents the File IOC."; - leaf fileLocation { - type inet:uri ; + choice fileRetrievalMethod { mandatory true; - yext3gpp:notNotifyable ; - yext3gpp:inVariant ; - description "Location of the file incl. the file transfer protocol, - and the file name for the case the file content cannot be retrieved - by reading the 'fileContent' attribute. - - The allowed file transfer protocols are: - - sftp - - ftpes - - https - - Examples: - 'sftp://companyA.com/datastore/fileName.xml', - 'https://companyA.com/ManagedElement=1/Files=1/File=1' - "; + leaf fileLocation { + type inet:uri ; + config false; + yext3gpp:notNotifyable ; + yext3gpp:inVariant ; + description "Location of the file incl. the file transfer protocol, + and the file name. + + The allowed file transfer protocols are: + - sftp + - ftpes + - https + + Examples: + 'sftp://companyA.com/datastore/fileName.xml', + 'https://companyA.com/ManagedElement=1/Files=1/File=1' + "; + } + + leaf fileContent { + type binary ; + config false; + yext3gpp:notNotifyable ; + yext3gpp:inVariant ; + description "File content as a Base64 encoded string according to + RFC 4648 section 4."; + } } leaf fileCompression { type string ; - mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Name of the algorithm used for compressing the file. - An empty or absent 'fileCompression' parameter indicates the file is + An absent 'fileCompression' parameter indicates the file is not compressed. The MnS producer selects the compression algorithm. It is encouraged to use popular algorithms such as GZIP."; } @@ -67,6 +80,7 @@ module _3gpp-common-files { type uint64 ; mandatory true; units bytes; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Size of the file"; @@ -82,6 +96,7 @@ module _3gpp-common-files { enum PROPRIETARY; } mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Type of the management data stored in the file."; @@ -89,16 +104,18 @@ module _3gpp-common-files { leaf fileFormat { type string ; - mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; - description "Identifier of the XML or ASN.1 schema (incl. its version) - used to produce the file content."; + description "Identifier of the schema (incl. its version) + used to produce the file content. If there is no schema for the file + or it is not available, the fileFormat parameter is absent."; } leaf fileReadyTime { type yang:date-and-time ; mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Date and time, when the file was closed (the last time) @@ -108,22 +125,15 @@ module _3gpp-common-files { leaf fileExpirationTime { type yang:date-and-time ; - mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Date and time after which the file may be deleted."; } - - leaf fileContent { - type string ; // String is very restrictive - mandatory true; - yext3gpp:notNotifyable ; - yext3gpp:inVariant ; - description "File content"; - } leaf-list jobRef { type types3gpp:DistinguishedName ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Object instance of the 'PerfMetricJob' or 'TraceJob' @@ -132,6 +142,7 @@ module _3gpp-common-files { leaf jobId { type string ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Identifier of a PerfMetricJob job or a TraceJob."; @@ -142,12 +153,14 @@ module _3gpp-common-files { description "Represents the Files IOC."; leaf numberOfFiles { type uint64 ; + config false; yext3gpp:notNotifyable ; description "Number of files in a file collection."; } leaf-list jobRef { type types3gpp:DistinguishedName ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Object instance of the 'PerfMetricJob' or 'TraceJob' @@ -156,6 +169,7 @@ module _3gpp-common-files { leaf jobId { type string ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Identifier of a PerfMetricJob job or a TraceJob."; @@ -210,7 +224,7 @@ module _3gpp-common-files { The attribute '_linkToFiles' allows a MnS consumer to create simple and targeted subscriptions for 'notifyFileReady'and 'notifyFilePreparationError', or - 'notifyMOICreation', 'notifyMOIChanges' and 'notifyFilePreparationError' + 'notifyMOICreation', 'notifyMOIChanges' and 'notifyFilePreparationError' related to 'File' instances created or deleted under the 'Files' instance of a specific job. The subscription needs to scope simply objects one level below the 'Files' object. @@ -244,36 +258,20 @@ module _3gpp-common-files { The attributes 'fileSize', 'fileCompression', 'fileDataType' and 'fileFormat' describe the file properties. - - The 'fileLocation' attribute indicates the address where the file can - be retrieved. The address includes the file transfer protocol (schema). - Allowed file transfer protocols are 'sftp', 'ftpes' and 'https'. - - The value of 'fileLocation' can be identical to or different from the - address of the 'File' instance. The attribute 'fileContent' is - provided for retrieving the actual file content. When identifying in - the Read request a 'File' instance and specifying only the - 'fileContent' attribute be returned, then only the file content shall - be returned in the response. Note, as usual, multiple attributes can - be specified to be returned, so that the file content together with - some or all file meta data attributes can be returned in response to - a single request. - - In case the 'fileLocation' specifies a location different than the - 'File' object location, then the attribute 'fileContent' cannot be - used for retrieving the file content. For example, the 'File' object - location may be given by - 'https://companyA.com/ManagedElement=1/Files=1/File=1' - and the value of the 'fileLocation' attribute by - 'sftp://companyA.com/datastore/fileName.xml' - - In this case the file needs to be retrieved using 'sftp' from - 'sftp://companyA.com/datastore/fileName.xml'. Attempts to read the - 'fileContent' attribute shall return an error. + + The MnS producer makes the file available by one of the following means: + - For retrieval via a file transfer protocol. The fileLocation attribute + indicates the address from where the file can be retrieved. The + address includes the file transfer protocol (schema). Allowed file + transfer protocols are 'sftp', 'ftpes' and 'https'. + - For retrieval of the file contents via a CM read operation. The + attribute fileContent is provided for retrieving the actual file + content. In this case, the name of the file is equal to the identity + of the File instance. When the file retrieval NRM fragment is used together with a data - collection job ('PerfMetricJob' or 'TraceJob') the following - provisions shall apply: + collection job (PerfMetricJob or TraceJob) the following provisions + shall apply: - The attributes 'jobRef' and 'jobId' shall be supported and present. They shall identify the job that the file is related to.