junos-es-rpc-request

Junos RPC YANG module for request command(s)

  • Version: 2019-01-01

    junos-es-rpc-request@2019-01-01


    
      module junos-es-rpc-request {
    
        yang-version 1;
    
        namespace
          "http://yang.juniper.net/junos-es/rpc/request";
    
        prefix request;
    
        import junos-common-types {
          prefix jt;
          revision-date "2019-01-01";
        }
    
        organization "Juniper Networks, Inc.";
    
        contact "yang-support@juniper.net";
    
        description
          "Junos RPC YANG module for request command(s)";
    
        revision "2019-01-01" {
          description "Junos: 21.3R1.9";
        }
    
    
        rpc request-commit-server-cleanup {
          description
            "Commit queue clean up operations";
          input {
            choice queue-selector {
              leaf id {
                type union {
                  type uint32;
                  type string {
                    pattern "<.*>|$.*";
                  }
                }
                description "Clean up queue id";
              }
              leaf job-status {
                type enumeration {
                  enum "error" {
                    value 0;
                    description
                      "Remove jobs that had errors";
                  }
                  enum "pending" {
                    value 1;
                    description
                      "Remove jobs that are pending";
                  }
                  enum "success" {
                    value 2;
                    description
                      "Remove jobs that succeeded";
                  }
                }
                description
                  "Clean up all entries with specified status";
              }
            }  // choice queue-selector
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml commit-server-delete-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-commit-server-cleanup
    
        rpc request-commit-server-pause {
          description "Pause the commit server";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml commit-server-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-commit-server-pause
    
        rpc request-commit-server-start {
          description "Start the commit server";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml commit-server-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-commit-server-start
    
        rpc request-delta-exporter-initialize {
          description
            "Initialize delta exporter database";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-delta-exporter-initialize
    
        rpc request-yang-add {
          description
            "Add YANG module(s) and action/translation script(s)";
          input {
            leaf package {
              type string;
              mandatory true;
              description
                "Unique ID for future op - delete/update";
            }
    
            leaf-list module {
              type jt:filename;
              ordered-by user;
              description "YANG module(s) path";
            }
    
            leaf-list action-script {
              type jt:filename;
              ordered-by user;
              description "Action script path";
            }
    
            leaf-list translation-script {
              type jt:filename;
              ordered-by user;
              description
                "Translation script path";
            }
    
            leaf-list deviation-module {
              type jt:filename;
              ordered-by user;
              description
                "Deviation module path";
            }
    
            leaf proxy-xml {
              type empty;
              description
                "XML proxy YANG module(s)";
            }
    
            leaf snmp {
              type empty;
              description
                "Add custom MIB in YANG format";
            }
    
            choice re-choice {
              leaf re0 {
                type empty;
                description
                  "Add/Delete YANG module(s) on RE0";
              }
              leaf re1 {
                type empty;
                description
                  "Add/Delete YANG module(s) on RE1";
              }
              leaf other-routing-engine {
                type empty;
                description
                  "Add/Delete YANG module(s) on other RE";
              }
            }  // choice re-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-yang-add
    
        rpc request-yang-delete {
          description "Remove YANG package";
          input {
            leaf package {
              type string;
              mandatory true;
              description "ID to be removed";
            }
    
            choice re-choice {
              leaf re0 {
                type empty;
                description
                  "Add/Delete YANG module(s) on RE0";
              }
              leaf re1 {
                type empty;
                description
                  "Add/Delete YANG module(s) on RE1";
              }
              leaf other-routing-engine {
                type empty;
                description
                  "Add/Delete YANG module(s) on other RE";
              }
            }  // choice re-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-yang-delete
    
        rpc request-yang-enable {
          description
            "Enable YANG package to JUNOS translation";
          input {
            leaf package {
              type string;
              mandatory true;
              description "ID";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-yang-enable
    
        rpc request-yang-disable {
          description
            "Disable YANG package to JUNOS translation";
          input {
            leaf package {
              type string;
              mandatory true;
              description "ID";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-yang-disable
    
        rpc request-yang-validate {
          description
            "Validate YANG module(s) and action/translation script(s)";
          input {
            leaf-list module {
              type jt:filename;
              ordered-by user;
              description
                "Name of the YANG module to be validated";
            }
    
            leaf-list translation-script {
              type jt:filename;
              ordered-by user;
              description
                "Name of the translation-script to be validated";
            }
    
            leaf-list action-script {
              type jt:filename;
              ordered-by user;
              description
                "Name of the action-script to be validated";
            }
    
            leaf proxy-xml {
              type empty;
              description
                "XML proxy YANG module";
            }
    
            leaf snmp {
              type empty;
              description
                "Validate custom MIB in YANG format";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-yang-validate
    
        rpc request-yang-update {
          description
            "Update YANG module(s) and action/translation script(s)";
          input {
            leaf package {
              type string;
              mandatory true;
              description "ID";
            }
    
            leaf-list module {
              type jt:filename;
              ordered-by user;
              description "YANG module(s) path";
            }
    
            leaf-list translation-script {
              type jt:filename;
              ordered-by user;
              description
                "Translation script path";
            }
    
            leaf-list deviation-module {
              type jt:filename;
              ordered-by user;
              description
                "Deviation module path";
            }
    
            leaf-list action-script {
              type jt:filename;
              ordered-by user;
              description "Action script path";
            }
    
            leaf proxy-xml {
              type empty;
              description
                "XML proxy YANG module(s)";
            }
    
            leaf snmp {
              type empty;
              description
                "Update custom MIBs in YANG format";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-yang-update
    
        rpc request-logout-user {
          description
            "Forcibly end user's CLI login session";
          input {
            uses command-forwarding;
    
            leaf pid {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description
                "Management process ID for user";
            }
    
            leaf all {
              type empty;
              description
                "Logout all sessions owned by user";
            }
    
            leaf user {
              type string;
              description "Name of user";
            }
    
            leaf terminal {
              type string;
              description
                "Terminal user is logged in to";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml logout-user;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-logout-user
    
        rpc reload-event-scripts {
          description
            "Reload all existing event-scripts";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml event-scripts-reload;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc reload-event-scripts
    
        rpc request-scripts-package-add {
          description
            "Add or upgrade jais package";
          input {
            leaf no-copy {
              type empty;
              description
                "Don't save copy of jais package file";
            }
    
            leaf unlink {
              type empty;
              description
                "Remove the package after successful installation";
            }
    
            leaf package-name {
              type jt:filename;
              mandatory true;
              description
                "URL or pathname of package";
            }
    
            choice chassis {
              leaf scc {
                type empty;
                description
                  "Install package on SCC";
              }
              leaf lcc {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Install package on an LCC";
              }
              leaf sfc {
                type empty;
                description
                  "Install package on SFC";
              }
              leaf member {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Install package on member";
              }
              leaf dont-forward {
                type empty;
              }
              leaf master {
                type empty;
                description
                  "Run command on master";
              }
              leaf backup {
                type empty;
                description
                  "Run command on backup";
              }
            }  // choice chassis
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-scripts-package-add
    
        rpc request-scripts-package-delete {
          description "Remove jais package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-scripts-package-delete
    
        rpc request-scripts-package-rollback {
          description
            "Attempt to roll back to last jais package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-scripts-package-rollback
    
        rpc request-script-refresh-from {
          description
            "Refresh script from a given base URL";
          input {
            leaf type {
              type enumeration {
                enum "commit" {
                  value 0;
                  description
                    "Refresh commit script from a given base URL";
                }
                enum "op" {
                  value 1;
                  description
                    "Refresh op script from a given base URL";
                }
                enum "event" {
                  value 2;
                  description
                    "Refresh event script from a given base URL";
                }
                enum "snmp" {
                  value 3;
                  description
                    "Refresh snmp script from a given base URL";
                }
                enum "extension-service" {
                  value 4;
                  description
                    "Refresh extension-services app from a given base URL";
                }
              }
              mandatory true;
            }
    
            leaf file {
              type string;
              description
                "Local script file name";
            }
    
            leaf url {
              type string;
              description
                "URL from where the content will be retrieved";
            }
    
            leaf routing-instance {
              type string;
              description
                "Specify the routing-instance name";
            }
    
            leaf cert-file {
              type string;
              description
                "Specify the certificate file name";
            }
    
            leaf sync {
              type empty;
              description
                "Refresh script and synchronize with other RE";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-script-refresh-from
    
        rpc request-scripts-synchronize {
          description
            "Push the scripts to other RE";
          input {
            leaf type {
              type enumeration {
                enum "commit" {
                  value 0;
                  description
                    "Push commit script to other RE";
                }
                enum "op" {
                  value 1;
                  description
                    "Push op script to other RE";
                }
                enum "event" {
                  value 2;
                  description
                    "Push event script to other RE";
                }
                enum "snmp" {
                  value 3;
                  description
                    "Push snmp script to other RE";
                }
                enum "jet" {
                  value 4;
                  description
                    "Push jet app to other RE";
                }
                enum "lib" {
                  value 5;
                  description
                    "Push lib script to other RE";
                }
                enum "all" {
                  value 6;
                  description
                    "Push all the scripts to other RE";
                }
              }
              mandatory true;
            }
    
            leaf file {
              type string;
              description
                "Local script file name";
            }
    
            leaf newer-than {
              type jt:time;
              description
                "Push script to other RE if newer than this time (YYYY-MM-DD.HH:MM:SS)";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-scripts-synchronize
    
        rpc resize-configuraion-database {
          description
            "Resize the configuration database";
          input {
            uses command-forwarding;
    
            leaf force {
              type empty;
              description
                "Resize the configuration database even if modified";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc resize-configuraion-database
    
        rpc request-save-rescue-configuration {
          description
            "Save committed configuration as rescue configuration";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml rescue-management-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-save-rescue-configuration
    
        rpc request-delete-rescue-configuration {
          description
            "Delete the rescue configuration";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml rescue-management-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-delete-rescue-configuration
    
        rpc request-package-add {
          description
            "Add extension or upgrade package";
          input {
            leaf force {
              type empty;
              description
                "Force addition of package (ignore warnings)";
            }
    
            leaf reboot {
              type empty;
              description
                "Reboot system after adding package";
            }
    
            leaf force-host {
              type empty;
              description
                "Force addition of host os package (ignore version check)";
            }
    
            leaf on-primary {
              type empty;
              description
                "Install image on primary partition while booted on secondary partition";
            }
    
            leaf no-auto-reboot {
              type empty;
              description
                "Do not reboot system automatically after adding package";
            }
    
            leaf delay-restart {
              type empty;
              description
                "Don't restart processes";
            }
    
            leaf no-copy {
              type empty;
              description
                "Don't save copies of package files";
            }
    
            choice validate_choice {
              leaf no-validate {
                type empty;
                description
                  "Don't check compatibility with current configuration";
              }
              leaf validate {
                type empty;
                description
                  "Check compatibility with current configuration";
              }
              leaf validate-on-host {
                type string;
                description
                  "Remote host or user@host for configuration validation";
              }
              leaf validate-on-routing-engine {
                type string;
                description
                  "Routing engine for configuration validation";
              }
            }  // choice validate_choice
    
            leaf best-effort-load {
              type empty;
              description
                "Load succeeds if at least one statement is valid";
            }
    
            leaf unlink {
              type empty;
              description
                "Remove the package after successful installation";
            }
    
            leaf partition {
              type empty;
              description
                "Format and re-partition the media before installation";
            }
    
            choice re-choice {
              leaf re0 {
                type empty;
                description
                  "Install package on RE0";
              }
              leaf re1 {
                type empty;
                description
                  "Install package on RE1";
              }
              leaf both-routing-engines {
                type empty;
                description
                  "Simultaneous upgrade on both the RE's";
              }
            }  // choice re-choice
    
            choice chassis {
              leaf scc {
                type empty;
                description
                  "Install package on SCC";
              }
              leaf lcc {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Install package on an LCC";
              }
              leaf sfc {
                type empty;
                description
                  "Install package on SFC";
              }
              leaf member {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Install package on member";
              }
              leaf dont-forward {
                type empty;
              }
    
              case service-node {
              }  // case service-node
              leaf upgrade-group {
                type string;
                description
                  "Satellite upgrade group name";
              }
              leaf satellite {
                type union {
                  type int32;
                  type string {
                    pattern "<.*>|$.*";
                  }
                }
                description
                  "FPC slot of satellite system";
              }
              leaf device-alias {
                type string;
                description
                  "Device alias of satellite system";
              }
            }  // choice chassis
    
            leaf-list upgrade-with-config {
              type jt:filename;
              ordered-by user;
              description
                "Additional configs ('text/xml' format) to be applied on upgrade";
            }
    
            choice package-options {
              leaf-list set {
                type jt:filename;
                ordered-by user;
                description
                  "List of URLs or pathnames corresponding to packages";
              }
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
              leaf version {
                type string;
                description
                  "Version of satellite package";
              }
            }  // choice package-options
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-add
    
        rpc request-package-latest-status {
          description
            "Status of package installation";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml package-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-latest-status
    
        rpc abort-in-service-upgrade {
          description
            "Abort in-service software upgrade";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc abort-in-service-upgrade
    
        rpc request-package-in-service-upgrade {
          description
            "In-service software upgrade";
          input {
            leaf reboot {
              type empty;
              description
                "Reboot system after adding package";
            }
    
            choice package-options {
              case set {
              }  // case set
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
            }  // choice package-options
    
            leaf no-old-master-upgrade {
              type empty;
              description
                "Don't upgrade the old master after switchover";
            }
    
            leaf no-copy {
              type empty;
              description
                "Don't save copies of package files";
            }
    
            leaf unlink {
              type empty;
              description
                "Remove the package after successful installation";
            }
    
            leaf no-sync {
              type empty;
              description
                "No state or session sync from master to backup";
            }
    
            leaf no-validate {
              type empty;
              description
                "Don't check compatibility with current configuration";
            }
    
            leaf no-tcp-syn-check {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 14400";
                }
              }
              default "0";
              description
                "Disable TCP SYN check on secondary node, Custom time in seconds (0..14400, 0 - default)";
            }
    
            choice issu_internal {
            }  // choice issu_internal
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-in-service-upgrade
    
        rpc request-in-service-upgrade-status {
          description
            "In-Service software upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml issu-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-in-service-upgrade-status
    
        rpc request-package-nonstop-upgrade {
          description "Nonstop software upgrade";
          input {
            leaf force-host {
              type empty;
              description
                "Force addition of host os package (ignore version check)";
            }
    
            leaf no-auto-recovery {
              type empty;
              description
                "Will not recover in case of NSSU failure";
            }
    
            choice package-options {
              case set {
              }  // case set
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
            }  // choice package-options
    
            leaf no-copy {
              type empty;
              status deprecated;
              description
                "Don't save copies of package files";
            }
    
            leaf unlink {
              type empty;
              status deprecated;
              description
                "Remove the package after successful installation";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-nonstop-upgrade
    
        rpc request-package-delete {
          description
            "Remove extension or upgrade package";
          input {
            leaf archived {
              type empty;
              description
                "Removing of all archived software versions except current and rollback";
            }
    
            leaf force {
              type empty;
              description
                "Force removal of package (ignore warnings)";
            }
    
            choice package-options {
              leaf-list set {
                type string;
                ordered-by user;
                description
                  "List of package name";
              }
              leaf package-name {
                type string;
                description "Name of package";
              }
              leaf upgrade-group {
                type string;
                description
                  "Satellite upgrade group name";
              }
              leaf version {
                type string;
                description
                  "Version of satellite package";
              }
            }  // choice package-options
    
            leaf reboot {
              type empty;
              description
                "Reboot system after package delete";
            }
    
            choice re-choice {
              leaf re0 {
                type empty;
                description
                  "Delete package on RE0";
              }
              leaf re1 {
                type empty;
                description
                  "Delete package on RE1";
              }
            }  // choice re-choice
    
            choice chassis {
              leaf scc {
                type empty;
                description
                  "Delete package on SCC";
              }
              leaf lcc {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "0 .. 3";
                  }
                }
                description
                  "Delete package on an LCC";
              }
              leaf sfc {
                type empty;
                description
                  "Delete package on SFC";
              }
              leaf member {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Delete package on VC Member";
              }
              leaf dont-forward {
                type empty;
              }
            }  // choice chassis
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-delete
    
        rpc request-package-rollback {
          description
            "Attempt to roll back to previous set of packages";
          input {
            uses command-forwarding;
    
            leaf reboot {
              type empty;
              description
                "Reboot system after rollback";
            }
    
            leaf force {
              type empty;
              description
                "Force rollback of packages (ignore warnings)";
            }
    
            choice satellite-arg {
              leaf upgrade-group {
                type string;
                description
                  "Satellite upgrade group name";
              }
              leaf satellite {
                type union {
                  type int32;
                  type string {
                    pattern "<.*>|$.*";
                  }
                }
                description
                  "FPC slot of satellite system";
              }
              leaf device-alias {
                type string;
                description
                  "Device alias of satellite system";
              }
            }  // choice satellite-arg
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-rollback
    
        rpc request-package-validate {
          description
            "Verify package compatibility with current configuration";
          input {
            leaf-list upgrade-with-config {
              type jt:filename;
              ordered-by user;
              description
                "Additional configs ('text/xml' format) to be validated";
            }
    
            choice package-options {
              leaf-list set {
                type jt:filename;
                ordered-by user;
                description
                  "List of URLs or pathnames corresponding to packages";
              }
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
            }  // choice package-options
    
            choice chassis {
              leaf scc {
                type empty;
                description
                  "Validate package on SCC";
              }
              leaf lcc {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Validate package on an LCC";
              }
              leaf sfc {
                type empty;
                description
                  "Validate package on SFC";
              }
              leaf member {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Validate package on member";
              }
              leaf dont-forward {
                type empty;
              }
            }  // choice chassis
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-validate
    
        rpc check-in-service-upgrade {
          description
            "Check in-service software upgrade";
          input {
            choice package-options {
              leaf-list set {
                type jt:filename;
                ordered-by user;
                description
                  "List of URLs or pathnames corresponding to packages for ISSU";
              }
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
            }  // choice package-options
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc check-in-service-upgrade
    
        rpc request-package-delete-backup {
          description
            "Delete old system software packages";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-delete-backup
    
        rpc request-license-add {
          description
            "Add license keys from file, local or from server";
          input {
            leaf filename {
              type string;
              description
                "Filename (URL, local, remote, or floppy)";
            }
    
            leaf key-data {
              type string;
              description "License key data";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml add-license-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-license-add
    
        rpc request-license-delete {
          description "Delete license keys";
          input {
            choice delete-choice {
              leaf all {
                type empty;
                description
                  "Delete all license keys";
              }
              leaf license-identifier {
                type string;
                description
                  "Identifier of installed license key";
              }
              leaf-list license-identifier-list {
                type string;
                ordered-by user;
                description
                  "Identifier of installed license key";
              }
            }  // choice delete-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-license-delete
    
        rpc request-license-save {
          description
            "Save license keys to file, local or to server";
          input {
            leaf filename {
              type string;
              mandatory true;
              description
                "Filename (URL, local, remote, or floppy)";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-license-save
    
        rpc request-license-update {
          description
            "Start autoupdate license keys from LMS servers";
          input {
            leaf trial {
              type empty;
              description
                "Start autoupdate trial license keys from LMS servers";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml inform;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-license-update
    
        rpc license-revoke-licenses {
          status deprecated;
          description
            "Revoke licenses in the Authorization key";
          input {
            leaf filename {
              type string;
              mandatory true;
              description
                "Filename (URL, local, remote, or floppy)";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc license-revoke-licenses
    
        rpc fips-selftest {
          description
            "Execute FIPS known answer tests (KATs)";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc fips-selftest
    
        rpc request-personality-file-generate {
          description
            "Generate the personality-file tarball for the device";
          input {
            leaf personality-file-create {
              type string;
              mandatory true;
              description
                "Url containing the remote server alongwith the name of the tarball";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-personality-file-generate
    
        rpc request-personality-file-retrieve {
          description
            "Retrieve the personality-file tarball of the device";
          input {
            leaf personality-file-retrieve {
              type string;
              mandatory true;
              description
                "Url containing the remote server alongwith the name of the tarball";
            }
    
            leaf retrieve-location {
              type string;
              mandatory true;
              description
                "Path on the local device where the personality-file will be retrieved";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-personality-file-retrieve
    
        rpc transfer-control {
          description
            "Control transfers of core and log files";
          input {
            leaf operation {
              type enumeration {
                enum "abort" {
                  value 0;
                  description "Abort a transfer";
                }
                enum "pause" {
                  value 1;
                  description "Pause a transfer";
                }
                enum "restart" {
                  value 2;
                  description
                    "Restart a transfer";
                }
              }
              mandatory true;
              description
                "Transfer control operation";
            }
    
            choice arg-type {
              case component {
              }  // case component
              leaf transfer-id {
                type union {
                  type int32;
                  type string {
                    pattern "<.*>|$.*";
                  }
                }
                description
                  "Transfer identifier";
              }
            }  // choice arg-type
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml transfer-control-diagnostics;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc transfer-control
    
        rpc request-log {
          description
            "Create an archive of all system logs";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-logfiles;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-log
    
        rpc request-system-storage-cleanup {
          description
            "Clean up temporary files and rotate logs";
          input {
            uses command-forwarding;
    
            leaf dry-run {
              type empty;
              description
                "Only list the cleanup candidates, do not remove them";
            }
    
            leaf no-confirm {
              type empty;
              description
                "Do not ask for confirmation";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-storage-cleanup-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-storage-cleanup
    
        rpc request-system-storage-expand-user {
          description "Manage size of user disk";
          input {
            leaf operation {
              type enumeration {
                enum "expand" {
                  value 0;
                  description
                    "Expand user disk to maximum available size";
                }
                enum "restore" {
                  value 1;
                  description
                    "Restore user disk to default setting";
                }
              }
              mandatory true;
              description
                "Expand user disk or revert to default";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-storage-expand-user
    
        rpc request-boot-console {
          description "Switch boot-console port";
          input {
            uses command-forwarding;
    
            leaf port {
              type enumeration {
                enum "console" {
                  value 0;
                  description
                    "Set Console port as boot console";
                }
                enum "auxiliary" {
                  value 1;
                  description
                    "Set Auxiliary port as boot console";
                }
              }
              mandatory true;
              description "Choice of port";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-boot-console
    
        rpc request-reboot {
          description "Reboot the system";
          input {
            uses command-forwarding;
    
            leaf hypervisor {
              type empty;
              description
                "Reboot both Junos and Hypervisor";
            }
    
            leaf media {
              type enumeration {
                enum "disk" {
                  value 0;
                  description
                    "Boot off hard disk";
                }
                enum "compact-flash" {
                  value 1;
                  description
                    "Standard boot off flash device";
                }
                enum "usb" {
                  value 2;
                  description
                    "Boot off USB device";
                }
                enum "usb0" {
                  value 3;
                  description
                    "Boot off USB0 device";
                }
                enum "usb1" {
                  value 4;
                  description
                    "Boot off USB1 device";
                }
                enum "removable-compact-flash" {
                  value 5;
                  description
                    "Boot off removable compact flash device";
                }
                enum "external" {
                  value 6;
                  description
                    "Boot from external storage device";
                }
                enum "internal" {
                  value 7;
                  description
                    "Boot from internal flash";
                }
                enum "nand-flash0" {
                  value 8;
                  description
                    "Boot off nand-flash0";
                }
                enum "nand-flash1" {
                  value 9;
                  description
                    "Boot off nand-flash1";
                }
              }
              description
                "Boot media for next boot";
            }
    
            leaf at {
              type string;
              default "now";
              description
                "Time at which to perform the operation";
            }
    
            leaf in {
              type string;
              default "now";
              description
                "Number of minutes to delay before operation";
            }
    
            leaf message {
              type string;
              description
                "Message to display to all users";
            }
    
            leaf power-off {
              type enumeration {
                enum "fpc" {
                  value 0;
                  description "Power off FPCs";
                }
              }
              description
                "Power-off the software on RE";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-reboot-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-reboot
    
        rpc request-reboot-in-service {
          description
            "Reboot with minimal traffic disruption";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-reboot-in-service
    
        rpc request-halt {
          description "Halt the system";
          input {
            uses command-forwarding;
    
            leaf media {
              type enumeration {
                enum "disk" {
                  value 0;
                  description
                    "Boot off hard disk";
                }
                enum "compact-flash" {
                  value 1;
                  description
                    "Standard boot off flash device";
                }
                enum "usb" {
                  value 2;
                  description
                    "Boot off USB device";
                }
                enum "usb0" {
                  value 3;
                  description
                    "Boot off USB0 device";
                }
                enum "usb1" {
                  value 4;
                  description
                    "Boot off USB1 device";
                }
                enum "removable-compact-flash" {
                  value 5;
                  description
                    "Boot off removable compact flash device";
                }
                enum "external" {
                  value 6;
                  description
                    "Boot from external storage device";
                }
                enum "internal" {
                  value 7;
                  description
                    "Boot from internal flash";
                }
                enum "nand-flash0" {
                  value 8;
                  description
                    "Boot off nand-flash0";
                }
                enum "nand-flash1" {
                  value 9;
                  description
                    "Boot off nand-flash1";
                }
              }
              description
                "Boot media for next boot";
            }
    
            leaf at {
              type string;
              default "now";
              description
                "Time at which to perform the operation";
            }
    
            leaf in {
              type string;
              default "now";
              description
                "Number of minutes to delay before operation";
            }
    
            leaf message {
              type string;
              description
                "Message to display to all users";
            }
    
            leaf power-off {
              type enumeration {
                enum "fpc" {
                  value 0;
                  description "Power off FPCs";
                }
              }
              description
                "Power-off the software on RE";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-halt
    
        rpc request-power-off {
          description
            "Power off the software on RE";
          input {
            uses command-forwarding;
    
            leaf media {
              type enumeration {
                enum "disk" {
                  value 0;
                  description
                    "Boot off hard disk";
                }
                enum "compact-flash" {
                  value 1;
                  description
                    "Standard boot off flash device";
                }
                enum "usb" {
                  value 2;
                  description
                    "Boot off USB device";
                }
                enum "usb0" {
                  value 3;
                  description
                    "Boot off USB0 device";
                }
                enum "usb1" {
                  value 4;
                  description
                    "Boot off USB1 device";
                }
                enum "removable-compact-flash" {
                  value 5;
                  description
                    "Boot off removable compact flash device";
                }
                enum "external" {
                  value 6;
                  description
                    "Boot from external storage device";
                }
                enum "internal" {
                  value 7;
                  description
                    "Boot from internal flash";
                }
                enum "nand-flash0" {
                  value 8;
                  description
                    "Boot off nand-flash0";
                }
                enum "nand-flash1" {
                  value 9;
                  description
                    "Boot off nand-flash1";
                }
              }
              description
                "Boot media for next boot";
            }
    
            leaf at {
              type string;
              default "now";
              description
                "Time at which to perform the operation";
            }
    
            leaf in {
              type string;
              default "now";
              description
                "Number of minutes to delay before operation";
            }
    
            leaf message {
              type string;
              description
                "Message to display to all users";
            }
    
            leaf power-off {
              type enumeration {
                enum "fpc" {
                  value 0;
                  description "Power off FPCs";
                }
              }
              description
                "Power-off the software on RE";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-power-off
    
        rpc request-process-terminate {
          description "Terminate the process";
          input {
            leaf process-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 99999";
                }
              }
              mandatory true;
              description "Process ID";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-process-terminate
    
        rpc request-system-zeroize {
          description
            "Erase all data, including configuration and log files";
          input {
            leaf media {
              type empty;
              description "Overwrite media";
            }
    
            leaf local {
              type empty;
              description
                "Zeroize just this Routing Engine";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-zeroize
    
        rpc request-snapshot {
          description
            "Archive data and executable areas";
          input {
            uses command-forwarding;
    
            leaf partition {
              type empty;
              description "Partition the media";
            }
    
            leaf factory {
              type empty;
              description
                "Include only files shipped from factory in snapshot";
            }
    
            leaf as-primary {
              type empty;
              description
                "Setup snapshot to be used in the primary boot device";
            }
    
            leaf swap-size {
              type string;
              description
                "Size of the swap partition";
            }
    
            leaf config-size {
              type string;
              description
                "Size of the config partition";
            }
    
            leaf root-size {
              type string;
              description
                "Size of the root partition";
            }
    
            leaf data-size {
              type string;
              description
                "Size of the data partition";
            }
    
            leaf slice {
              type enumeration {
                enum "alternate" {
                  value 0;
                  description
                    "Write snapshot to alternate partition";
                }
              }
              description
                "Write snapshot to specified partition";
            }
    
            leaf media {
              type enumeration {
                enum "removable-compact-flash" {
                  value 0;
                  description
                    "Write snapshot to removable compact flash";
                }
                enum "compact-flash" {
                  value 1;
                  description
                    "Write snapshot to compact flash";
                }
                enum "usb" {
                  value 2;
                  description
                    "Write snapshot to device connected to USB port";
                }
                enum "usb0" {
                  value 3;
                  description
                    "Write snapshot to device connected to USB0 port";
                }
                enum "usb1" {
                  value 4;
                  description
                    "Write snapshot to device connected to USB1 port";
                }
                enum "hard-disk" {
                  value 5;
                  description
                    "Write snapshot to hard disk";
                }
                enum "internal" {
                  value 6;
                  description
                    "Write snapshot to internal flash";
                }
                enum "external" {
                  value 7;
                  description
                    "Write snapshot to external storage device";
                }
              }
              default "compact-flash";
              description "Media to snapshot to";
            }
    
            leaf root-partition {
              type empty;
              description
                "Write snapshot of root partition alone";
            }
    
            leaf config-partition {
              type empty;
              description
                "Write snapshot of config partition alone";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml snapshot-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-snapshot
    
        rpc request-system-firmware-reload-fpc {
          description "Reload FPC ROM monitor";
          input {
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "FPC slot number";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-firmware-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-firmware-reload-fpc
    
        rpc request-jfw-cpld-upgrade {
          description "Upgrade CPLD firmware";
          input {
            leaf cpld-type {
              type string;
              description
                "CPLD type: RE, MAIN, FAN";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-cpld-upgrade
    
        rpc request-jfw-cpld-mainboard-upgrade {
          description
            "Upgrade mainboard CPLD firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-cpld-mainboard-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-cpld-mainboard-upgrade
    
        rpc request-jfw-main-board-upgrade-status {
          description
            "Show MAIN board upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-main-board-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-main-board-upgrade-status
    
        rpc request-jfw-cpld-fanboard-upgrade {
          description
            "Upgrade fanboard CPLD firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-cpld-fanboard-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-cpld-fanboard-upgrade
    
        rpc request-jfw-cpld-fanboard-upgrade-status {
          description
            "Show fanboard CPLD upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-cpld-fanboard-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-cpld-fanboard-upgrade-status
    
        rpc request-jfw-cpld-sys-upgrade {
          description
            "Upgrade Sys CPLD firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-cpld-sys-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-cpld-sys-upgrade
    
        rpc request-jfw-sys-cpld-upgrade-status {
          description
            "Show Sys cpld upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-sys-cpld-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-sys-cpld-upgrade-status
    
        rpc request-jfw-cpld-cpuboard-upgrade {
          description
            "Upgrade CPU board CPLD firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-cpld-cpuboard-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-cpld-cpuboard-upgrade
    
        rpc request-jfw-cpu-cpld-upgrade-status {
          description
            "Show CPU cpld upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-cpu-cpld-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-cpu-cpld-upgrade-status
    
        rpc request-jfw-mmc-upgrade {
          description "Upgrade MMC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-mmc-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-mmc-upgrade
    
        rpc request-jfw-mmc-upgrade-status {
          description "Show MMC upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-mmc-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-mmc-upgrade-status
    
        rpc request-jfw-nic-i350-upgrade {
          description
            "Upgrade Builtin i350 NIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-nic-i350-upgrade
    
        rpc request-jfirmware-nic-i210-upgrade {
          description
            "Upgrade Builtin i210 NIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfirmware-nic-i210-upgrade
    
        rpc request-jfw-nic-x552-upgrade {
          description
            "Upgrade Builtin x552 NIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-nic-x552-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-nic-x552-upgrade
    
        rpc request-jfw-nic-x722-upgrade {
          description
            "Upgrade Builtin x722 NIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-nic-x722-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-nic-x722-upgrade
    
        rpc request-jfw-nic-x722-upgrade-status {
          description "Show NIC upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-nic-x722-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-nic-x722-upgrade-status
    
        rpc request-jfw-nic-x553-upgrade {
          description
            "Upgrade Builtin x553 NIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-nic-x553-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-nic-x553-upgrade
    
        rpc request-jfw-nic-i82599-1-upgrade {
          description
            "Upgrade Builtin i82599_1 NIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-nic-i82599-1-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-nic-i82599-1-upgrade
    
        rpc request-jfw-nic-i82599-2-upgrade {
          description
            "Upgrade Builtin i82599_2 NIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-nic-i82599-2-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-nic-i82599-2-upgrade
    
        rpc request-jfw-em-i350-copper-upgrade {
          description
            "Upgrade Expansion Module i350 NIC Copper firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-em-i350-copper-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-em-i350-copper-upgrade
    
        rpc request-jfw-em-i350-sfp-upgrade {
          description
            "Upgrade Expansion Module i350 NIC SFP firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-em-i350-sfp-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-em-i350-sfp-upgrade
    
        rpc request-jfw-bios-upgrade {
          description "Upgrade BIOS firmware";
          input {
            leaf disk {
              type string;
              description "1, 2";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-bios-upgrade
    
        rpc request-jfw-bios-upgrade-status {
          description "Show BIOS upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-bios-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-bios-upgrade-status
    
        rpc request-jfw-psu-upgrade {
          description "Upgrade psu firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-psu-upgrade
    
        rpc request-jfw-psu-upgrade-status {
          description "Show PSU upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-psu-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-psu-upgrade-status
    
        rpc request-jfirmware-hv-psu-upgrade {
          description "Upgrade HV PSU firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfirmware-hv-psu-upgrade
    
        rpc request-jfirmware-hv-psu-upgrade-status {
          description
            "Show HV PSU upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfirmware-hv-psu-upgrade-status
    
        rpc request-jfw-ssd-upgrade {
          description "Upgrade SSD firmware";
          input {
            leaf disk {
              type string;
              description "1, 2";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-ssd-upgrade
    
        rpc get-jfw-tpm-upgrade {
          description "Upgrade TPM firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc get-jfw-tpm-upgrade
    
        rpc request-jfw-ltc-upgrade {
          description "Upgrade LTC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-ltc-upgrade
    
        rpc request-jfw-poe-upgrade {
          description "Upgrade POE firmware";
          input {
            leaf fpc-slot {
              type string;
              mandatory true;
              description "FPC slot";
            }
    
            leaf poe-firmware-type {
              type enumeration {
                enum "poe-at-firmware" {
                  value 0;
                  description
                    "IEEE 802.3at PoE Firmware Support";
                }
                enum "poe-bt-firmware" {
                  value 1;
                  description
                    "IEEE 802.3bt PoE Firmware Support";
                }
              }
              description "POE_FIRMWARE_TYPE";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-poe-upgrade
    
        rpc request-jfw-bcm-pcie-upgrade {
          description
            "Upgrade BCM PCIe firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-bcm-pcie-upgrade
    
        rpc request-jfirmware-pmic-upgrade {
          description "Upgrade PMIC firmware";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfirmware-pmic-upgrade
    
        rpc request-jfw-pmic-fpga-upgrade-status {
          description "Show PMIC Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-pmic-fpga-upgrade-status
    
        rpc request-jfw-re-fpga-upgrade {
          description "Upgrade RE FPGA";
          input {
            leaf file {
              type string;
              description
                "Jfirmware package file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-re-fpga-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-re-fpga-upgrade
    
        rpc request-jfw-re-fpga-upgrade-status {
          description
            "Show RE FPGA Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-re-fpga-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-re-fpga-upgrade-status
    
        rpc request-jfw-tmc-fpga-upgrade {
          description
            "Upgrade Mainboard TMC FPGA";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-tmc-fpga-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-tmc-fpga-upgrade
    
        rpc request-jfw-tmc-fpga-upgrade-status {
          description "Show TMC Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-tmc-fpga-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-tmc-fpga-upgrade-status
    
        rpc request-jfw-power-cpld-upgrade {
          description "Upgrade Power CPLD";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-power-cpld-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-power-cpld-upgrade
    
        rpc request-jfw-powercpld-upgrade-status {
          description
            "Show Powercpld Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-powercpld-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-powercpld-upgrade-status
    
        rpc request-jfirmware-fanboard-fpga-upgrade {
          description "Upgrade Fanboard FPGA";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfirmware-fanboard-fpga-upgrade
    
        rpc request-jfirmware-fanboard-fpga-upgrade-status {
          description
            "Show Fanboard FPGA Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfirmware-fanboard-fpga-upgrade-status
    
        rpc request-jfw-optics-sfp-upgrade {
          description "Upgrade Optics FPGA/CPLD";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-optics-sfp-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-optics-sfp-upgrade
    
        rpc request-jfw-optics-sfp-upgrade-status {
          description "Show SFP Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-optics-sfp-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-optics-sfp-upgrade-status
    
        rpc request-jfw-optics-qsfp-upgrade {
          description "Upgrade Optics FPGA/CPLD";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-optics-qsfp-upgrade-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-optics-qsfp-upgrade
    
        rpc request-jfw-optics-qsfp-upgrade-status {
          description "Show QSFP Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-jfw-optics-qsfp-upgrade-information-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-optics-qsfp-upgrade-status
    
        rpc request-jfw-bmc-upgrade {
          description "Upgrade BMC firmware";
          input {
            leaf file {
              type string;
              description
                "Jfirmware package file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-bmc-upgrade
    
        rpc request-jfw-bmc-upgrade-status {
          description "Show BMC Upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-bmc-upgrade-status
    
        rpc request-jfw-allfw-upgrade {
          description
            "Upgrade all firmwares applicable in Jfirmware package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-jfw-allfw-upgrade
    
        rpc request-pem-firmware-upgrade {
          description "Upgrade CHASSIS PEM FW";
          input {
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description "PEM slot number";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-firmware-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-pem-firmware-upgrade
    
        rpc request-bitscpld-firmware-upgrade {
          description
            "Upgrade BITSCPLD programmable on SPMC Mezz board";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-firmware-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-bitscpld-firmware-upgrade
    
        rpc request-cb-fpga-upgrade {
          description "Upgrade baseboard FPGA";
          input {
            choice which-arg {
              case fpga {
              }  // case fpga
    
              case port-fpga {
              }  // case port-fpga
    
              case port {
              }  // case port
    
              case tic-fpga {
              }  // case tic-fpga
    
              case optics {
              }  // case optics
    
              case fancpld {
              }  // case fancpld
            }  // choice which-arg
    
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "CB slot number";
            }
    
            leaf tag {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 2";
                }
              }
              mandatory true;
              description "Firmware tag";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-firmware-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-cb-fpga-upgrade
    
        rpc request-bitscpld-firmware-downgrade {
          description
            "Upgrade BITSCPLD programmable on SPMC Mezz board";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml system-firmware-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-bitscpld-firmware-downgrade
    
        rpc request-power-on-other-re {
          description "Power on the system";
          input {
            uses command-forwarding;
    
            leaf other-routing-engine {
              type empty;
              mandatory true;
              description
                "Power on other Routing Engine";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-power-on-other-re
    
        rpc request-system-autorecovery {
          description
            "Manage autorecovery information";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml autorecovery;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-autorecovery
    
        rpc request-system-autorecovery-state-save {
          description "Save autorecovery state";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml autorecovery;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-autorecovery-state-save
    
        rpc request-system-autorecovery-state-recover {
          description
            "Check for problems and recover state if needed";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml autorecovery;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-autorecovery-state-recover
    
        rpc request-system-autorecovery-state-clear {
          description
            "Delete previously saved autorecovery state";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml autorecovery;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-autorecovery-state-clear
    
        rpc renew-dhcp-client {
          description
            "Request DHCP client renew";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Interface name of DHCP client";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc renew-dhcp-client
    
        rpc release-dhcp-client {
          description
            "Request DHCP client release";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Interface name of DHCP client";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc release-dhcp-client
    
        rpc request-system-download-clear {
          description
            "Clear records of completed and aborted downloads";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml download-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-download-clear
    
        rpc request-system-download-start {
          description "Start a new download";
          input {
            leaf url {
              type string;
              mandatory true;
              description "URL of file";
            }
    
            leaf max-rate {
              type string;
              description
                "Maximum bandwidth for the download";
            }
    
            leaf save-as {
              type string;
              description
                "Rename file when saving to local file system";
            }
    
            leaf login {
              type string;
              description
                "Login credentials (username:password)";
            }
    
            leaf identity-file {
              type string;
              description
                "Identity file for sftp pubic key authentication";
            }
    
            leaf passphrase {
              type string;
              description
                "Passphrase used to protect identity key pair";
            }
    
            leaf delay {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 48";
                }
              }
              units "hours";
              description
                "Delay the start of the download";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml download-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-download-start
    
        rpc request-system-download-pause {
          description "Pause an active download";
          input {
            leaf download-id {
              type union {
                type uint16;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description
                "ID of the download to be paused";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml download-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-download-pause
    
        rpc request-system-download-resume {
          description "Resume a paused download";
          input {
            leaf download-id {
              type union {
                type uint16;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description
                "ID of the download to be resumed";
            }
    
            leaf max-rate {
              type string;
              description
                "Maximum bandwidth for the download";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml download-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-download-resume
    
        rpc request-system-download-abort {
          description
            "Abort a download and delete the local file";
          input {
            leaf download-id {
              type union {
                type uint16;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description
                "ID of the download to be aborted";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml download-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-system-download-abort
    
        rpc generate-pki-key-pair {
          description
            "Generate RSA, DSA or ECDSA private and public key pair";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf size {
              type enumeration {
                enum "256" {
                  value 0;
                  description
                    "256 bits (ECDSA only)";
                }
                enum "384" {
                  value 1;
                  description
                    "384 bits (ECDSA only)";
                }
                enum "521" {
                  value 2;
                  description
                    "521 bits (ECDSA only)";
                }
                enum "512" {
                  value 3;
                  description
                    "512 bits (RSA only)";
                }
                enum "1024" {
                  value 4;
                  description
                    "1024 bits (RSA/DSA only)";
                }
                enum "2048" {
                  value 5;
                  description
                    "2048 bits (RSA/DSA only)";
                }
                enum "4096" {
                  value 6;
                  description
                    "4096 bits (RSA/DSA only)";
                }
              }
              units "bits";
              default "2048";
              description "Size of key";
            }
    
            leaf type {
              type enumeration {
                enum "rsa" {
                  value 0;
                  description "RSA encryption";
                }
                enum "dsa" {
                  value 1;
                  description "DSA encryption";
                }
                enum "ecdsa" {
                  value 2;
                  description "ECDSA encryption";
                }
              }
              default "rsa";
              description
                "Algorithm for encrypting public private keys";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml cert-key-pair;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc generate-pki-key-pair
    
        rpc generate-pki-certificate-request {
          description
            "Generate the certificate request in PKCS-10 format";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf filename {
              type string;
              description
                "Local location for copy of certificate request";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description
                    "SHA-1 digests (RSA/DSA only, default value for RSA/DSA)";
                }
                enum "sha-256" {
                  value 1;
                  description
                    "SHA-256 digests (RSA/ECDSA only, default value for ECDSA)";
                }
                enum "sha-384" {
                  value 2;
                  description
                    "SHA-384 digests (ECDSA only)";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc generate-pki-certificate-request
    
        rpc load-pki-ca-certificate {
          description
            "Load the certificate onto the routing platform";
          input {
            uses command-forwarding;
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf filename {
              type string;
              mandatory true;
              description
                "File pathname containing certificate to load";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml cert-ca-load-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc load-pki-ca-certificate
    
        rpc request-security-pki-ca-profile-group {
          description
            "Perform operations on group of Certificate-authority(CA) certificates";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml ca-profile-group;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-pki-ca-profile-group
    
        rpc request-security-pki-ca-profile-group-load {
          description
            "Load the certificate group onto the routing platform";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf ca-group-name {
              type string {
                length "1 .. 24";
              }
              mandatory true;
              description "CA group identifier";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "File pathname containing certificate to load";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml ca-profile-group-load;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-pki-ca-profile-group-load
    
        rpc verify-pki-ca-certificate {
          description "Verify the certificate";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc verify-pki-ca-certificate
    
        rpc request-security-local-certificate-enroll {
          description
            "Enroll router certificate with CA online";
          input {
            uses command-forwarding;
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            leaf challenge-password {
              type string;
              mandatory true;
              description
                "Password used by CA for enrollment and revocation";
            }
    
            leaf scep-encryption-algorithm {
              type enumeration {
                enum "des" {
                  value 0;
                  description "DES Encryption";
                }
                enum "des3" {
                  value 1;
                  description
                    "DES-3 Encryption (default)";
                }
              }
              description
                "Encrypion algorithm used for SCEP-PKCS7";
            }
    
            leaf scep-digest-algorithm {
              type enumeration {
                enum "md5" {
                  value 0;
                  description "MD-5 digest";
                }
                enum "sha1" {
                  value 1;
                  description
                    "SHA-1 digest (default)";
                }
              }
              description
                "Hash algorithm used for SCEP-PKCS7";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description
                    "SHA-1 digests (default value)";
                }
                enum "sha-256" {
                  value 1;
                  description "SHA-256 digests";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-enroll;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-local-certificate-enroll
    
        rpc request-security-local-certificate-enroll-cmpv2 {
          description
            "Enroll certificate using CMPv2 protocol";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name for subject-alt-name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            leaf ca-dn {
              type string;
              description
                "Subject DN for CMPv2 server, if CA certificate is not enrolled";
            }
    
            leaf ca-secret {
              type string;
              mandatory true;
              description
                "Initial Authentication Key, received from CMPv2 server";
            }
    
            leaf ca-reference {
              type string;
              mandatory true;
              description
                "Reference value associated with secret, received from CMPv2 server";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-enroll-cmpv2;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-local-certificate-enroll-cmpv2
    
        rpc request-security-local-certificate-enroll-scep {
          description
            "Enroll end-entity certificate using SCEP protocol";
          input {
            uses command-forwarding;
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            leaf challenge-password {
              type string;
              mandatory true;
              description
                "Password used by CA for enrollment and revocation";
            }
    
            leaf scep-encryption-algorithm {
              type enumeration {
                enum "des" {
                  value 0;
                  description "DES Encryption";
                }
                enum "des3" {
                  value 1;
                  description
                    "DES-3 Encryption (default)";
                }
              }
              description
                "Encrypion algorithm used for SCEP-PKCS7";
            }
    
            leaf scep-digest-algorithm {
              type enumeration {
                enum "md5" {
                  value 0;
                  description "MD-5 digest";
                }
                enum "sha1" {
                  value 1;
                  description
                    "SHA-1 digest (default)";
                }
              }
              description
                "Hash algorithm used for SCEP-PKCS7";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name for subject-alt-name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description
                    "SHA-1 digests (default value)";
                }
                enum "sha-256" {
                  value 1;
                  description "SHA-256 digests";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-enroll-scep;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-local-certificate-enroll-scep
    
        rpc request-security-local-certificate-re-enroll {
          description
            "Re-enroll router certificate with CA online";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-re-enroll;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-local-certificate-re-enroll
    
        rpc request-security-local-cert-re-enroll-cmpv2 {
          description
            "Enroll certificate using CMPv2 protocol";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              description
                "Certificate authority profile";
            }
    
            leaf re-generate-keypair {
              type empty;
              description
                "Generate new keypair for re-enrollment";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-cert-re-enroll-cmpv2;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-local-cert-re-enroll-cmpv2
    
        rpc request-security-local-cert-re-enroll-scep {
          description
            "Enroll end-entity certificate using SCEP protocol";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              description
                "Certificate authority profile";
            }
    
            leaf challenge-password {
              type string;
              mandatory true;
              description
                "Password used by CA for enrollment and revocation";
            }
    
            leaf re-generate-keypair {
              type empty;
              description
                "Generate new keypair for re-enrollment";
            }
    
            leaf scep-encryption-algorithm {
              type enumeration {
                enum "des" {
                  value 0;
                  description "DES Encryption";
                }
                enum "des3" {
                  value 1;
                  description
                    "DES-3 Encryption (default)";
                }
              }
              description
                "Encrypion algorithm used for SCEP-PKCS7";
            }
    
            leaf scep-digest-algorithm {
              type enumeration {
                enum "md5" {
                  value 0;
                  description "MD-5 digest";
                }
                enum "sha1" {
                  value 1;
                  description
                    "SHA-1 digest (default)";
                }
              }
              description
                "Hash algorithm used for SCEP-PKCS7";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-cert-re-enroll-scep;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-local-cert-re-enroll-scep
    
        rpc request-security-local-certificate-export {
          description "Export Certificate";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "Local location for copy of certificate.";
            }
    
            leaf type {
              type enumeration {
                enum "pem" {
                  value 0;
                  description "PEM format";
                }
                enum "der" {
                  value 1;
                  description "DER format";
                }
              }
              default "pem";
              description "Type of certificate.";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-export;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-local-certificate-export
    
        rpc load-pki-local-certificate {
          description
            "Load the certificate onto the routing platform";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "File pathname containing certificate to load";
            }
    
            leaf key {
              type string;
              description
                "File pathname containing the private key/key-pair to load";
            }
    
            leaf passphrase {
              type string;
              description
                "Passphrase of the private key/key-pair (PEM) file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml cert-load-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc load-pki-local-certificate
    
        rpc verify-pki-local-certificate {
          description "Verify the certificate";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc verify-pki-local-certificate
    
        rpc generate-pki-self-signed-local-certificate {
          description
            "Generate a self-signed certificate";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf domain-name {
              type string;
              mandatory true;
              description
                "Fully qualified domain name";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf email {
              type string;
              description
                "Email address of the entity owning the certificate";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf add-ca-constraint {
              type empty;
              description
                "Certificate can be used for signing other certificates.";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description "SHA-1 digests";
                }
                enum "sha-256" {
                  value 1;
                  description
                    "SHA-256 digests (default value)";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc generate-pki-self-signed-local-certificate
    
        rpc request-security-key-pair-export {
          description
            "Export Keypair in PEM format";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier for keypair";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "Local location for copy of keypair.";
            }
    
            leaf type {
              type enumeration {
                enum "pem" {
                  value 0;
                  description "PEM format";
                }
                enum "der" {
                  value 1;
                  description "DER format";
                }
              }
              default "pem";
              description "Type of key-pair.";
            }
    
            leaf passphrase {
              type string;
              mandatory true;
              description
                "Passphrase of the private key/key-pair (PEM) file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml key-pair-export;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-key-pair-export
    
        rpc load-pki-crl {
          description
            "Load the CRL onto the routing platform";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "Pathname of file containing CRL to load";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc load-pki-crl
    
        rpc request-security-pki-file-sync {
          description
            "Perform PKI file-sync with MN-HA remote node";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml pki-file-sync;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-pki-file-sync
    
        rpc node-local-generate-key-pair {
          description
            "Generate RSA, DSA or ECDSA private and public key pair";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf size {
              type enumeration {
                enum "256" {
                  value 0;
                  description
                    "256 bits (ECDSA only)";
                }
                enum "384" {
                  value 1;
                  description
                    "384 bits (ECDSA only)";
                }
                enum "521" {
                  value 2;
                  description
                    "521 bits (ECDSA only)";
                }
                enum "512" {
                  value 3;
                  description
                    "512 bits (RSA only)";
                }
                enum "1024" {
                  value 4;
                  description
                    "1024 bits (RSA/DSA only)";
                }
                enum "2048" {
                  value 5;
                  description
                    "2048 bits (RSA/DSA only)";
                }
                enum "4096" {
                  value 6;
                  description
                    "4096 bits (RSA/DSA only)";
                }
              }
              units "bits";
              default "2048";
              description "Size of key";
            }
    
            leaf type {
              type enumeration {
                enum "rsa" {
                  value 0;
                  description "RSA encryption";
                }
                enum "dsa" {
                  value 1;
                  description "DSA encryption";
                }
                enum "ecdsa" {
                  value 2;
                  description "ECDSA encryption";
                }
              }
              default "rsa";
              description
                "Algorithm for encrypting public private keys";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml cert-key-pair;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-generate-key-pair
    
        rpc node-local-generate-csr {
          description
            "Generate the certificate request in PKCS-10 format";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name for subject-alt-name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
    
            leaf filename {
              type string;
              description
                "Local location for copy of certificate request";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description
                    "SHA-1 digests (RSA/DSA only, default value for RSA/DSA)";
                }
                enum "sha-256" {
                  value 1;
                  description
                    "SHA-256 digests (RSA/ECDSA only, default value for ECDSA)";
                }
                enum "sha-384" {
                  value 2;
                  description
                    "SHA-384 digests (ECDSA only)";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml node-local-gen-csr;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-generate-csr
    
        rpc node-local-local-certificate-enroll {
          description
            "Enroll router certificate with CA online";
          input {
            uses command-forwarding;
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name for subject-alt-name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            leaf challenge-password {
              type string;
              mandatory true;
              description
                "Password used by CA for enrollment and revocation";
            }
    
            leaf scep-encryption-algorithm {
              type enumeration {
                enum "des" {
                  value 0;
                  description "DES Encryption";
                }
                enum "des3" {
                  value 1;
                  description
                    "DES-3 Encryption (default)";
                }
              }
              description
                "Encrypion algorithm used for SCEP-PKCS7";
            }
    
            leaf scep-digest-algorithm {
              type enumeration {
                enum "md5" {
                  value 0;
                  description "MD-5 digest";
                }
                enum "sha1" {
                  value 1;
                  description
                    "SHA-1 digest (default)";
                }
              }
              description
                "Hash algorithm used for SCEP-PKCS7";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description
                    "SHA-1 digests (default value)";
                }
                enum "sha-256" {
                  value 1;
                  description "SHA-256 digests";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-enroll;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-local-certificate-enroll
    
        rpc node-local-local-certificate-enroll-cmpv2 {
          description
            "Enroll certificate using CMPv2 protocol";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name for subject-alt-name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            leaf ca-dn {
              type string;
              description
                "Subject DN for CMPv2 server, if CA certificate is not enrolled";
            }
    
            leaf ca-secret {
              type string;
              mandatory true;
              description
                "Initial Authentication Key, received from CMPv2 server";
            }
    
            leaf ca-reference {
              type string;
              mandatory true;
              description
                "Reference value associated with secret, received from CMPv2 server";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-enroll-cmpv2;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-local-certificate-enroll-cmpv2
    
        rpc node-local-local-certificate-enroll-scep {
          description
            "Enroll end-entity certificate using SCEP protocol";
          input {
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate authority profile";
            }
    
            leaf challenge-password {
              type string;
              mandatory true;
              description
                "Password used by CA for enrollment and revocation";
            }
    
            leaf scep-encryption-algorithm {
              type enumeration {
                enum "des" {
                  value 0;
                  description "DES Encryption";
                }
                enum "des3" {
                  value 1;
                  description
                    "DES-3 Encryption (default)";
                }
              }
              description
                "Encrypion algorithm used for SCEP-PKCS7";
            }
    
            leaf scep-digest-algorithm {
              type enumeration {
                enum "md5" {
                  value 0;
                  description "MD-5 digest";
                }
                enum "sha1" {
                  value 1;
                  description
                    "SHA-1 digest (default)";
                }
              }
              description
                "Hash algorithm used for SCEP-PKCS7";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf ipv6-address {
              type jt:ipv6addr;
              description
                "Static IPv6 address of the device for subject-alt-name";
            }
    
            leaf domain-name {
              type string;
              description
                "Fully qualified domain name for subject-alt-name";
            }
    
            leaf email {
              type string;
              description "Email address";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description
                    "SHA-1 digests (default value)";
                }
                enum "sha-256" {
                  value 1;
                  description "SHA-256 digests";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-enroll-scep;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-local-certificate-enroll-scep
    
        rpc load-node-local-local-certificate {
          description
            "Load the certificate onto the routing platform";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "File pathname containing certificate to load";
            }
    
            leaf key {
              type string;
              description
                "File pathname containing the private key/key-pair to load";
            }
    
            leaf passphrase {
              type string;
              description
                "Passphrase of the private key/key-pair (PEM) file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml cert-load-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc load-node-local-local-certificate
    
        rpc verify-pki-node-local-local-certificate {
          description "Verify the certificate";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml node-local-verify-cert;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc verify-pki-node-local-local-certificate
    
        rpc generate-node-local-self-signed-certificate {
          description
            "Generate a self-signed certificate";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf domain-name {
              type string;
              mandatory true;
              description
                "Fully qualified domain name";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              description
                "Static IP address of the device";
            }
    
            leaf email {
              type string;
              description
                "Email address of the entity owning the certificate";
            }
    
            leaf subject {
              type string;
              mandatory true;
              description
                "DC=<Domain component>,CN=<Common-Name>,OU=<Organizational-Unit-name>,O=<Organization-name>,SN=<Serial-Number>,L=<Locality>,ST=<state>,C=<Country>";
            }
    
            leaf add-ca-constraint {
              type empty;
              description
                "Certificate can be used for signing other certificates.";
            }
    
            leaf digest {
              type enumeration {
                enum "sha-1" {
                  value 0;
                  description "SHA-1 digests";
                }
                enum "sha-256" {
                  value 1;
                  description
                    "SHA-256 digests (default value)";
                }
              }
              description
                "Hash algorithm for signing RSA certificates";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml node-local-self-signed;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc generate-node-local-self-signed-certificate
    
        rpc node-local-local-certificate-re-enroll {
          description
            "Re-enroll router certificate with CA online";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-re-enroll;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-local-certificate-re-enroll
    
        rpc node-local-local-cert-re-enroll-cmpv2 {
          description
            "Enroll certificate using CMPv2 protocol";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              description
                "Certificate authority profile";
            }
    
            leaf re-generate-keypair {
              type empty;
              description
                "Generate new keypair for re-enrollment";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-cert-re-enroll-cmpv2;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-local-cert-re-enroll-cmpv2
    
        rpc node-local-local-cert-re-enroll-scep {
          description
            "Enroll end-entity certificate using SCEP protocol";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf ca-profile {
              type string {
                length "1 .. 32";
              }
              description
                "Certificate authority profile";
            }
    
            leaf challenge-password {
              type string;
              mandatory true;
              description
                "Password used by CA for enrollment and revocation";
            }
    
            leaf re-generate-keypair {
              type empty;
              description
                "Generate new keypair for re-enrollment";
            }
    
            leaf scep-encryption-algorithm {
              type enumeration {
                enum "des" {
                  value 0;
                  description "DES Encryption";
                }
                enum "des3" {
                  value 1;
                  description
                    "DES-3 Encryption (default)";
                }
              }
              description
                "Encrypion algorithm used for SCEP-PKCS7";
            }
    
            leaf scep-digest-algorithm {
              type enumeration {
                enum "md5" {
                  value 0;
                  description "MD-5 digest";
                }
                enum "sha1" {
                  value 1;
                  description
                    "SHA-1 digest (default)";
                }
              }
              description
                "Hash algorithm used for SCEP-PKCS7";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-cert-re-enroll-scep;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-local-cert-re-enroll-scep
    
        rpc node-local-local-certificate-export {
          description "Export Certificate";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "Local location for copy of certificate.";
            }
    
            leaf type {
              type enumeration {
                enum "pem" {
                  value 0;
                  description "PEM format";
                }
                enum "der" {
                  value 1;
                  description "DER format";
                }
              }
              default "pem";
              description "Type of certificate.";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml local-certificate-export;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-local-certificate-export
    
        rpc node-local-key-pair-export {
          description
            "Export Keypair in PEM format";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
    
            leaf certificate-id {
              type string {
                length "1 .. 32";
              }
              mandatory true;
              description
                "Certificate identifier for keypair";
            }
    
            leaf filename {
              type string;
              mandatory true;
              description
                "Local location for copy of keypair.";
            }
    
            leaf type {
              type enumeration {
                enum "pem" {
                  value 0;
                  description "PEM format";
                }
                enum "der" {
                  value 1;
                  description "DER format";
                }
              }
              default "pem";
              description "Type of key-pair.";
            }
    
            leaf passphrase {
              type string;
              mandatory true;
              description
                "Passphrase of the private key/key-pair (PEM) file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml key-pair-export;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc node-local-key-pair-export
    
        rpc verify-integrity-status {
          description
            "Check the integrity of PKI files (in CC mode)";
          input {
            uses command-forwarding;
    
            choice daemon-select {
              case logical-system {
              }  // case logical-system
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml verify-integrity-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc verify-integrity-status
    
        rpc request-pki-debug-memory-profile {
          description
            "Enable or disable memory profile";
          input {
            leaf profile-state {
              type enumeration {
                enum "enable" {
                  value 0;
                  description
                    "Enable PKI memory profiling";
                }
                enum "disable" {
                  value 1;
                  description
                    "Disable PKI memory profiling";
                }
                enum "dump" {
                  value 2;
                  description
                    "Dump PKI memory profile debug info";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-pki-debug-memory-profile
    
        rpc generate-ssh-key-pair {
          description
            "Generate SSH key pair identity";
          input {
            leaf identity-name {
              type string;
              mandatory true;
              description "Identity name";
            }
    
            leaf passphrase {
              type string;
              description
                "Generate SSH identity with passphrase";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc generate-ssh-key-pair
    
        rpc get-enable-ike-debug {
          description "Enable ike debug";
          input {
            uses command-forwarding;
    
            leaf remote {
              type jt:ipaddr;
              mandatory true;
              description "Remote ip address";
            }
    
            leaf kmd-instance {
              type string;
              default "all";
              description
                "Name of KMD instance or 'all'";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc get-enable-ike-debug
    
        rpc get-disable-ike-debug {
          description "Disable ike debug";
          input {
            uses command-forwarding;
    
            leaf kmd-instance {
              type string;
              default "all";
              description
                "Name of KMD instance or 'all'";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc get-disable-ike-debug
    
        rpc request-internal-security-association-refresh {
          description
            "Refresh internal security association";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-internal-security-association-refresh
    
        rpc request-idp-policy-load {
          description "Load a compiled policy";
          input {
            uses command-forwarding;
    
            leaf policy {
              type string;
              description
                "Compiled policy file name";
            }
    
            leaf no-ai {
              type empty;
              description
                "Application identification flag";
            }
    
            leaf detector {
              type string;
              description "Detector file name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-idp-policy-load;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-policy-load
    
        rpc request-idp-storage-cleanup {
          description
            "Delete non-essential idp files for freeing up disk space";
          input {
            uses command-forwarding;
    
            choice cleanup-choice {
              leaf cache-files {
                type empty;
                description
                  "Deletes DFA cache files used for optimizing idp policy compilation";
              }
              leaf downloaded-files {
                type empty;
                description
                  "Deletes downloaded security-package files (doesn't affect installed database)";
              }
            }  // choice cleanup-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-idp-storage-cleanup;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-storage-cleanup
    
        rpc request-idp-security-package-install {
          description
            "Update attack database, active policy, detector with new package";
          input {
            uses command-forwarding;
    
            choice install-choice {
              leaf update-attack-database-only {
                type empty;
                description
                  "Don't update/push active policy or detector to data plane";
              }
              leaf policy-templates {
                type empty;
                description
                  "Update previously installed policy-templates with newly downloaded ones";
              }
              leaf precompiled-policy {
                type empty;
                description
                  "Update dataplane 'Recommended' policy and detector for it with newly downloaded ones";
              }
              leaf older-detector {
                type empty;
                description
                  "Update dataplane with older detector";
              }
              leaf status {
                type empty;
                description
                  "Retrieve the status of security package load operation";
              }
              leaf policy-template-result {
                type empty;
                description
                  "Status of policy templates operation";
              }
            }  // choice install-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secpack-update-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-security-package-install
    
        rpc request-idp-security-package-download {
          description
            "Download security package (Package includes detector and deltas for attack table)";
          input {
            uses command-forwarding;
    
            choice download-choice {
              leaf full-update {
                type empty;
                description
                  "Download package with complete attack table";
              }
              leaf package-option {
                type enumeration {
                  enum "check-server" {
                    value 0;
                    description
                      "Retrieve version information for latest package on server";
                  }
                  enum "policy-templates" {
                    value 1;
                    description
                      "Download policy templates";
                  }
                  enum "precompiled-policy" {
                    value 2;
                    description
                      "Download pre-compiled 'Recommended' policy and detector for it";
                  }
                }
              }
              leaf status {
                type empty;
                description
                  "Retrieve the status of security package download operation";
              }
              leaf policy-template-file {
                type empty;
                description
                  "Current status of policy template file";
              }
              leaf policy-template-result {
                type empty;
                description
                  "Status of policy templates operation";
              }
            }  // choice download-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secpack-download-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-security-package-download
    
        rpc request-idp-security-package-download-version {
          description
            "Version of package to download";
          input {
            uses command-forwarding;
    
            leaf version-value {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Version number";
            }
    
            leaf full-update {
              type empty;
              description
                "Download package with complete attack table";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secpack-download-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-security-package-download-version
    
        rpc request-idp-security-package-offline-download {
          description
            "Unzip the security package and copy the xml files";
          input {
            uses command-forwarding;
    
            choice offline-download-choice {
              leaf package-path {
                type string;
                description
                  "Package path of the zipped security package ";
              }
              leaf status {
                type empty;
                description
                  "Retrieve the status of offline package download operation";
              }
            }  // choice offline-download-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml offline-download-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-security-package-offline-download
    
        rpc request-idp-security-package-rollback {
          description
            "Rollback attack database, active policy, detector";
          input {
            uses command-forwarding;
    
            choice rollback-choice {
              leaf status {
                type empty;
                description
                  "Retrieve the status of package rollback operation";
              }
            }  // choice rollback-choice
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-idp-security-package-rollback-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-security-package-rollback
    
        rpc get-idp-attack-rule-information {
          description
            "Analyze the PCAP traffic and display the context generated";
          input {
            uses command-forwarding;
    
            leaf pcap-file {
              type jt:filename;
              mandatory true;
              description "Pcap file";
            }
    
            leaf from-zone {
              type string;
              mandatory true;
              description
                "Select the policy information matching the given source zone";
            }
    
            leaf to-zone {
              type string;
              mandatory true;
              description
                "Select the policy information matching the given destination zone";
            }
    
            leaf logging-level {
              type enumeration {
                enum "brief" {
                  value 0;
                  description
                    "Brief status of ongoing pcap-analysis";
                }
                enum "detail" {
                  value 1;
                  description
                    "Detail logging of ongoing pcap-analysis";
                }
              }
              description
                "Brief status / Detail logging of ongoing pcap-analysis";
            }
    
            leaf packets {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description
                "Insert only first n packets from pcap for pcap-analysis";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml idp-attack-rule-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc get-idp-attack-rule-information
    
        rpc request-idp-ssl-key-add {
          description "Add SSL key and server";
          input {
            uses command-forwarding;
    
            leaf key-name {
              type string {
                length "1 .. 31";
              }
              mandatory true;
              description "Key name";
            }
    
            leaf file {
              type jt:filename;
              description "Key file";
            }
    
            leaf password {
              type string {
                length "1 .. 31";
              }
              description
                "Password used to encrypt private key";
            }
    
            leaf tcp-port {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint16 {
                  range "1 .. 65535";
                }
              }
              description "Server TCP port";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-idp-ssl-key-add;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-ssl-key-add
    
        rpc request-idp-ssl-key-delete {
          description
            "Delete SSL keys and servers";
          input {
            uses command-forwarding;
    
            leaf key-name {
              type string {
                length "1 .. 31";
              }
              description "Key name";
            }
    
            leaf tcp-port {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint16 {
                  range "1 .. 65535";
                }
              }
              description "Server TCP port";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-idp-ssl-key-delete;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-idp-ssl-key-delete
    
        rpc jist-conversion-information {
          description
            "JIST conversion of snort rules to Juniper Signatures";
          input {
            uses command-forwarding;
    
            leaf input-file {
              type string;
              mandatory true;
              description "Snort rules file";
            }
    
            leaf output-file {
              type string;
              description
                "Redirect converted attacks-set commands to this file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml jist-conversion-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc jist-conversion-information
    
        rpc request-eedebug-capture-start {
          description
            "Start datapath debug packet capture";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-eedebug-capture-start-result;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-eedebug-capture-start
    
        rpc request-eedebug-capture-stop {
          description
            "Stop datapath debug packet capture";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-eedebug-capture-stop-result;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-eedebug-capture-stop
    
        rpc request-anti-virus-update-avira-patterns {
          description
            "Request update of anti-virus pattern for avira-engine";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml anti-virus-request-update;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-anti-virus-update-avira-patterns
    
        rpc request-anti-virus-update-avira-update {
          description
            "Update avira-engine pattern";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml anti-virus-request-update-avira-update;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-anti-virus-update-avira-update
    
        rpc request-anti-virus-update-avira-local {
          description
            "Update pattern from local folder";
          input {
            uses command-forwarding;
    
            leaf path {
              type string;
              mandatory true;
              description
                "Pattern update from local folder";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml anti-virus-request-update-avira-local;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-anti-virus-update-avira-local
    
        rpc request-anti-virus-update-avira-reload {
          description
            "Reload avira-engine pattern";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml anti-virus-request-update-avira-reload;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-anti-virus-update-avira-reload
    
        rpc request-anti-virus-update-avira-delete {
          description
            "Delete avira-engine pattern";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml anti-virus-request-update-avira-delete;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-anti-virus-update-avira-delete
    
        rpc request-anti-virus-update-sophos-patterns {
          description
            "Request update of anti-virus pattern for sophos-engine";
          input {
            uses command-forwarding;
    
            leaf update-action {
              type enumeration {
                enum "pattern-update" {
                  value 0;
                  description
                    "Update sophos-engine pattern";
                }
                enum "pattern-reload" {
                  value 1;
                  description
                    "Reload sophos-engine pattern";
                }
                enum "pattern-delete" {
                  value 2;
                  description
                    "Delete sophos-engine pattern";
                }
              }
              mandatory true;
              description
                "Choose action to update anti-virus pattern for sophos-engine";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml anti-virus-request-update;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-anti-virus-update-sophos-patterns
    
        rpc request-category-download {
          description
            "Download predefined-category and predefined-filter package from server";
          input {
            uses command-forwarding;
    
            leaf version {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description "Version number";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml category-download;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-category-download
    
        rpc request-category-download-install {
          description
            "Download and install predefined-category and predefined-filter package from server";
          input {
            uses command-forwarding;
    
            leaf version {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description "Version number";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml category-download-install;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-category-download-install
    
        rpc request-category-install {
          description
            "Install predefined-category and predefined-filter to system";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml category-install;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-category-install
    
        rpc request-category-uninstall {
          description
            "Rollback to system default predefined-category";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml category-uninstall;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-category-uninstall
    
        rpc request-custom-page-file-reload {
          description "Reload custom-page file";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml web-filtering-custom-page-reload;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-custom-page-file-reload
    
        rpc request-security-dynamic-address-update {
          description "Start a round of update";
          input {
            uses command-forwarding;
    
            leaf address-name {
              type string {
                length "1 .. 240";
              }
              mandatory true;
              description "Dynamic address name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-security-dynamic-address-update
    
        rpc request-userfw-local-auth-table-add {
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 64";
              }
              mandatory true;
              description
                "Add user name to local authentication table";
            }
    
            leaf ip-address {
              type jt:ipaddr;
              mandatory true;
              description
                "Add ip-address to local authentication table";
            }
    
            leaf-list roles {
              type string {
                length "1 .. 63";
              }
              ordered-by user;
              description
                "Add role name to local authentication table";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml userfw-local-auth-table;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-userfw-local-auth-table-add
    
        rpc request-userfw-local-auth-table-delete-ip {
          description
            "Delete local user authentication table entry by ip-address";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              mandatory true;
              description "IP address";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-userfw-local-auth-table-delete-ip
    
        rpc request-userfw-local-auth-table-delete-user {
          description
            "Delete local user authentication table entry by user name";
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 64";
              }
              mandatory true;
              description "User name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-userfw-local-auth-table-delete-user
    
        rpc request-interface-operation {
          description
            "Perform interface operations";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-interface-operation
    
        rpc revert-redundancy-interface-to-primary {
          description
            "Revert redundancy interface to its primary";
          input {
            leaf interface-name {
              type union {
                type jt:interface-wildcard;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc revert-redundancy-interface-to-primary
    
        rpc switch-redundancy-interface-to-secondary {
          description
            "Switch redundancy interface over to its secondary";
          input {
            leaf interface-name {
              type union {
                type jt:interface-wildcard;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc switch-redundancy-interface-to-secondary
    
        rpc request-intf-modem-reset {
          description "Reset the modem device";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-intf-modem-reset
    
        rpc request-interface-link-degade-recover {
          description
            "Perform manual link recovery";
          input {
            leaf interface-name {
              type union {
                type jt:interface-device;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-interface-link-degade-recover
    
        rpc extension-service-start {
          description "Start JET application";
          input {
            leaf invoke-debugger {
              type enumeration {
                enum "cli" {
                  value 0;
                  description
                    "Invoke debugger in cli";
                }
              }
              description
                "Invoke extension-service in debugger mode";
            }
    
            leaf application-name {
              type jt:filename;
              mandatory true;
              description "Application name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc extension-service-start
    
        rpc extension-service-stop {
          description "Stop JET application";
          input {
            leaf application-name {
              type jt:filename;
              mandatory true;
              description "Application name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc extension-service-stop
    
        rpc mgd-jnu-role {
          description "JNU Role";
          input {
            uses command-forwarding;
    
            leaf jnu-role {
              type enumeration {
                enum "controller" {
                  value 0;
                  description "Controller";
                }
                enum "satellite" {
                  value 1;
                  description "Satellite";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc mgd-jnu-role
    
        rpc mgd-jnu-schema-delete {
          description
            "Delete a JNU satellite schema";
          input {
            leaf model {
              type string;
              mandatory true;
              description "Satellite model";
            }
    
            leaf version {
              type string;
              mandatory true;
              description "Satellite version";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc mgd-jnu-schema-delete
    
        rpc mgd-jnu-schema-merge {
          description
            "Merge JNU schema to this controller";
          input {
            leaf satschema {
              type jt:filename;
              mandatory true;
              description
                "Satellite Schema Path";
            }
    
            leaf conschema {
              type jt:filename;
              mandatory true;
              description
                "Controller Schema Path";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc mgd-jnu-schema-merge
    
        rpc mgd-jnu-schema-add {
          description
            "Add JNU schema to this controller";
          input {
            leaf model {
              type string;
              mandatory true;
              description "Satellite model";
            }
    
            leaf version {
              type string;
              mandatory true;
              description "Satellite version";
            }
    
            leaf filename {
              type jt:filename;
              mandatory true;
              description
                "Satellite schema TLV package filename";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc mgd-jnu-schema-add
    
        rpc clear-jdaf-command-client-stats {
          description
            "Clear JDAF client side statistics";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml jdaf-request-no-response;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-command-client-stats
    
        rpc clear-jdaf-command-server-stats {
          description
            "Clear JDAF server statistics";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-command-server-stats
    
        rpc clear-jdaf-config-client-stats {
          description
            "Clear JDAF client side statistics";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml jdaf-request-no-response;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-config-client-stats
    
        rpc clear-jdaf-config-server-stats {
          description
            "Clear JDAF server statistics";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-config-server-stats
    
        rpc clear-jdaf-firewall-client-stats {
          description
            "Clear JDAF client side statistics";
          input {
            leaf client-id {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              default "0";
              description "Client id";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml jdaf-request-no-response;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-firewall-client-stats
    
        rpc clear-jdaf-firewall-server-stats {
          description
            "Clear JDAF server statistics";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-firewall-server-stats
    
        rpc clear-jdaf-interface-client-stats {
          description
            "Clear JDAF client side statistics";
          input {
            leaf client-id {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              default "0";
              description "Client id";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml jdaf-request-no-response;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-interface-client-stats
    
        rpc clear-jdaf-interface-server-stats {
          description
            "Clear JDAF server statistics";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-interface-server-stats
    
        rpc clear-jdaf-route-client-stats {
          description
            "Clear JDAF client side statistics";
          input {
            leaf client-id {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              default "0";
              description "Client id";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml jdaf-request-no-response;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-route-client-stats
    
        rpc clear-jdaf-route-server-stats {
          description
            "Clear JDAF server statistics";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc clear-jdaf-route-server-stats
    
        rpc request-dhcp-server-reconfigure-information {
          description
            "Perform DHCP server reconfigure operation";
          input {
            choice reconfigure-choice {
              leaf address {
                type string;
                description
                  "IP address or MAC address or Session Id of DHCP client binding";
              }
              leaf all {
                type empty;
                description
                  "Reconfigure all clients";
              }
            }  // choice reconfigure-choice
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-server-reconfigure-information
    
        rpc request-dhcp-server-reconfigure-interface {
          description "Name of interface";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description "Name of interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-server-reconfigure-interface
    
        rpc request-dhcp-server-regenerate-persistent-file {
          description
            "Triggers the flat file backup operation";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-server-regenerate-persistent-file
    
        rpc request-dhcp-server-restore-client-from-file {
          description
            "Triggers the flat file restore operation";
          input {
            leaf from-file {
              type empty;
              mandatory true;
              description
                "Restore subscribers from file";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-server-restore-client-from-file
    
        rpc request-dhcp-client-renew-information {
          description
            "Request DHCP client renew";
          input {
            choice renew-choice {
              leaf interface {
                type string;
                description
                  "Interface name of DHCP client";
              }
              leaf all {
                type empty;
                description "Renew all clients";
              }
            }  // choice renew-choice
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice lsys-tenant {
            }  // choice lsys-tenant
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf tenant {
              type string;
              description "Name of tenant";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-client-renew-information
    
        rpc request-dhcp-relay-leasequery {
          description
            "Perform DHCP relay leasequery operation";
          input {
            leaf address {
              type string;
              mandatory true;
              description
                "Query by IPv4 address or mac-address or Client-ID";
            }
    
            leaf gateway-address {
              type string;
              mandatory true;
              description
                "Giaddr of leasequery packet";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-leasequery
    
        rpc request-dhcp-relay-bulk-leasequery {
          description
            "Perform DHCP relay bulk leasequery operation";
          input {
            leaf address {
              type string;
              description
                "Query by IPv4 address or mac-address or Client-ID";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf all-configured-ip {
              type empty;
              description
                "Query by all-configure-ip-addresss";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-bulk-leasequery
    
        rpc request-dhcp-relay-bulk-leasequery-relay-id {
          description "Query by relay-id";
          input {
            leaf relay-id {
              type string;
              mandatory true;
              description "Query by relay-id";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-bulk-leasequery-relay-id
    
        rpc request-dhcp-relay-bulk-leasequery-remote-id {
          description "Query by remote-id";
          input {
            leaf remote-id {
              type string;
              mandatory true;
              description "Query by remote-id";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-bulk-leasequery-remote-id
    
        rpc request-dhcp-relay-active-leasequery {
          description
            "Request DHCP active-leasequery operations";
          input {
            leaf discover-neighbor {
              type empty;
              mandatory true;
              description
                "Discover neighbors capable of hosting subscribers";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-active-leasequery
    
        rpc request-dhcp-relay-alq-peer {
          description "Active-leasequery peer";
          input {
            leaf peer-address {
              type jt:ipaddr;
              mandatory true;
              description
                "Active-leasequery peer address";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-alq-peer
    
        rpc request-dhcp-relay-alq-interface {
          description
            "Active-leasequery interface";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Active-leasequery interface name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-alq-interface
    
        rpc request-dhcp-relay-regenerate-persistent-file {
          description
            "Triggers the flat file backup operation";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-regenerate-persistent-file
    
        rpc request-dhcp-relay-restore-client-from-file {
          description
            "Triggers the flat file restore operation";
          input {
            leaf from-file {
              type empty;
              mandatory true;
              description
                "Restore subscribers from file";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-relay-restore-client-from-file
    
        rpc request-dhcp-regenerate-persistent-file {
          description
            "Triggers the flat file backup operation";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-regenerate-persistent-file
    
        rpc request-dhcp-restore-client-from-file {
          description
            "Triggers the flat file restore operation";
          input {
            leaf from-file {
              type empty;
              mandatory true;
              description
                "Restore subscribers from file";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcp-restore-client-from-file
    
        rpc request-dhcpv6-client-renew-information {
          description
            "Request DHCP client renew";
          input {
            choice renew-choice {
              leaf interface {
                type string;
                description
                  "Interface name of DHCP client";
              }
              leaf all {
                type empty;
                description "Renew all clients";
              }
            }  // choice renew-choice
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice lsys-tenant {
            }  // choice lsys-tenant
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf tenant {
              type string;
              description "Name of tenant";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-client-renew-information
    
        rpc request-dhcpv6-server-reconfigure-information {
          description
            "Perform DHCPv6 server reconfigure operation";
          input {
            choice reconfigure-choice {
              leaf address {
                type string;
                description
                  "IPv6 Prefix, session-id or CID of DHCPv6 client binding";
              }
              leaf all {
                type empty;
                description
                  "Reconfigure all clients";
              }
            }  // choice reconfigure-choice
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-server-reconfigure-information
    
        rpc request-dhcpv6-server-reconfigure-interface {
          description "Name of interface";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description "Name of interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-server-reconfigure-interface
    
        rpc request-dhcpv6-server-regenerate-persistent-file {
          description
            "Triggers the flat file backup operation";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-server-regenerate-persistent-file
    
        rpc request-dhcpv6-server-restore-client-from-file {
          description
            "Triggers the flat file restore operation";
          input {
            leaf from-file {
              type empty;
              mandatory true;
              description
                "Restore subscribers from file";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-server-restore-client-from-file
    
        rpc request-dhcpv6-relay-leasequery {
          description
            "Perform DHCPv6 relay leasequery operation";
          input {
            leaf address {
              type string;
              mandatory true;
              description
                "Query by IPv6 Prefix or CID of DHCPv6 client binding";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-leasequery
    
        rpc request-dhcpv6-relay-bulk-leasequery {
          description
            "Perform DHCPv6 relay bulk leasequery operation";
          input {
            leaf address {
              type string;
              description
                "Query by IPv6 Prefix or CID of DHCPv6 client binding";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-bulk-leasequery
    
        rpc request-dhcpv6-relay-bulk-leasequery-relay-id {
          description "Query by relay-id";
          input {
            leaf relay-id {
              type string;
              mandatory true;
              description "Query by relay-id";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-bulk-leasequery-relay-id
    
        rpc request-dhcpv6-relay-bulk-leasequery-link-addr {
          description "Query by link-address";
          input {
            leaf link-addr {
              type string;
              mandatory true;
              description
                "Query by link-address";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-bulk-leasequery-link-addr
    
        rpc request-dhcpv6-relay-bulk-leasequery-remote-id {
          description "Query by remote-id";
          input {
            leaf remote-id {
              type string;
              mandatory true;
              description "Query by remote-id";
            }
    
            choice query-server {
              leaf server-address {
                type string;
                description
                  "Send leasequery to server address";
              }
              leaf server-group {
                type string;
                description
                  "Send leasequery to servers in server-group";
              }
            }  // choice query-server
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-bulk-leasequery-remote-id
    
        rpc request-dhcpv6-relay-regenerate-persistent-file {
          description
            "Triggers the flat file backup operation";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-regenerate-persistent-file
    
        rpc request-dhcpv6-relay-restore-client-from-file {
          description
            "Triggers the flat file restore operation";
          input {
            leaf from-file {
              type empty;
              mandatory true;
              description
                "Restore subscribers from file";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-restore-client-from-file
    
        rpc request-dhcpv6-relay-active-leasequery {
          description
            "Request DHCP active-leasequery operations";
          input {
            leaf discover-neighbor {
              type empty;
              mandatory true;
              description
                "Discover neighbors capable of hosting subscribers";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-active-leasequery
    
        rpc request-dhcpv6-relay-alq-peer {
          description "Active-leasequery peer";
          input {
            leaf peer-address {
              type jt:ipaddr;
              mandatory true;
              description
                "Active-leasequery peer address";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-alq-peer
    
        rpc request-dhcpv6-relay-alq-interface {
          description
            "Active-leasequery interface";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Active-leasequery interface name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dhcpv6-relay-alq-interface
    
        rpc request-as-ra-guard-forward-interface {
          description "Name of interface";
          input {
            leaf interface-name {
              type union {
                type jt:interface-name;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-as-ra-guard-forward-interface
    
        rpc request-as-ra-guard-block-interface {
          description "Name of interface";
          input {
            leaf interface-name {
              type union {
                type jt:interface-name;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-as-ra-guard-block-interface
    
        rpc request-as-ra-guard-learn-interface {
          description
            "RA Guard Learn on an Interface";
          input {
            leaf interface {
              type union {
                type jt:interface-name;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description
                "RA Guard Learn on an interface";
            }
    
            leaf duration {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 3600";
                }
              }
              units "seconds";
              mandatory true;
              description
                "Time window for RA Guard learn";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-as-ra-guard-learn-interface
    
        rpc twamp-test-start {
          description
            "Start TWAMP test sessions";
          input {
            leaf control-connection {
              type string;
              default "all";
              description
                "Name of the control connection";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc twamp-test-start
    
        rpc twamp-test-stop {
          description "Stop TWAMP test sessions";
          input {
            leaf control-connection {
              type string;
              default "all";
              description
                "Name of the control connection";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc twamp-test-stop
    
        rpc request-services-flow-collector-test-file-transfer {
          description
            "Transfer a test file to the current primary server";
          input {
            leaf filename {
              type string;
              mandatory true;
              description
                "Specify the filename to use";
            }
    
            leaf channel {
              type enumeration {
                enum "channel-zero" {
                  value 0;
                  description "Channel 0";
                }
                enum "channel-one" {
                  value 1;
                  description "Channel 1";
                }
              }
              description
                "File transfer channel to use";
            }
    
            leaf destination-type {
              type enumeration {
                enum "primary" {
                  value 0;
                  description "Primary server";
                }
                enum "secondary" {
                  value 1;
                  description "Secondary server";
                }
              }
            }
    
            leaf interface {
              type string;
              mandatory true;
              description "Interface name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml flow-collector-test-file-transfer-response;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-services-flow-collector-test-file-transfer
    
        rpc request-services-flow-collector-destination {
          description
            "Change to Destination server";
          input {
            leaf destination-type {
              type enumeration {
                enum "primary" {
                  value 0;
                  description "Primary server";
                }
                enum "secondary" {
                  value 1;
                  description "Secondary server";
                }
              }
              mandatory true;
              description "Destination server";
            }
    
            leaf interface {
              type union {
                type jt:interface-device;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Physical interface";
            }
    
            leaf clear-files {
              type empty;
              description
                "Remove existing files";
            }
    
            leaf clear-logs {
              type empty;
              description "Remove existing logs";
            }
    
            leaf how-to-switch {
              type enumeration {
                enum "gracefully" {
                  value 0;
                  description
                    "Retain existing FTP connections";
                }
                enum "immediately" {
                  value 1;
                  description
                    "Terminate existing FTP connections";
                }
              }
              default "gracefully";
              description
                "Options when switching destination";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml flow-collector-destination-response;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-services-flow-collector-destination
    
        rpc request-appid-protocol-bundle-load {
          description
            "Load a QM protocols bundle dynamically";
          input {
            uses command-forwarding;
    
            leaf proto_bundle {
              type string;
              description
                "Protocol Bundle file name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-appid-protocol-bundle-load;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-protocol-bundle-load
    
        rpc request-appid-protocol-bundle-unload {
          description
            "UnLoad a QM protocols bundle dynamically";
          input {
            uses command-forwarding;
    
            leaf proto_bundle {
              type string;
              description
                "Protocol Bundle file name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-appid-protocol-bundle-unload;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-protocol-bundle-unload
    
        rpc request-appid-application-package-download {
          description
            "Download application package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-download-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-download
    
        rpc request-appid-application-package-download-version {
          description
            "Version of application package to download";
          input {
            leaf version-value {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint16 {
                  range "1 .. 65535";
                }
              }
              mandatory true;
              description
                "Version number (1 - 65535)";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-download-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-download-version
    
        rpc request-appid-application-package-download-status {
          description "Display download status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-download-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-download-status
    
        rpc request-appid-application-package-download-check-server {
          description
            "Retrieve version information for latest package on server";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-check-server;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-download-check-server
    
        rpc request-appid-application-package-install {
          description
            "Install application package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-install-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-install
    
        rpc request-appid-application-package-install-status {
          description "Display install status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-install-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-install-status
    
        rpc request-appid-force-install {
          description
            "Ignore version check during sigpack installation";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-force-install;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-force-install
    
        rpc request-appid-sigpack-rollback {
          description
            "Rollback application package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-rollback-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-sigpack-rollback
    
        rpc request-appid-sigpack-rollback-status {
          description "Display rollback status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-rollback-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-sigpack-rollback-status
    
        rpc request-appid-application-package-uninstall {
          description
            "Uninstall predefined application package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-apppack-uinstall;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-uninstall
    
        rpc request-appid-application-package-uninstall-status {
          description "Display uninstall status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-uninstall-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-package-uninstall-status
    
        rpc request-appid-application-predefined-disable {
          description
            "Disable a predefined application";
          input {
            uses command-forwarding;
    
            leaf application-name {
              type string;
              mandatory true;
              description
                "Predefined application name";
            }
    
            leaf no-commit {
              type empty;
              status deprecated;
              description
                "Do not re-compile signatures";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-application-predefined-disable;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-predefined-disable
    
        rpc request-appid-application-predefined-enable {
          description
            "Enable a predefined application";
          input {
            uses command-forwarding;
    
            leaf application-name {
              type string;
              mandatory true;
              description
                "Predefined application name";
            }
    
            leaf no-commit {
              type empty;
              status deprecated;
              description
                "Do not re-compile signatures";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-application-predefined-enable;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-predefined-enable
    
        rpc request-appid-application-predefined-group-copy {
          description
            "Copy a predefined application group into junos configuration";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string;
              mandatory true;
              description
                "Predefined application group name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-application-predefined-group-copy;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-predefined-group-copy
    
        rpc request-appid-application-predefined-group-disable {
          description
            "Disable a predefined application group";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string;
              mandatory true;
              description
                "Predefined application group name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-application-predefined-group-disable;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-predefined-group-disable
    
        rpc request-appid-application-predefined-group-enable {
          description
            "Enable a predefined application group";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string;
              mandatory true;
              description
                "Predefined application group name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml appid-application-predefined-group-enable;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-application-predefined-group-enable
    
        rpc request-appid-clear-pkt-capture {
          description "Clear";
          input {
            leaf packet-capture {
              type enumeration {
                enum "all" {
                  value 0;
                  description "Clear all files";
                }
              }
              default "all";
              description "Clear the pcap files";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-clear-pkt-capture
    
        rpc request-appid-new-to-production {
          description
            "To move new apps to production apps";
          input {
            uses command-forwarding;
    
            leaf-list applications-list {
              type string;
              ordered-by user;
              description
                "List of new applications";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-new-to-production
    
        rpc request-appid-new-to-production-all {
          description
            "Move all new apps to production";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-appid-new-to-production-all
    
        rpc start-aamw-conn-test {
          description
            "Start Advanced Anti-malware cloud connectivity test";
          input {
            uses command-forwarding;
    
            leaf payload-size {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "0 .. 32768";
                }
              }
              mandatory true;
              description
                "Ping payload size in bytes";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aamw-start-conn-test;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc start-aamw-conn-test
    
        rpc get-aamw-conn-test-status {
          description
            "Show Advanced Anti-malware cloud connectivity test status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aamw-show-conn-test-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc get-aamw-conn-test-status
    
        rpc request-aamw-diagnostics {
          description
            "Diagnostics for Advanced Anti-malware service";
          input {
            uses command-forwarding;
    
            leaf url {
              type string;
              description
                "SKYATP server hostname";
            }
    
            leaf detail {
              type enumeration {
                enum "detail" {
                  value 0;
                  description
                    "Show detail information";
                }
              }
            }
    
            leaf pre-detection {
              type enumeration {
                enum "pre-detection" {
                  value 0;
                  description
                    "Pre detection for andvance anti-malware service enrollment";
                }
              }
            }
    
            leaf routing-instance {
              type string;
              description
                "Routing instance used in enrollment";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-aamw-diagnostics;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-aamw-diagnostics
    
        rpc request-aamw-enrollment {
          description
            "Advanced Anti-malware service enrollment";
          input {
            leaf url {
              type string;
              description "URL";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-aamw-enrollment;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-aamw-enrollment
    
        rpc request-aamw-disenrollment {
          description
            "Advanced Anti-malware service disenrollment";
          input {
            leaf url {
              type string;
              description "URL";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-aamw-disenrollment;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-aamw-disenrollment
    
        rpc request-aamw-redirect-add {
          description "Add redirect file";
          input {
            uses command-forwarding;
    
            leaf file-name {
              type jt:filename;
              mandatory true;
              description "Add a redirect file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aamw-redirect-add;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-aamw-redirect-add
    
        rpc request-aamw-redirect-delete {
          description "Delete a redirect file";
          input {
            uses command-forwarding;
    
            leaf file-name {
              type jt:filename;
              mandatory true;
              description
                "Delete a redirect file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aamw-redirect-delete;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-aamw-redirect-delete
    
        rpc request-auth-table-by-address {
          description
            "Delete authentication table entry by ip-address";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              mandatory true;
              description "IP address";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-auth-table-by-address
    
        rpc request-delete-auth-table-all {
          description
            "Delete the entire authentication table in the userid daemon";
          input {
            uses command-forwarding;
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml ad-table-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-delete-auth-table-all
    
        rpc delete-auth-table-by-domain-all {
          description
            "Delete authentication table entry by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Delete authentication table per domain";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml delete-auth-table-by-domain;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc delete-auth-table-by-domain-all
    
        rpc request-authentication-table-delete-group-all {
          description
            "Delete authentication table entry by group name";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per group";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-authentication-table-delete-group-all
    
        rpc request-auth-table-delete-user-all {
          description
            "Delete authentication table entry by user name";
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "User name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per user";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-auth-table-delete-user-all
    
        rpc request-aruba-clearpass-table-information {
          description
            "Delete the Authentication table from Aruba ClearPass";
          input {
            uses command-forwarding;
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aruba-clearpass-table-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-aruba-clearpass-table-information
    
        rpc delete-auth-table-by-domain-cp {
          description
            "Delete authentication table entry by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Delete authentication table per domain";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml delete-auth-table-by-domain;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc delete-auth-table-by-domain-cp
    
        rpc request-authentication-table-delete-group-cp {
          description
            "Delete authentication table entry by group name";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per group";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-authentication-table-delete-group-cp
    
        rpc request-auth-table-delete-user-cp {
          description
            "Delete authentication table entry by user name";
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "User name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per user";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-auth-table-delete-user-cp
    
        rpc request-delete-ad-auth-table {
          description
            "Delete the active directory authentication table";
          input {
            uses command-forwarding;
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml ad-table-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-delete-ad-auth-table
    
        rpc delete-auth-table-by-domain-ad {
          description
            "Delete authentication table entry by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Delete authentication table per domain";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml delete-auth-table-by-domain;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc delete-auth-table-by-domain-ad
    
        rpc request-authentication-table-delete-group-ad {
          description
            "Delete authentication table entry by group name";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per group";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-authentication-table-delete-group-ad
    
        rpc request-auth-table-delete-user-ad {
          description
            "Delete authentication table entry by user name";
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "User name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per user";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-auth-table-delete-user-ad
    
        rpc delete-authentication-table-identity-management {
          description
            "Identity management server";
          input {
            uses command-forwarding;
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml identity-management-table-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc delete-authentication-table-identity-management
    
        rpc delete-auth-table-by-domain-im {
          description
            "Delete authentication table entry by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Delete authentication table per domain";
            }
    
            leaf source-name {
              type string {
                length "1 .. 65";
              }
              description
                "Authentication source name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml delete-auth-table-by-domain;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc delete-auth-table-by-domain-im
    
        rpc request-authentication-table-delete-group-im {
          description
            "Delete authentication table entry by group name";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per group";
            }
    
            leaf source-name {
              type string {
                length "1 .. 65";
              }
              description
                "Authentication source name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-authentication-table-delete-group-im
    
        rpc request-auth-table-delete-user-im {
          description
            "Delete authentication table entry by user name";
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "User name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per user";
            }
    
            leaf source-name {
              type string {
                length "1 .. 65";
              }
              description
                "Authentication source name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-auth-table-delete-user-im
    
        rpc request-auth-table-delete-source-name-im {
          description
            "Delete authentication table entry by source name";
          input {
            uses command-forwarding;
    
            leaf src-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Source name";
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Delete authentication table per source name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml delete-auth-table-by-source-name;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-auth-table-delete-source-name-im
    
        rpc request-domain-controller-list {
          description
            "Discovery domain-controller";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Show domain-controller status per domain";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml show-domain-controller-list;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-domain-controller-list
    
        rpc probe-specified-address {
          description
            "Probe specified ip-address";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml probe-specified-address;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc probe-specified-address
    
        rpc probe-pc-by-address {
          description
            "Request probe specified address";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              mandatory true;
              description "IP address";
            }
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description "Probe PC per domain";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc probe-pc-by-address
    
        rpc delete-active-directory-auth-table-by-domain {
          description
            "Delete active directory authentication table entry by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Update domain-controller status per domain";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml delete-active-directory-auth-table-by-domain;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc delete-active-directory-auth-table-by-domain
    
        rpc request-active-directory-auth-table-delete-ip {
          description
            "Delete active directory authentication table entry by ip-address";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              mandatory true;
              description "IP address";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-active-directory-auth-table-delete-ip
    
        rpc request-active-directory-auth-table-delete-group {
          description
            "Delete active directory authentication table entry by group name";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Show active directory authentication table status per domain";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-active-directory-auth-table-delete-group
    
        rpc request-active-directory-auth-table-delete-user {
          description
            "Delete active directory authentication table entry by user name";
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "User name";
            }
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description
                "Show active directory authentication table status per domain";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-active-directory-auth-table-delete-user
    
        rpc remove-ad-ug-mapping-by-domain {
          description
            "Remove active directory user-group-mapping by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Remove active directory user-group-mapping per domain";
            }
    
            leaf user {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "User name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc remove-ad-ug-mapping-by-domain
    
        rpc fetch-ad-ug-mapping-by-domain {
          description
            "Fetch active directory user-group-mapping by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Fetch active directory user-group-mapping per domain";
            }
    
            leaf user {
              type string {
                length "1 .. 65";
              }
              description "User name";
            }
    
            leaf group {
              type string {
                length "1 .. 65";
              }
              description "Group name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc fetch-ad-ug-mapping-by-domain
    
        rpc refresh-ad-ug-mapping-by-domain {
          description
            "Refresh active directory user-group-mapping by domain";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Refresh active directory user-group-mapping per domain";
            }
    
            leaf group {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc refresh-ad-ug-mapping-by-domain
    
        rpc periodic-fetch-ad-ug-mapping-add {
          description
            "Add group to periodic user-group-mapping fetching list";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Periodic fetching active directory user-group-mapping per domain";
            }
    
            leaf group {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc periodic-fetch-ad-ug-mapping-add
    
        rpc periodic-fetch-ad-ug-mapping-remove {
          description
            "Remove group from periodic user-group-mapping fetching list";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "Periodic fetching active directory user-group-mapping per domain";
            }
    
            leaf group {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc periodic-fetch-ad-ug-mapping-remove
    
        rpc periodic-fetch-ad-ug-mapping-timestamp {
          description
            "Timestamp hh:mm to start user-group-mapping fetching everyday";
          input {
            uses command-forwarding;
    
            leaf timestamp-string {
              type string;
              mandatory true;
              description
                "Timestamp hh:mm to start user-group-mapping fetching everyday";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc periodic-fetch-ad-ug-mapping-timestamp
    
        rpc query-specified-address {
          description
            "ClearPass user query operations";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml query-specified-address;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc query-specified-address
    
        rpc cp-user-query-by-address {
          description
            "Specified address for user-query";
          input {
            uses command-forwarding;
    
            leaf address-string {
              type jt:ipaddr;
              mandatory true;
              description "IP address for query";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc cp-user-query-by-address
    
        rpc get-groups-from-jims {
          description "Get groups from JIMS";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Domain name";
            }
    
            leaf force-fetch {
              type empty;
            }
    
            leaf status {
              type empty;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc get-groups-from-jims
    
        rpc validate-device-from-jims {
          description "Validate device";
          input {
            uses command-forwarding;
    
            leaf device-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Device name";
            }
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Domain name";
            }
    
            leaf force-fetch {
              type empty;
            }
    
            leaf status {
              type empty;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc validate-device-from-jims
    
        rpc validate-group-from-jims {
          description "Validate group";
          input {
            uses command-forwarding;
    
            leaf group-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Group name";
            }
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Domain name";
            }
    
            leaf force-fetch {
              type empty;
            }
    
            leaf status {
              type empty;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc validate-group-from-jims
    
        rpc validate-user-from-jims {
          description "Validate user";
          input {
            uses command-forwarding;
    
            leaf user-name {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "User name";
            }
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Domain name";
            }
    
            leaf force-fetch {
              type empty;
            }
    
            leaf status {
              type empty;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc validate-user-from-jims
    
        rpc request-device-identity-table-add {
          description
            "Add device identity table entry";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              mandatory true;
              description "IP address";
            }
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              description "Domain name";
            }
    
            leaf device-id {
              type string {
                length "1 .. 65";
              }
              description "Device ID";
            }
    
            leaf attributes {
              type string {
                length "1 .. 257";
              }
              description "Device attributes";
            }
    
            leaf auth-src {
              type enumeration {
                enum "ad" {
                  value 0;
                  description "AD auth";
                }
                enum "cp" {
                  value 1;
                  description
                    "CP auth (default)";
                }
              }
              default "cp";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-identity-table-add
    
        rpc request-device-identity-table-delete {
          description
            "Delete device identity table entry";
          input {
            uses command-forwarding;
    
            leaf ip-address {
              type jt:ipaddr;
              mandatory true;
              description "IP address";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-identity-table-delete
    
        rpc request-device-identity-table-update {
          description
            "Update device identity attributes";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Domain name";
            }
    
            leaf device-id {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Device ID";
            }
    
            leaf attributes {
              type string {
                length "1 .. 257";
              }
              description "Device attributes";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-identity-table-update
    
        rpc request-device-identity-table-remove {
          description
            "Remove device identity attributes";
          input {
            uses command-forwarding;
    
            leaf domain {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Domain name";
            }
    
            leaf device-id {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description "Device ID";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-identity-table-remove
    
        rpc request-device-identity-table-change {
          description "Change profile flag";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-identity-table-change
    
        rpc request-device-identity-table-clear {
          description "Clear device db";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-identity-table-clear
    
        rpc request-device-profile-resync {
          description
            "Request resync end-user-profile information";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-profile-resync
    
        rpc request-device-profile-jason {
          description
            "Request resync end-user-profile information";
          input {
            leaf message {
              type string;
              mandatory true;
              description "Message";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-device-profile-jason
    
        rpc ld-manual-ip-query {
          description "Manual ldom ip query";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml ld-manual-ip-query;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc ld-manual-ip-query
    
        rpc logical-domain-manual-ip-query-address {
          description
            "Specified address for ip query";
          input {
            uses command-forwarding;
    
            leaf address-string {
              type jt:ipaddr;
              mandatory true;
              description
                "IP address for manual query";
            }
    
            leaf query-type {
              type enumeration {
                enum "force-probe" {
                  value 0;
                  description
                    "Trigger force pc-probe on JIMS";
                }
              }
            }
    
            choice lsys {
              case logical-system {
              }  // case logical-system
              leaf root-logical-system {
                type empty;
                description
                  "Root logical-system (default)";
              }
    
              case tenant {
              }  // case tenant
              leaf all-logical-systems-tenants {
                type empty;
                description
                  "All multitenancy systems";
              }
            }  // choice lsys
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc logical-domain-manual-ip-query-address
    
        rpc manual-ip-query {
          description "Manual IP query";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml manual-ip-query;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc manual-ip-query
    
        rpc manual-ip-query-address {
          description
            "Specified address for IP query";
          input {
            uses command-forwarding;
    
            leaf address-string {
              type jt:ipaddr;
              mandatory true;
              description
                "IP address for manual query";
            }
    
            leaf query-type {
              type enumeration {
                enum "force-probe" {
                  value 0;
                  description
                    "Trigger force pc-probe on JIMS";
                }
              }
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc manual-ip-query-address
    
        rpc manual-batch-query {
          description "Manual batch query";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc manual-batch-query
    
        rpc manual-jims-validator-query {
          description
            "Manual jims validator query";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc manual-jims-validator-query
    
        rpc manual-jims-validator-query-files {
          description
            "Specified file list seperated with comma";
          input {
            uses command-forwarding;
    
            leaf files_str {
              type string {
                length "1 .. 65";
              }
              mandatory true;
              description
                "File list for jims validator query";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc manual-jims-validator-query-files
    
        rpc request-secintel-download {
          description
            "Download security intelligence feed";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secintel-download;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-secintel-download
    
        rpc request-secintel-download-status {
          description
            "Show feed download status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secintel-download-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-secintel-download-status
    
        rpc request-secintel-redirect-add {
          description "Add redirect file";
          input {
            uses command-forwarding;
    
            leaf file-name {
              type jt:filename;
              mandatory true;
              description "Add a redirect file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secintel-redirect-add;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-secintel-redirect-add
    
        rpc request-secintel-redirect-delete {
          description "Delete a redirect file";
          input {
            uses command-forwarding;
    
            leaf file-name {
              type jt:filename;
              mandatory true;
              description
                "Delete a redirect file";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secintel-redirect-delete;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-secintel-redirect-delete
    
        rpc request-secintel-uninstall {
          description "Uninstall feed data";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secintel-uninstall;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-secintel-uninstall
    
        rpc request-secintel-uninstall-status {
          description "Show uninstall status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml secintel-uninstall-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-secintel-uninstall-status
    
        rpc request-netconf-trace {
          description "NETCONF tracing";
          input {
            leaf on-demand {
              type enumeration {
                enum "start" {
                  value 0;
                  description
                    "Start NETCONF tracing";
                }
                enum "stop" {
                  value 1;
                  description
                    "Stop NETCONF tracing";
                }
              }
              mandatory true;
              description
                "Control on-demand tracing";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-netconf-trace
    
        rpc request-services-redundancy-set {
          description
            "Request services redundancy-set";
          input {
            leaf id {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Set id";
            }
    
            leaf trigger {
              type empty;
              mandatory true;
              description
                "Trigger a redundancy-event";
            }
    
            leaf redundancy-event {
              type string;
              mandatory true;
              description
                "Redundancy event which needs to be triggered";
            }
    
            leaf force {
              type empty;
              description
                "Trigger event forcefully overriding warnings";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml services-redundancy-set-request;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-services-redundancy-set
    
        rpc request-services-ip-monitoring {
          description "Ip monitoring requests";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-services-ip-monitoring
    
        rpc request-services-ip-monitoring-preempt-restore {
          description
            "Restore no-preempt failover state on ip monitoring";
          input {
            leaf policy {
              type string;
              mandatory true;
              description "Policy";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-services-ip-monitoring-preempt-restore
    
        rpc request-flb-maintenance-down {
          description
            "Request for destination to go in maintenance-down mode";
          input {
            leaf destination {
              type string;
              description "Destination VSRX";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-flb-maintenance-down
    
        rpc request-traffic-loadbalance-real-service-rejoin {
          description
            "Rejoin for load-balance request";
          input {
            leaf group {
              type string;
              default "all";
              description "Group name";
            }
    
            leaf instance {
              type string;
              default "all";
              description "Instance name";
            }
    
            leaf real-service {
              type string;
              default "all";
              description "Real service name";
            }
    
            leaf virtual-service {
              type string;
              default "all";
              description "Virtual service name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-traffic-loadbalance-real-service-rejoin
    
        rpc request-lacp-link-protection-switchover {
          description
            "Request LACP link protection switchover";
          input {
            leaf interface-name {
              type union {
                type jt:interface-wildcard;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of AE interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml lacp-link-switchover;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-lacp-link-protection-switchover
    
        rpc request-message {
          description
            "Send text message to other users";
          input {
            leaf user {
              type string;
              mandatory true;
              description
                "Name of user (account@terminal) to receive message";
            }
    
            leaf terminal {
              type string;
              description
                "Device name of target terminal (/dev/ttyXX)";
            }
    
            leaf message {
              type string;
              description "Text of message";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-message
    
        rpc request-message-all {
          description
            "Send message to all logged-in users";
          input {
            leaf message {
              type string;
              description "Text of message";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-message-all
    
        rpc request-compute-node-cleanup-log {
          description
            "Compute node cleanup /var/tmp and /var/log";
          input {
            uses command-forwarding;
    
            leaf compute-cluster {
              type string {
                length "1 .. 15";
              }
              description "Compute cluster name";
            }
    
            leaf compute-node {
              type string {
                length "1 .. 15";
              }
              description "Compute node name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-compute-node-cleanup-log
    
        rpc request-compute-node-file-copy {
          description
            "Copy file from host to vjunos";
          input {
            leaf host-path {
              type enumeration {
                enum "crash" {
                  value 0;
                  description
                    "Files in /var/crash";
                }
                enum "log" {
                  value 1;
                  description
                    "Files in /var/log";
                }
              }
              mandatory true;
              description
                "Copy files related to";
            }
    
            leaf from-jhost {
              type string;
              mandatory true;
              description "Host file name";
            }
    
            leaf to-vjunos {
              type string;
              mandatory true;
              description "Junos file name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-compute-node-file-copy
    
        rpc request-guest-virtual-machine-package-copy {
          description
            "Copy guest virtual-machine package to Junos";
          input {
            leaf package-name {
              type string;
              mandatory true;
              description
                "Name of the virtual-machine package";
            }
    
            leaf destination-path {
              type string;
              mandatory true;
              description
                "Path to the destination directory in Junos";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-guest-virtual-machine-package-copy
    
        rpc request-vmhost-poweroff {
          description
            "Power off the software on RE";
          input {
            leaf other-routing-engine {
              type empty;
              description
                "Power off other Routing Engine";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-poweroff
    
        rpc request-vmhost-halt {
          description "Halt the software on RE";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-halt
    
        rpc request-vmhost-power-on-other-re {
          description "Power on the system";
          input {
            leaf other-routing-engine {
              type empty;
              mandatory true;
              description
                "Power on other Routing Engine";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-power-on-other-re
    
        rpc request-vmhost-power-cycle {
          description "Power cycle the vmhost";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-power-cycle
    
        rpc request-vmhost-reboot {
          description "Reboot RE vmhost";
          input {
            uses command-forwarding;
    
            leaf media {
              type enumeration {
                enum "disk1" {
                  value 0;
                  description
                    "Boot off disk1(primary) device";
                }
                enum "disk2" {
                  value 1;
                  description
                    "Boot off disk2(backup) device";
                }
                enum "network" {
                  value 2;
                  description
                    "Network boot via PXE";
                }
                enum "usb" {
                  value 3;
                  description
                    "Boot off USB device";
                }
              }
            }
    
            leaf partition {
              type enumeration {
                enum "primary" {
                  value 0;
                  description
                    "Boot from primary partition";
                }
                enum "alternate" {
                  value 1;
                  description
                    "Boot from alternate partition";
                }
              }
            }
    
            leaf in {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 100";
                }
              }
              description
                "Number of minutes to delay before reboot operation";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-reboot
    
        rpc request-vmhost-file-cleanup {
          description
            "RE vmhost cleanup /var/tmp, /var/crash and /var/log";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-file-cleanup
    
        rpc request-vmhost-file-copy {
          description
            "Copy file from vmhost to vjunos";
          input {
            leaf node-path {
              type enumeration {
                enum "crash" {
                  value 0;
                  description
                    "Files in /var/crash";
                }
                enum "log" {
                  value 1;
                  description
                    "Files in /var/log";
                }
              }
              mandatory true;
              description
                "Copy files related to";
            }
    
            leaf from-jnode {
              type string;
              mandatory true;
              description "Host file name";
            }
    
            leaf to-vjunos {
              type string;
              mandatory true;
              description "Junos file name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-file-copy
    
        rpc request-copy-vjunos-to-jnode {
          description
            "Copy file from vjunos to vmhost";
          input {
            leaf from-vjunos {
              type string;
              mandatory true;
              description "Junos file name";
            }
    
            leaf to-jnode {
              type string;
              mandatory true;
              description "Host file name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-copy-vjunos-to-jnode
    
        rpc request-copy-jnode-to-vjunos {
          description
            "Copy file from vmhost to vjunos";
          input {
            leaf from-jnode {
              type string;
              mandatory true;
              description "Host file name";
            }
    
            leaf to-vjunos {
              type string;
              mandatory true;
              description "Junos file name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-copy-jnode-to-vjunos
    
        rpc request-vmhost-package-add {
          description
            "Add extension or upgrade package";
          input {
            leaf i40-driver {
              type empty;
              description
                "Upgrade only the i40 driver";
            }
    
            choice package-options {
              leaf-list set {
                type jt:filename;
                ordered-by user;
                description
                  "List of URLs or pathnames corresponding to packages";
              }
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
            }  // choice package-options
    
            leaf reboot {
              type empty;
              description
                "Reboot RE vmhost after adding package";
            }
    
            leaf in {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 100";
                }
              }
              description
                "Number of minutes to delay before reboot operation";
            }
    
            choice re-choice {
              leaf re0 {
                type empty;
                description
                  "Install package on RE0";
              }
              leaf re1 {
                type empty;
                description
                  "Install package on RE1";
              }
            }  // choice re-choice
    
            choice validate_choice {
              leaf no-validate {
                type empty;
                description
                  "Don't check compatibility with current configuration";
              }
            }  // choice validate_choice
    
            choice chassis {
              leaf dont-forward {
                type empty;
              }
            }  // choice chassis
    
            leaf upgrade-to-model {
              type string;
              description
                "Name of the model to upgrade to";
            }
    
            leaf unlink {
              type empty;
              description
                "Remove the package after successful installation";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-package-add
    
        rpc request-vmhost-package-delete {
          description
            "Remove extension or upgrade package";
          input {
            leaf force {
              type empty;
              description
                "Force removal of package (ignore warnings)";
            }
    
            choice package-options {
              leaf-list set {
                type string;
                ordered-by user;
                description
                  "List of package name";
              }
              leaf package-name {
                type string;
                description "Name of package";
              }
              leaf upgrade-group {
                type string;
                description
                  "Satellite upgrade group name";
              }
              leaf version {
                type string;
                description
                  "Version of satellite package";
              }
            }  // choice package-options
    
            leaf reboot {
              type empty;
              description
                "Reboot system after package delete";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-package-delete
    
        rpc abort-vmhost-in-service-upgrade {
          description
            "Abort in-service software upgrade";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc abort-vmhost-in-service-upgrade
    
        rpc request-vmhost-package-in-service-upgrade {
          description
            "In-service software upgrade";
          input {
            leaf package-name {
              type jt:filename;
              mandatory true;
              description
                "URL or pathname of package";
            }
    
            leaf no-old-master-upgrade {
              type empty;
              description
                "Don't upgrade the old master after switchover";
            }
    
            leaf reboot {
              type empty;
              description
                "Reboot RE vmhost after adding package";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-package-in-service-upgrade
    
        rpc request-vmhost-in-service-upgrade-status {
          description
            "In-Service software upgrade status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml issu-status;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-in-service-upgrade-status
    
        rpc request-vmhost-nonstop-upgrade {
          description "Nonstop software upgrade";
          input {
            leaf force-host {
              type empty;
              description
                "Force addition of host os package (ignore version check)";
            }
    
            leaf no-auto-recovery {
              type empty;
              description
                "Will not recover in case of NSSU failure";
            }
    
            choice package-options {
              case set {
              }  // case set
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
            }  // choice package-options
    
            leaf no-copy {
              type empty;
              status deprecated;
              description
                "Don't save copies of package files";
            }
    
            leaf unlink {
              type empty;
              status deprecated;
              description
                "Remove the package after successful installation";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-nonstop-upgrade
    
        rpc request-vmhost-package-validate {
          description
            "Verify package compatibility with current configuration";
          input {
            choice package-options {
              leaf package-name {
                type jt:filename;
                description
                  "URL or pathname of package";
              }
            }  // choice package-options
    
            choice chassis {
              leaf member {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32;
                }
                description
                  "Validate package on member";
              }
              leaf dont-forward {
                type empty;
              }
            }  // choice chassis
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-package-validate
    
        rpc request-vmhost-package-rollback {
          description
            "Attempt to roll back to previous set of packages";
          input {
            uses command-forwarding;
    
            leaf reboot {
              type empty;
              description
                "Reboot system after rollback";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml rollback-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-package-rollback
    
        rpc request-vmhost-jdm-package-add {
          description
            "Install fresh JDM package or upgrade package";
          input {
            leaf package-name {
              type jt:filename;
              mandatory true;
              description "JDM package name";
            }
    
            leaf force {
              type empty;
              description "Force package add";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-jdm-package-add
    
        rpc request-vmhost-jdm-package-delete {
          description
            "Remove currently installed JDM package";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-jdm-package-delete
    
        rpc request-package-vmhost-jdm-start {
          description "Start the JDM";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-vmhost-jdm-start
    
        rpc request-package-vmhost-jdm-stop {
          description "Stop the JDM";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-package-vmhost-jdm-stop
    
        rpc request-vmhost-jdm-login {
          description "Login to JDM";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-jdm-login
    
        rpc request-vmhost-snapshot {
          description
            "Create a vmhost recovery snapshot";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml vmhost-snapshot-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-snapshot
    
        rpc request-vmhost-snapshot-partition {
          description
            "Partition the target media";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml vmhost-snapshot-partition-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-snapshot-partition
    
        rpc request-vmhost-snapshot-recovery {
          description
            "Recover the primary media from snapshot";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml vmhost-snapshot-recovery-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-snapshot-recovery
    
        rpc request-vmhost-snapshot-recovery-partition {
          description
            "Partition the media before snapshot";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml vmhost-snapshot-recovery-partition-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-snapshot-recovery-partition
    
        rpc request-vmhost-zeroize {
          description
            "Erase all data, including configuration and log files";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml vmhost-zeroize-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-zeroize
    
        rpc request-vmhost-hard-disk-test {
          description
            "Run smartd self tests on hard disks";
          input {
            choice test-type {
              leaf short {
                type empty;
                description "Run short test";
              }
              leaf long {
                type empty;
                description
                  "Run SMART extended self test";
              }
              leaf show-status {
                type empty;
                description
                  "Display status of test";
              }
            }  // choice test-type
    
            leaf disk {
              type string;
              description "Name of hard disk";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml raid-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vmhost-hard-disk-test
    
        rpc request-snmp-spoof-trap {
          description
            "Generate artificial SNMP notification";
          input {
            leaf trap {
              type string;
              mandatory true;
              description
                "The name of the trap to spoof";
            }
    
            leaf variable-bindings {
              type string;
              description
                "The list of variables & values to include in the trap";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml snmp-spoof-trap-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-snmp-spoof-trap
    
        rpc request-snmp-utility-mib-set {
          description
            "Set values in utility mib objects";
          input {
            leaf object-type {
              type enumeration {
                enum "counter" {
                  value 0;
                  description
                    "Set counter value";
                }
                enum "counter64" {
                  value 1;
                  description
                    "Set 64 bit counter value";
                }
                enum "integer" {
                  value 2;
                  description
                    "Set signed integer value";
                }
                enum "unsigned-integer" {
                  value 3;
                  description
                    "Set unsigned integer value";
                }
                enum "string" {
                  value 4;
                  description "Set string value";
                }
              }
              mandatory true;
            }
    
            leaf instance {
              type string {
                length "1 .. 80";
              }
              mandatory true;
            }
    
            leaf object-value {
              type string;
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml snmp-utility-mib-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-snmp-utility-mib-set
    
        rpc request-snmp-utility-mib-clear {
          description
            "Clear values in utility mib objects";
          input {
            leaf object-type {
              type enumeration {
                enum "counter" {
                  value 0;
                  description
                    "Set counter value";
                }
                enum "counter64" {
                  value 1;
                  description
                    "Set 64 bit counter value";
                }
                enum "integer" {
                  value 2;
                  description
                    "Set signed integer value";
                }
                enum "unsigned-integer" {
                  value 3;
                  description
                    "Set unsigned integer value";
                }
                enum "string" {
                  value 4;
                  description "Set string value";
                }
              }
              mandatory true;
            }
    
            leaf instance {
              type string {
                length "1 .. 80";
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml snmp-utility-mib-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-snmp-utility-mib-clear
    
        rpc aaa-subscriber-add-service {
          description "Service activation";
          input {
            leaf session-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint64 {
                  range
                    "1 .. 18446744073709551615";
                }
              }
              mandatory true;
              description "Session id";
            }
    
            leaf service-profile {
              type string;
              mandatory true;
              description
                "Name of service-profile";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aaa-subscriber-add-service-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc aaa-subscriber-add-service
    
        rpc aaa-subscriber-delete-service {
          description "Service deactivation";
          input {
            leaf session-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint64 {
                  range
                    "1 .. 18446744073709551615";
                }
              }
              mandatory true;
              description "Session id";
            }
    
            leaf service-profile {
              type string;
              mandatory true;
              description
                "Name of dynamic-profile";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aaa-subscriber-delete-service-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc aaa-subscriber-delete-service
    
        rpc aaa-subscriber-modify-variable {
          description "Modify dynamic variable";
          input {
            leaf session-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint64 {
                  range
                    "1 .. 18446744073709551615";
                }
              }
              mandatory true;
              description "Session id";
            }
    
            leaf junos-cos-traffic-control-profile {
              type string;
              description
                "Modify $junos-cos-traffic-control-profile variable";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aaa-subscriber-modify-variable-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc aaa-subscriber-modify-variable
    
        rpc aaa-subscriber-set-parameters {
          description
            "Set AAA subscriber parameters";
          input {
            leaf session-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint64 {
                  range
                    "1 .. 18446744073709551615";
                }
              }
              mandatory true;
              description "Session id";
            }
    
            leaf provisioning-state {
              type enumeration {
                enum "none" {
                  value 0;
                  description
                    "Set provisioning to none";
                }
              }
              mandatory true;
              description "Provisioning state";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml aaa-subscriber-set-parameters-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc aaa-subscriber-set-parameters
    
        rpc replay-pending-accounting-stops {
          description
            "Replay pending acct stops to radius";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml replay-pending-accounting-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc replay-pending-accounting-stops
    
        rpc request-accounting-action {
          description
            "Accounting suspend or baseline";
          input {
            choice accounting_action {
              leaf suspend {
                type empty;
                description "Suspend accounting";
              }
              leaf baseline {
                type empty;
                description
                  "Baseline statistics";
              }
              leaf resume {
                type empty;
                description "Resume accounting";
              }
            }  // choice accounting_action
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-accounting-action
    
        rpc request-chassis-mic {
          description
            "Change Media Interface Card status";
          input {
            uses command-forwarding;
    
            leaf fpc-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description
                "Slot number of FPC that houses MIC";
            }
    
            leaf mic-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 1";
                }
              }
              mandatory true;
              description "MIC slot number";
            }
    
            leaf cmd {
              type enumeration {
                enum "offline" {
                  value 0;
                  description "Take MIC offline";
                }
                enum "online" {
                  value 1;
                  description "Bring MIC online";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-mic-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-mic
    
        rpc request-chassis-optics {
          description
            "Change linecard optics status";
          input {
            uses command-forwarding;
    
            leaf fpc-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description
                "Slot number of FPC that houses optics";
            }
    
            leaf reactivate {
              type empty;
              mandatory true;
              description
                "Reactivate linecard optics";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-optics-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-optics
    
        rpc request-chassis-pic {
          description
            "Change Physical Interface Card status";
          input {
            uses command-forwarding;
    
            leaf fpc-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description
                "Slot number of FPC that houses PIC";
            }
    
            leaf pic-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "PIC slot number";
            }
    
            leaf cmd {
              type enumeration {
                enum "offline" {
                  value 0;
                  description "Take PIC offline";
                }
                enum "online" {
                  value 1;
                  description "Bring PIC online";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-pic
    
        rpc request-chassis-port-led-switch-on {
          description "Switch on LED";
          input {
            uses command-forwarding;
    
            leaf fpc-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description
                "Slot number of FPC that houses PIC";
            }
    
            leaf pic-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "PIC slot number";
            }
    
            container port {
              leaf all-10g {
                type empty;
                description "All 10Gig ports";
              }
    
              leaf all-40g {
                type empty;
                description "All 40Gig ports";
              }
    
              leaf all-100g {
                type empty;
                description "All 100Gig ports";
              }
    
              leaf all-ports {
                type empty;
                description "All PIC ports";
              }
    
              leaf pic-port {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "0 .. 127";
                  }
                }
                description "PIC port number";
              }
            }  // container port
    
            leaf duration {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 65535";
                }
              }
              description
                "Duration (in seconds) to perform LED blinking";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-port-led-switch-on
    
        rpc request-chassis-port-led-switch-off {
          description "Switch off LED";
          input {
            uses command-forwarding;
    
            leaf fpc-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description
                "Slot number of FPC that houses PIC";
            }
    
            leaf pic-slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "PIC slot number";
            }
    
            container port {
              leaf all-10g {
                type empty;
                description "All 10Gig ports";
              }
    
              leaf all-25g {
                type empty;
                description "All 25Gig ports";
              }
    
              leaf all-40g {
                type empty;
                description "All 40Gig ports";
              }
    
              leaf all-100g {
                type empty;
                description "All 100Gig ports";
              }
    
              leaf all-ports {
                type empty;
                description "All PIC ports";
              }
    
              leaf pic-port {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint32 {
                    range "0 .. 127";
                  }
                }
                description "PIC port number";
              }
            }  // container port
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-port-led-switch-off
    
        rpc request-chassis-fpc {
          description
            "Change Flexible PIC Concentrator status";
          input {
            uses command-forwarding;
    
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "FPC slot number";
            }
    
            leaf cmd {
              type enumeration {
                enum "offline" {
                  value 0;
                  description
                    "Take FPC or PFE-instance offline";
                }
                enum "online" {
                  value 1;
                  description
                    "Bring FPC or PFE-instance online";
                }
                enum "restart" {
                  value 2;
                  description
                    "Restart FPC or PFE-instance";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-fpc-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-fpc
    
        rpc request-chassis-tfeb {
          description
            "Change Taz Forwarding Engine Board status";
          input {
            leaf cmd {
              type enumeration {
                enum "offline" {
                  value 0;
                  description
                    "Take TFEB offline";
                }
                enum "online" {
                  value 1;
                  description
                    "Bring TFEB online";
                }
                enum "restart" {
                  value 2;
                  description "Restart TFEB";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-tfeb-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-tfeb
    
        rpc request-chassis-fabric-plane {
          description
            "Change fabric plane status";
          input {
            uses command-forwarding;
    
            leaf plane {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "Fabric plane number";
            }
    
            leaf which-command {
              type enumeration {
                enum "offline" {
                  value 0;
                  description
                    "Take fabric plane offline";
                }
                enum "online" {
                  value 1;
                  description
                    "Bring fabric plane online";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-fabric-plane-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-fabric-plane
    
        rpc request-chassis-routing-engine {
          description
            "Change Routing Engine status";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-routing-engine-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-routing-engine
    
        rpc request-chassis-routing-engine-hard-disk-test {
          description
            "Run smartd self tests on hard disks";
          input {
            choice test-type {
              leaf short {
                type empty;
                description "Run short test";
              }
              leaf long {
                type empty;
                description
                  "Run SMART extended self test";
              }
              leaf show-status {
                type empty;
                description
                  "Display status of test";
              }
            }  // choice test-type
    
            leaf disk {
              type string;
              description "Name of hard disk";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml raid-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-routing-engine-hard-disk-test
    
        rpc request-chassis-routing-engine-acquire {
          description
            "Attempt to become master Routing Engine";
          input {
            uses command-forwarding;
    
            leaf no-confirm {
              type empty;
              description
                "Do not ask for confirmation";
            }
    
            leaf check {
              type empty;
              description
                "Check status of graceful switchover";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-routing-engine-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-routing-engine-acquire
    
        rpc request-chassis-routing-engine-release {
          description
            "Request that other Routing Engine become master";
          input {
            uses command-forwarding;
    
            leaf no-confirm {
              type empty;
              description
                "Do not ask for confirmation";
            }
    
            leaf check {
              type empty;
              description
                "Check status of graceful switchover";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-routing-engine-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-routing-engine-release
    
        rpc request-chassis-routing-engine-switch {
          description
            "Toggle mastership between Routing Engines";
          input {
            uses command-forwarding;
    
            leaf no-confirm {
              type empty;
              description
                "Do not ask for confirmation";
            }
    
            leaf check {
              type empty;
              description
                "Check status of graceful switchover";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-routing-engine-state;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-routing-engine-switch
    
        rpc request-chassis-cb {
          description
            "Change Control Board status";
          input {
            uses command-forwarding;
    
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "CB slot number";
            }
    
            leaf cmd {
              type enumeration {
                enum "offline" {
                  value 0;
                  description "Take CB offline";
                }
                enum "online" {
                  value 1;
                  description "Bring CB online";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-cb
    
        rpc request-chassis-fpm {
          description
            "Change craft interface status";
          input {
            uses command-forwarding;
    
            leaf cmd {
              type enumeration {
                enum "resync" {
                  value 0;
                  description
                    "Resynchronize craft interface";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml chassis-fpm;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-fpm
    
        rpc request-chassis-cluster-control-interface {
          description
            "Disable/enable HA control-link interface";
          input {
            leaf node {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "0 .. 1";
                }
              }
              mandatory true;
              description "Node identifier";
            }
    
            leaf set {
              type enumeration {
                enum "enable" {
                  value 0;
                  description
                    "Enable HA control interface";
                }
                enum "disable" {
                  value 1;
                  description
                    "Disable HA control interface";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-cluster-control-interface
    
        rpc request-chassis-cluster-failover {
          description
            "Trigger a manual failover";
          input {
            uses command-forwarding;
    
            choice redundancy-group-id {
              description
                "Redundancy-group that needs to be failovered to";
              leaf redundancy-group {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint8;
                }
                mandatory true;
                description
                  "Redundancy-group identifier";
              }
            }  // choice redundancy-group-id
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-cluster-failover
    
        rpc request-chassis-cluster-failover-reset {
          description
            "Undo the previous failover command";
          input {
            uses command-forwarding;
    
            choice redundancy-group-id {
              description
                "Redundancy-group that needs to be reset";
              leaf redundancy-group {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint8;
                }
                mandatory true;
                description
                  "Redundancy-group identifier";
              }
            }  // choice redundancy-group-id
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-cluster-failover-reset
    
        rpc request-chassis-cluster-in-service-upgrade {
          description
            "Initiate in-service-upgrade";
          input {
            leaf abort {
              type empty;
              description
                "Abort in-service-upgrade";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-cluster-in-service-upgrade
    
        rpc set-chassis-cluster-configuration-synchronize {
          description
            "Perform configuration synchronize from primary to secondary node";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc set-chassis-cluster-configuration-synchronize
    
        rpc request-chassis-ha-failover {
          description
            "Trigger a manual failover";
          input {
            choice services-redundancy-group-id {
              description
                "Services redundancy-group that needs to be failovered to";
              leaf services-redundancy-group {
                type union {
                  type string {
                    pattern "<.*>|$.*";
                  }
                  type uint16 {
                    range "1 .. 256";
                  }
                }
                mandatory true;
                description
                  "Services redundancy-group identifier";
              }
            }  // choice services-redundancy-group-id
    
            leaf peer-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 10";
                }
              }
              mandatory true;
              description
                "Node identifier of the new primary";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-chassis-ha-failover
    
        rpc request-tgm-login-fpc {
          description
            "Login to Flexible PIC Concentrator";
          input {
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "FPC slot number";
            }
    
            leaf user {
              type string;
              mandatory true;
              description
                "User on the Telephony Gateway Module";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-tgm-login-fpc
    
        rpc request-packet-capture-start {
          description "Start packet-capture ";
          input {
            leaf capture-file {
              type string {
                length "1 .. 1024";
              }
              description "Capture file name";
            }
    
            leaf size {
              type string;
              description "Maximum file size";
            }
    
            leaf maximum-capture-size {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "68 .. 10000";
                }
              }
              default "1514";
              description
                "Max packet capture length";
            }
    
            leaf bidirectional {
              type empty;
              description
                "Allow to collect bidirectional info";
            }
    
            leaf count {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "10 .. 1000000";
                }
              }
              default "100";
              description
                "Collect the number of the packet";
            }
    
            leaf source-prefix {
              type jt:ipprefix;
              description
                "Source IPv4/IPv6 address prefix";
            }
    
            leaf destination-prefix {
              type jt:ipprefix;
              description
                "Destination IPv4/IPv6 address prefix";
            }
    
            leaf interface {
              type string;
              description "Logical interface";
            }
    
            leaf protocol {
              type string;
              description
                "Match IP protocol type";
            }
    
            leaf source-port {
              type string;
              description "Source port";
            }
    
            leaf destination-port {
              type string;
              description "Destionation port";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-packet-capture-start-result;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-packet-capture-start
    
        rpc request-packet-capture-stop {
          description "Stop packet-capture";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml request-packet-capture-stop-result;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-packet-capture-stop
    
        rpc request-wlan-access-point-restart {
          description "Restart operation";
          input {
            leaf wlan-access-point-name {
              type string;
              mandatory true;
              description
                "Name of the access point";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-wlan-access-point-restart
    
        rpc request-wlan-access-point-reset-interface {
          description
            "Reset to factory settings for wlan interface";
          input {
            leaf wlan-interface-name {
              type string;
              mandatory true;
              description
                "Name of wlan interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-wlan-access-point-reset-interface
    
        rpc request-wlan-access-point-packet-capture-start {
          description "Start the packet capture";
          input {
            leaf wlan-access-point-name {
              type string;
              mandatory true;
              description
                "Name of the access point";
            }
    
            leaf interface {
              type enumeration {
                enum "Bridge" {
                  value 0;
                  description
                    "Bridge interface on the access point";
                }
                enum "Ethernet" {
                  value 1;
                  description
                    "Ethernet interface on the access point";
                }
                enum "Radio1VAP0" {
                  value 2;
                  description
                    "Radio 1 VAP 0 interface on the access point";
                }
                enum "Radio1VAP1" {
                  value 3;
                  description
                    "Radio 1 VAP 1 interface on the access point";
                }
                enum "Radio1VAP2" {
                  value 4;
                  description
                    "Radio 1 VAP 2 interface on the access point";
                }
                enum "Radio1VAP3" {
                  value 5;
                  description
                    "Radio 1 VAP 3 interface on the access point";
                }
                enum "Radio1VAP4" {
                  value 6;
                  description
                    "Radio 1 VAP 4 interface on the access point";
                }
                enum "Radio1VAP5" {
                  value 7;
                  description
                    "Radio 1 VAP 5 interface on the access point";
                }
                enum "Radio1VAP6" {
                  value 8;
                  description
                    "Radio 1 VAP 6 interface on the access point";
                }
                enum "Radio1VAP7" {
                  value 9;
                  description
                    "Radio 1 VAP 7 interface on the access point";
                }
                enum "Radio2VAP0" {
                  value 10;
                  description
                    "Radio 2 VAP 0 interface on the access point";
                }
                enum "Radio2VAP1" {
                  value 11;
                  description
                    "Radio 2 VAP 1 interface on the access point";
                }
                enum "Radio2VAP2" {
                  value 12;
                  description
                    "Radio 2 VAP 2 interface on the access point";
                }
                enum "Radio2VAP3" {
                  value 13;
                  description
                    "Radio 2 VAP 3 interface on the access point";
                }
                enum "Radio2VAP4" {
                  value 14;
                  description
                    "Radio 2 VAP 4 interface on the access point";
                }
                enum "Radio2VAP5" {
                  value 15;
                  description
                    "Radio 2 VAP 5 interface on the access point";
                }
                enum "Radio2VAP6" {
                  value 16;
                  description
                    "Radio 2 VAP 6 interface on the access point";
                }
                enum "Radio2VAP7" {
                  value 17;
                  description
                    "Radio 2 VAP 7 interface on the access point";
                }
              }
              mandatory true;
              description
                "Name of the interface";
            }
    
            leaf duration {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "10 .. 3600";
                }
              }
              units "seconds";
              default "60";
              description "Capture duration";
            }
    
            leaf filename {
              type string;
              description
                "Name of the captured file";
            }
    
            leaf size {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "64 .. 4096";
                }
              }
              units "kilobytes";
              default "1024";
              description "Maximum file size";
            }
    
            leaf promiscuous {
              type empty;
              description
                "Enable promiscuous mode";
            }
    
            leaf filter-mac {
              type jt:mac-addr;
              description
                "MAC address of the interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml wlan-access-point-packet-capture-start;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-wlan-access-point-packet-capture-start
    
        rpc request-wlan-access-point-packet-capture-stop {
          description "Stop the packet capture";
          input {
            leaf wlan-access-point-name {
              type string;
              mandatory true;
              description
                "Name of the access point";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml wlan-access-point-packet-capture-stop;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-wlan-access-point-packet-capture-stop
    
        rpc activate-wireless-modem {
          description "Activate the modem";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc activate-wireless-modem
    
        rpc request-modem-wireless-activate-iota {
          description
            "Internet Over The Air Activation";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-modem-wireless-activate-iota
    
        rpc request-modem-wireless-activate-otasp {
          description
            "Over The Air Service Provisioning";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf dial-string {
              type string;
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-modem-wireless-activate-otasp
    
        rpc request-modem-wireless-activate-manual {
          description "Manual Activation";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf msl {
              type string {
                length "1 .. 6";
              }
              mandatory true;
              description "Master Subsidy Lock";
            }
    
            leaf mdn {
              type string {
                length "1 .. 10";
              }
              mandatory true;
              description
                "Mobile Dictonary Number";
            }
    
            leaf imsi {
              type string {
                length "1 .. 15";
              }
              mandatory true;
              description
                "International Mobile Station Identity";
            }
    
            leaf sid {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 32767";
                }
              }
              description
                "System identification";
            }
    
            leaf nid {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 65535";
                }
              }
              description
                "Network identification";
            }
    
            leaf sip-user-id {
              type string;
              description "SIP user ID";
            }
    
            leaf sip-password {
              type string;
              description "SIP password";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-modem-wireless-activate-manual
    
        rpc request-gsm-sim-unlock {
          description "Unlock SIM";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf pin {
              type string {
                length "4 .. 8";
              }
              mandatory true;
              description
                "SIM unlock code (PIN)";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-gsm-sim-unlock
    
        rpc request-gsm-sim-unblock {
          description "Unblock SIM";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf puk {
              type string {
                length "8";
              }
              mandatory true;
              description
                "SIM unblock code (PUK)";
            }
    
            leaf pin {
              type string {
                length "4 .. 8";
              }
              mandatory true;
              description
                "New SIM unlock code (PIN) to be set";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-gsm-sim-unblock
    
        rpc request-gsm-sim-lock {
          description
            "Enable or disable SIM lock";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf pin {
              type string {
                length "4 .. 8";
              }
              mandatory true;
              description
                "SIM unlock code (PIN)";
            }
    
            leaf enable-disable {
              type enumeration {
                enum "enable" {
                  value 0;
                  description "Enable SIM lock";
                }
                enum "disable" {
                  value 1;
                  description "Disable SIM lock";
                }
              }
              mandatory true;
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-gsm-sim-lock
    
        rpc request-gsm-change-pin {
          description "Change PIN";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf old-pin {
              type string {
                length "4 .. 8";
              }
              mandatory true;
              description
                "Current SIM unlock code (PIN)";
            }
    
            leaf new-pin {
              type string {
                length "4 .. 8";
              }
              mandatory true;
              description
                "New SIM unlock code (PIN) to be set";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-gsm-change-pin
    
        rpc request-fota {
          description
            "Enable or disable FOTA upgrade";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf fota-toggle {
              type enumeration {
                enum "enable" {
                  value 0;
                  description "Enable FOTA";
                }
                enum "disable" {
                  value 1;
                  description "Disable FOTA";
                }
              }
              mandatory true;
              description "Enable/Disable FOTA";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-fota
    
        rpc request-dns-conn-monitor {
          description
            "Enable or disable DNS connectivity monitor";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf dns-conn-monitor-toggle {
              type enumeration {
                enum "enable" {
                  value 0;
                  description
                    "Enable DNS connectivity";
                }
                enum "disable" {
                  value 1;
                  description
                    "Disable DNS connectivity";
                }
              }
              mandatory true;
              description
                "Enable/Disable DNS connectivity";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-dns-conn-monitor
    
        rpc request-fota-upgrade {
          description
            "Upgrade FOTA modem firmware";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-fota-upgrade
    
        rpc request-gsm-create-profile {
          description "Create APN profile";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32;
              }
              mandatory true;
              description "SIM slot number";
            }
    
            leaf profile-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 16";
                }
              }
              mandatory true;
              description "Profile Id";
            }
    
            leaf sip-user-id {
              type string {
                length "1 .. 63";
              }
              description "SIP User ID";
            }
    
            leaf sip-password {
              type string {
                length "1 .. 63";
              }
              description "SIP Password";
            }
    
            leaf access-point-name {
              type string {
                length "1 .. 63";
              }
              mandatory true;
              description
                "Access Point Name (APN)";
            }
    
            leaf authentication-method {
              type enumeration {
                enum "none" {
                  value 0;
                  description
                    "None Authentication Protocol";
                }
                enum "pap" {
                  value 1;
                  description
                    "Password Authentication Protocol";
                }
                enum "chap" {
                  value 2;
                  description
                    "Challenge Handshake Authentication Protocol";
                }
              }
              description
                "Authentication method";
            }
    
            leaf ip-version {
              type enumeration {
                enum "ipv4v6" {
                  value 0;
                  description
                    "Both IPv4 and IPv6";
                }
                enum "ipv4" {
                  value 1;
                  description "IPv4 Only";
                }
                enum "ipv6" {
                  value 2;
                  description "IPv6 Only";
                }
              }
              description "IP Version";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-gsm-create-profile
    
        rpc request-gsm-delete-profile {
          description "Delete APN profile";
          input {
            leaf interface-name {
              type string;
              mandatory true;
              description
                "Name of physical interface";
            }
    
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32;
              }
              mandatory true;
              description "SIM slot number";
            }
    
            leaf profile-id {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 16";
                }
              }
              mandatory true;
              description "Profile Id";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-gsm-delete-profile
    
        rpc request-wireless-wan-adapter-firmware-upgrade-auto {
          description
            "Automatically upgrade the firmware";
          input {
            leaf apdapter-name {
              type string;
              mandatory true;
              description "Name of the adapter";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-wireless-wan-adapter-firmware-upgrade-auto
    
        rpc request-wireless-wan-adapter-firmware-upgrade-manual {
          description
            "Manually upgrade the firmware";
          input {
            leaf apdapter-name {
              type string;
              mandatory true;
              description "Name of the adapter";
            }
    
            leaf url {
              type string;
              mandatory true;
              description
                "Manually specified HTTP URL firmware";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-wireless-wan-adapter-firmware-upgrade-manual
    
        rpc request-wan-acceleration-login-fpc {
          description
            "Login to Flexible PIC Concentrator";
          input {
            leaf slot {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              mandatory true;
              description "FPC slot number";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-wan-acceleration-login-fpc
    
        rpc request-protection-group-erps-clear {
          description
            "Clears active local commands";
          input {
            leaf group-name {
              type string {
                length "1 .. 32";
              }
              description
                "Name of protection group";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-protection-group-erps-clear
    
        rpc request-protection-group-erps-manual-switch {
          description
            "Manual switch data path to use protection path";
          input {
            leaf interface-name {
              type union {
                type jt:interface-wildcard;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of interface";
            }
    
            leaf group-name {
              type string {
                length "1 .. 32";
              }
              description
                "Name of protection group";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-protection-group-erps-manual-switch
    
        rpc request-protection-group-erps-force-switch {
          description
            "Force switch data path to use protection path";
          input {
            leaf interface-name {
              type union {
                type jt:interface-wildcard;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              mandatory true;
              description "Name of interface";
            }
    
            leaf group-name {
              type string {
                length "1 .. 32";
              }
              description
                "Name of protection group";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-protection-group-erps-force-switch
    
        rpc get-flight-recorder-information {
          description
            "Debug high cpu issues and scheduler slips";
          input {
            leaf disable {
              type empty;
              description
                "Disable the flight recorder";
            }
    
            leaf logical-system {
              type empty;
              description
                "Enable logical systems";
            }
    
            leaf cpu-threshold {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 400";
                }
              }
              description
                "Threshold over which the collection is triggered";
            }
    
            leaf polling-frequency {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "5 .. 100";
                }
              }
              description
                "Frequency of polling for high cpu";
            }
    
            leaf backoff-duration {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "10 .. 1000";
                }
              }
              description
                "Time to wait between two snapshots";
            }
    
            leaf collect-core {
              type empty;
              description
                "Whether to take a running core with every snapshot";
            }
    
            leaf num-snapshots {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 20";
                }
              }
              description
                "How many snapshots to collect before quitting";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml flight-recorder-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc get-flight-recorder-information
    
        rpc request-l2ckt-switchover {
          description
            "Perform l2circuit switchover";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf neighbor {
              type jt:ipv4addr;
              mandatory true;
              description
                "IP address of neighbor";
            }
    
            leaf virtual-circuit-id {
              type string;
              default "all";
              description "Layer 2 circuit ID";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-l2ckt-switchover
    
        rpc request-vpls-switchover {
          description
            "Perform LDP VPLS pseudowire switchover";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf instance {
              type string;
              mandatory true;
              description
                "Name of VPLS instance";
            }
    
            leaf neighbor {
              type jt:ipv4addr;
              mandatory true;
              description
                "IP address of neighbor";
            }
    
            leaf vpls-id {
              type string;
              default "all";
              description "Layer 2 circuit ID";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-vpls-switchover
    
        rpc request-mpls-lsp-autobandwidth-adjust {
          description
            "Request LSP autobandwidth adjustment now";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf regex {
              type string;
              description
                "Regular expression for LSP names to match";
            }
    
            leaf instance {
              type string;
              description
                "Name of routing instance";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-mpls-lsp-autobandwidth-adjust
    
        rpc request-mpls-container-lsp-autobandwidth-adjust {
          description
            "Request LSP autobandwidth adjustment now";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf regex {
              type string;
              description
                "Regular expression for LSP names to match";
            }
    
            leaf instance {
              type string;
              description
                "Name of routing instance";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-mpls-container-lsp-autobandwidth-adjust
    
        rpc request-mpls-container-lsp-normalization {
          description
            "Request container LSP normalization now";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf regex {
              type string;
              description
                "Regular expression for LSP names to match";
            }
    
            leaf instance {
              type string;
              description
                "Name of routing instance";
            }
    
            leaf bandwidth {
              type union {
                type uint64;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description
                "Use the bandwidth for manual normalization";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-mpls-container-lsp-normalization
    
        rpc request-mpls-lable-range-reserve {
          description
            "Request label space repartition now";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-mpls-lable-range-reserve
    
        rpc pim-multicast-tunnel {
          description "Request PIM MT rebalance";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system, or 'all'";
              }
            }  // choice daemon-select
    
            leaf instance {
              type string;
              description "Name of instance";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc pim-multicast-tunnel
    
        rpc request-validation-policy {
          description
            "Request policy reevaluation";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf record {
              type jt:ipprefix;
              description "Filter by record";
            }
    
            leaf instance {
              type string;
              description
                "Name of route validation instance";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml rv-request-policy-information;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-validation-policy
    
        rpc request-path-computation-client-main-pce {
          description "Request new active PCE";
          input {
            leaf pce-id {
              type string;
              mandatory true;
              description
                "PCE ID from configuration";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-path-computation-client-main-pce
    
        rpc request-path-computation-retry-delegation {
          description "Request retry delegation";
          input {
            leaf lsp-name {
              type string;
              mandatory true;
              description
                "Name of static label-switched-path";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-path-computation-retry-delegation
    
        rpc pppoe-connect-session {
          description "PPPoE session connect";
          input {
            leaf interface {
              type union {
                type jt:interface-name;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description
                "Enter PPPoE interface name";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc pppoe-connect-session
    
        rpc pppoe-diconnect-session {
          description "PPPoE session disconnect";
          input {
            leaf interface {
              type string;
              description
                "Enter PPPoE interface name or session id";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc pppoe-diconnect-session
    
        grouping command-forwarding {
          choice chassis-selector {
            leaf all-chassis {
              type empty;
              description "All chassis";
            }
            leaf all-lcc {
              type empty;
              description "All LCC chassis";
            }
            leaf scc {
              type empty;
              description "SCC";
            }
            leaf sfc {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description "SFC";
            }
            leaf lcc {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description "Specific LCC";
            }
            leaf node {
              type string;
              description "Specific node";
            }
            leaf bsys {
              type empty;
              description "Base system";
            }
            leaf gnf {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 10";
                }
              }
              description
                "Specific guest network function";
            }
            leaf all-gnfs {
              type empty;
              description
                "All guest network functions";
            }
            leaf all-system {
              type empty;
              description
                "All system (BSYS and GNFs)";
            }
            leaf server {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 1";
                }
              }
              description "Specific server slot";
            }
            leaf all-servers {
              type empty;
              description "All servers";
            }
            leaf vnf {
              type string;
              description
                "Specific virtual-network-function";
            }
            leaf all-vnfs {
              type empty;
              description
                "All virtual-network-functions";
            }
          }  // choice chassis-selector
    
          choice re-selector {
            leaf re0 {
              type empty;
              description "RE0";
            }
            leaf re1 {
              type empty;
              description "RE1";
            }
            leaf routing-engine {
              type enumeration {
                enum "local" {
                  value 0;
                  description
                    "Local routing engine";
                }
                enum "other" {
                  value 1;
                  description
                    "Other routing engine";
                }
                enum "master" {
                  value 2;
                  description
                    "Master routing engine";
                }
                enum "backup" {
                  value 3;
                  description
                    "Backup routing engine";
                }
                enum "both" {
                  value 4;
                  description
                    "Both routing engines";
                }
              }
              description
                "Specific routing engine";
            }
          }  // choice re-selector
    
          choice lr-selector {
            leaf logical-system {
              type string;
              description
                "Name of logical system, or 'all'";
            }
          }  // choice lr-selector
    
          choice tenant-selector {
            leaf tenant {
              type string;
              description
                "Name of tenant, or 'all'";
            }
          }  // choice tenant-selector
    
          choice vc-selector {
            leaf local {
              type empty;
              description
                "Local virtual chassis member";
            }
            leaf all-members {
              type empty;
              description
                "All virtual chassis members";
            }
            leaf member {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description
                "Specific virtual chassis member";
            }
          }  // choice vc-selector
        }  // grouping command-forwarding
      }  // module junos-es-rpc-request
    

© 2023 YumaWorks, Inc. All rights reserved.