Cisco-IOS-XR-sysadmin-system

This module contains a collection of YANG definitions for Cisco IOS-XR SysAdmin configuration. This module defines the system u...

  • Version: 2019-04-15

    Cisco-IOS-XR-sysadmin-system@2019-04-15


    
      module Cisco-IOS-XR-sysadmin-system {
    
        yang-version 1;
    
        namespace
          "http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-system";
    
        prefix calvados_system;
    
        import tailf-common {
          prefix tailf;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG
         definitions for Cisco IOS-XR SysAdmin configuration.
         
         This module defines the system users authentication
         credentials and virtual IP that can be modified in
         runtime.
         
         Copyright (c) 2011-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2019-04-15" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2018-04-09" {
          description
            "Required changes for ConfD 6.4.5";
        }
    
        revision "2017-10-31" {
          description
            "Allow loading of errorLog config changes during OCU";
        }
    
        revision "2017-01-31" {
          description
            "Changed the namespace and module name";
        }
    
        revision "2011-06-20" {
          description "Initial revision";
        }
    
        semver:module-version "1.0.0";
    
        typedef file-name-type {
          type string;
        }
    
        typedef screen-length {
          type uint64 {
            range "0 .. 32000";
          }
        }
    
        typedef screen-width {
          type uint64 {
            range "0 .. 512";
          }
        }
    
        typedef ipv4-subnet-mask-ip {
          type inet:ip-address;
        }
    
        typedef ipv6-prefix {
          type uint8 {
            range "0..128";
          }
        }
    
        typedef calvados-ipv4-with-optional-subnet-bits {
          type string {
            pattern
              "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(/(([0-9])|([1-2][0-9])|(3[0-2])))?";
          }
          description
            "The ipv4-prefix type represents an IPv4 address prefix.
           The prefix length is given by the number following the
           slash character and must be less than or equal to 32.";
        }
    
        typedef calvados-ipv6-with-optional-prefix {
          type string {
            pattern
              "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))?";
            pattern
              "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)?";
          }
          description
            "The ipv6-prefix type represents an IPv6 address prefix.
           The prefix length is given by the number following the
           slash character and must be less than or equal 128.";
        }
    
        grouping config_sync_clear_inconsistency {
          container configuration {
            tailf:action "inconsistencies" {
              output {
                list "node" {
                  leaf "ip" {
                    type "string";
                  }
                  leaf "status" {
                    type "string";
                  }
                }
              }
            }
          }  // container configuration
        }  // grouping config_sync_clear_inconsistency
    
        container mgmt {
          container ipv4 {
            leaf address {
              type calvados-ipv4-with-optional-subnet-bits;
              must
                "true() = contains(../subnet-mask-ip, '.') or true() = contains(../address, '/')" {
                error-message
                  "you must provide subnet, it must be of the form
                 A.B.C.D/subnet-bits or A.B.C.D subnet-ip";
              }
            }
    
            leaf subnet-mask-ip {
              type ipv4-subnet-mask-ip;
              must
                "false() = contains(../address, '/')" {
                error-message
                  "you already provided subnet earlier it must be of the form
                 A.B.C.D/subnet-bits or A.B.C.D subnet-ip";
              }
            }
          }  // container ipv4
    
          container ipv6 {
            leaf address {
              type calvados-ipv6-with-optional-prefix;
              must
                "true() = (../prefix) or true() = contains(../address, '/')" {
                error-message
                  "you must provide prefix.It must be of the form
                 X:X::X/prefix or X:X::X prefix";
              }
            }
    
            leaf prefix {
              type ipv6-prefix;
              must
                "false() = contains(../address, '/')" {
                error-message
                  "you already provided prefix earlier it must be of
                 form X:X::X/prefix or X:X::X prefix";
              }
            }
          }  // container ipv6
        }  // container mgmt
      }  // module Cisco-IOS-XR-sysadmin-system
    

© 2023 YumaWorks, Inc. All rights reserved.