org-openroadm-file-transfer

YANG definitions for file management related rpcs. Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, All...

  • Version: 2024-05-31

    org-openroadm-file-transfer@2024-05-31


    
      module org-openroadm-file-transfer {
    
        yang-version 1;
    
        namespace
          "http://org/openroadm/file-transfer";
    
        prefix org-openroadm-file-txr;
    
        import ietf-inet-types {
          prefix inet;
          revision-date "2013-07-15";
        }
        import org-openroadm-common-types {
          prefix org-openroadm-common-types;
          revision-date "2024-05-31";
        }
        import ietf-yang-types {
          prefix ietf-yang-types;
          revision-date "2013-07-15";
        }
    
        organization "Open ROADM MSA";
    
        contact "OpenROADM.org";
    
        description
          "YANG definitions for file management related rpcs.
    
         Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
         All other rights reserved.
    
         Redistribution and use in source and binary forms, with or without modification,
         are permitted provided that the following conditions are met:
    
         * Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
         * Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation and/or
           other materials provided with the distribution.
         * Neither the Members of the Open ROADM MSA Agreement nor the names of its
           contributors may be used to endorse or promote products derived from this software
           without specific prior written permission.
    
         THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
         AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
         IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
         INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
         NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
         OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
         WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
         ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
         POSSIBILITY OF SUCH DAMAGE.";
    
        revision "2024-05-31" {
          description "Version 15.1";
        }
    
        revision "2024-03-29" {
          description "Version 15.0";
        }
    
        revision "2023-12-08" {
          description "Version 14.1";
        }
    
        revision "2023-09-29" {
          description "Version 14.0";
        }
    
        revision "2023-05-26" {
          description "Version 13.1";
        }
    
        revision "2023-03-31" {
          description "Version 13.0";
        }
    
        revision "2022-12-09" {
          description "Version 12.1";
        }
    
        revision "2022-09-30" {
          description "Version 12.0";
        }
    
        revision "2022-05-27" {
          description "Version 11.1";
        }
    
        revision "2022-03-25" {
          description "Version 11.0";
        }
    
        revision "2021-12-10" {
          description "Version 10.1";
        }
    
        revision "2021-09-24" {
          description "Version 10.0";
        }
    
        revision "2021-05-28" {
          description "Version 9.1";
        }
    
        revision "2021-03-26" {
          description "Version 9.0";
        }
    
        revision "2020-12-11" {
          description "Version 8.1";
        }
    
        revision "2020-09-25" {
          description "Version 8.0";
        }
    
        revision "2020-05-29" {
          description "Version 7.1.0";
        }
    
        revision "2020-03-27" {
          description "Version 7.0.0";
        }
    
        revision "2019-11-29" {
          description "Version 6.1.0";
        }
    
        revision "2019-09-27" {
          description "Version 6.0.0";
        }
    
        revision "2019-05-31" {
          description "Version 5.1.0";
        }
    
        revision "2019-03-29" {
          description "Version 5.0.0";
        }
    
        revision "2018-11-30" {
          description "Version 4.1.0";
        }
    
        revision "2018-09-28" {
          description "Version 4.0.0";
        }
    
        revision "2018-03-30" {
          description "Version 3.0.0";
        }
    
        revision "2017-12-15" {
          description "Version 2.2";
        }
    
        revision "2017-09-29" {
          description "Version 2.1";
        }
    
        revision "2017-07-28" {
          description
            "Version 2.0.1 - added revision-date to imports";
        }
    
        revision "2017-06-26" {
          description "Version 2.0";
        }
    
        revision "2016-10-14" {
          description "Version 1.2";
        }
    
    
        rpc transfer {
          description
            "File transfer using FTP/SFTP";
          input {
            leaf action {
              type enumeration {
                enum "upload" {
                  value 0;
                  description
                    "Specify the upload action. The NE (SFTP/FTP client) sends
                   the file identified by the local-file-path
                   to the remote-file-path.";
                }
                enum "download" {
                  value 1;
                  description
                    "Specify the download action. The NE (SFTP/FTP client) retrieves
                   the file identified by the remote-file-path
                   to the local-file-path.";
                }
              }
              mandatory true;
              description
                "Type of action - download/upload.";
            }
    
            leaf local-file-path {
              type string;
              mandatory true;
              description
                "Local file path.
               Ex: /var/shared/example.txt";
            }
    
            leaf remote-file-path {
              type inet:uri;
              mandatory true;
              description
                "Remote file path.
               A URI for the remote file path.
    
               Format:sftp://user[:password]@host[:port]/path.
               Ex: sftp://test:verify@[2001:db8:0:1::10]:22/home/user/sample";
            }
          }
    
          output {
            leaf status {
              type rpc-status;
              mandatory true;
              description "Successful or Failed";
            }
    
            leaf status-message {
              type string;
              description
                "Gives a more detailed status";
            }
          }
        }  // rpc transfer
    
        rpc show-file {
          description
            "Show one or more files in the specified directory.";
          input {
            leaf filename {
              type string {
                length "1..255";
              }
              default "*";
              description
                "Specify file(s) to be listed (* is allowed as wild-card). ";
            }
          }
    
          output {
            leaf status {
              type org-openroadm-common-types:rpc-status;
              mandatory true;
              description "RPC status";
            }
    
            leaf status-message {
              type string;
              description "status message";
            }
    
            leaf free-disk-space {
              type uint64;
              units "bytes";
              description
                "The free disk space of the directory associated with the input filename.
               The filename may target a file, a set of files, or a directory.
               If a filename is not specified, then the free disk space is associated with
               the FTP/SFTP directory.";
            }
    
            list file {
              key "filename";
              description "output file list";
              leaf filename {
                type string;
                description "output filename";
              }
    
              leaf file-size {
                type uint64;
                units "bytes";
                mandatory true;
                description "output file size";
              }
    
              leaf modified-date {
                type ietf-yang-types:date-and-time;
                mandatory true;
                description
                  "output modified date";
              }
            }  // list file
          }
        }  // rpc show-file
    
        rpc delete-file {
          description
            "Delete one or more files in the specified directory.";
          input {
            leaf filename {
              type string {
                length "1..255";
              }
              mandatory true;
              description
                "Specify file to be deleted.  Implementations may optionally support * as a wildcard.";
            }
          }
    
          output {
            leaf status {
              type rpc-status;
              mandatory true;
              description "Successful or Failed";
            }
    
            leaf status-message {
              type string;
              description
                "Gives a more detailed status";
            }
          }
        }  // rpc delete-file
    
        notification transfer-notification {
          description
            "notification for transfer operation events.";
          leaf local-file-path {
            type string;
            description
              "Local file path used in transfer RPC.";
          }
    
          leaf status {
            type extended-rpc-status;
            mandatory true;
            description
              "Successful, Failed or In-progress";
          }
    
          leaf status-message {
            type string;
            description
              "Gives a more detailed status.";
          }
    
          container progress {
            when
              "current()/../status = 'In-progress'";
            description
              "progress status when response is in-progress";
            leaf bytes-transferred {
              type uint64;
              description "bytes transferred.";
            }
    
            leaf percentage-complete {
              type uint8;
              description
                "percentage completed.";
            }
          }  // container progress
        }  // notification transfer-notification
      }  // module org-openroadm-file-transfer
    

© 2023 YumaWorks, Inc. All rights reserved.