Commit 6708d4c3 authored by lengyelb's avatar lengyelb
Browse files

S5-221330_28.622_Rel-17_Input_to_DraftCR_Add_file_download_control_NRM_fragment

parent be931a5c
Loading
Loading
Loading
Loading
+95 −0
Original line number Diff line number Diff line
module _3gpp-common-filemanagement {
  yang-version 1.1;
  namespace "urn:3gpp:sa5:_3gpp-common-filemanagement";
  prefix "filemgmt3gpp";

  import _3gpp-common-subnetwork { prefix subnet3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-common-yang-types { prefix yang3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
   
  organization "3GPP SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "Defines the YANG mapping of the FileDownloadJob Information Object
    Class (IOC) that is part of the Generic Network Resource Model (NRM).";
  reference "3GPP TS 28.623 Generic Network Resource Model (NRM)";

  revision 2022-02-10 { reference "Initial revision, S5-221757"; }

  grouping FileDownloadProcessMonitor {
    description "Provides specialisations of the ProcessMonitor datatype.";
    uses yang3gpp:ProcessMonitor {
          refine resultStateInfo {
            description "If status is FAILED resultStateInfo will be one of
                the following or empty.";
                must '../status != "FAILED"
                or . = "UNKNOWN"
                or . = "NO_STORAGE"
                or . = "LOW_MEMORY"
                or . = "NO_CONNECTION_TO_REMOTE_SERVER"
                or . = "FILE_NOT_AVAILABLE"
                or . = "DNS_CANNOT_BE_RESOLVED"
                or . = "TIMER_EXPIRED"
                or . = "OTHER"
                or . = "NULL" ';
          }
           refine status {
             description "Status must not be 'PARTIALLY_FAILED'.";
             must '. != "PARTIALLY_FAILED" ';
          }
    }
  }
  
  grouping FileDownloadJobGrp {
    description "Represents the FileDownloadJob IOC.";
    reference "3GPP TS 28.622";
    uses top3gpp:Top_Grp;
    
    leaf fileLocation {
      description "Provides the location of a file.
        allowedValues:  File URI (See RFC 8089)";
      mandatory true;
      type string;
    }
    
    leaf notificationRecipientAddress {
      description "Address of the notification recipient.";
      type string;
    }

    leaf cancelJob {
      description "Setting this attribute to TRUE cancels the file download job.
         As specified in the definition of ProcessMonitor, cancellation is possible in
         the NOT_STARTED and RUNNING state. Setting the attribute to FALSE has no 
         observable result.";
      type boolean;
      mandatory true;
    }

    list jobMonitor {
      key "id";
      description "Provides monitoring for the file download job.";
      uses FileDownloadProcessMonitor;
    }
  }

  grouping FileDownloadJobSubtree {
    description "Helps augmenting FileDownloadJob into multiple places.";
    list FileDownloadJob {
      description "Specifies the FileDownloadJob IOC, see 3GPP TS 28.622.";
      key "id";
      uses top3gpp:Top_Grp;
      container attributes {
        uses FileDownloadJobGrp;
      }
    }  
  }
  
  augment "/subnet3gpp:SubNetwork" {
    uses FileDownloadJobSubtree;
  }

  augment "/me3gpp:ManagedElement" {
    uses FileDownloadJobSubtree;
  }
}