Loading yang-models/_3gpp-common-files.yang +62 −64 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -25,21 +25,24 @@ module _3gpp-common-files { 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."; choice fileRetrievalMethod { mandatory true; leaf fileLocation { type inet:uri ; mandatory true; config false; 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. and the file name. The allowed file transfer protocols are: - sftp Loading @@ -52,13 +55,23 @@ module _3gpp-common-files { "; } 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."; } Loading @@ -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"; Loading @@ -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."; Loading @@ -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) Loading @@ -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' Loading @@ -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."; Loading @@ -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' Loading @@ -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."; Loading Loading @@ -245,35 +259,19 @@ 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. Loading Loading
yang-models/_3gpp-common-files.yang +62 −64 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -25,21 +25,24 @@ module _3gpp-common-files { 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."; choice fileRetrievalMethod { mandatory true; leaf fileLocation { type inet:uri ; mandatory true; config false; 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. and the file name. The allowed file transfer protocols are: - sftp Loading @@ -52,13 +55,23 @@ module _3gpp-common-files { "; } 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."; } Loading @@ -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"; Loading @@ -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."; Loading @@ -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) Loading @@ -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' Loading @@ -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."; Loading @@ -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' Loading @@ -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."; Loading Loading @@ -245,35 +259,19 @@ 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. Loading