yumaworks-virtual-server

This module contains configuration and monitoring information for Virtual Servers within the netconfd-pro Host Server. The YANG...

  • Version: 2022-01-19

    yumaworks-virtual-server@2022-01-19


    
      module yumaworks-virtual-server {
    
        yang-version 1.1;
    
        namespace
          "urn:yumaworks:params:xml:ns:yang:yumaworks-virtual-server";
    
        prefix yvs;
    
        import ietf-inet-types {
          prefix inet;
        }
        import netconfd-pro {
          prefix ndpro;
        }
        import yumaworks-types {
          prefix ywt;
        }
        import yumaworks-schema-mount {
          prefix ysm;
        }
    
        organization "YumaWorks, Inc.";
    
        contact
          "Support <support@yumaworks.com>";
    
        description
          "This module contains configuration and monitoring information
         for Virtual Servers within the netconfd-pro Host Server.
    
         The YANG Schema Mount feature in RFC 8528 is supported as the
         framework for virtual servers. The yumaworks-schema-mount
         module defines the configuration parameters.
    
         Copyright (c) 2022, YumaWorks, Inc. All rights reserved.
    
         Redistribution and use in source and binary forms, with or
         without modification, is permitted pursuant to, and subject
         to the license terms contained in, the BSD 3-Clause License
         http://opensource.org/licenses/BSD-3-Clause.
       ";
    
        revision "2022-01-19" {
          description "Initial version";
        }
    
    
        typedef vs-protocol {
          type enumeration {
            enum "netconf" {
              value 0;
              description
                "Identifies the NETCONF Protocol";
              reference
                "RFC 6241";
    
            }
            enum "restconf" {
              value 1;
              description
                "Identifies the RESTCONF Protocol";
              reference
                "RFC 8040";
    
            }
            enum "yp-gnmi" {
              value 2;
              description
                "Identifies the yp-gNMI Protocol";
            }
            enum "yp-grpc" {
              value 3;
              description
                "Identifies the yp-gRPC Protocol";
            }
            enum "yp-shell" {
              value 4;
              description
                "Identifies the yp-shell Protocol";
            }
          }
          description
            "The protocol used in an endpoint in the Virtual Server";
        }
    
        container virtual-servers {
          list virtual-server {
            key "name";
            leaf name {
              type ywt:NcxNumName;
              description
                "An administrative name for this entry.";
            }
    
            leaf mp-module {
              type yang:yang-identifier;
              description
                "The module name that defines the mount-label";
            }
    
            leaf mp-label {
              type yang:yang-identifier;
              description
                "The label that matches the `mount-point` extension
    argument value";
            }
    
            leaf vs-root {
              type instance-identifier;
              mandatory true;
              description
                "Specifies the data node that will be the mount point.
    This path must identify a YANG container or list
    that contains a mount-point label that matches
    the 'mount-point-module' and 'mount-point-label'
    fields in the vs-template entry used in this
    VS Instance.";
            }
    
            list vs-bind {
              key "vs-protocol";
              leaf vs-protocol {
                type vs-protocol;
                description
                  "The protocol to use for this endpoint.";
              }
    
              choice vs-transport {
                mandatory true;
                case vs-gen {
                  leaf vs-address {
                    type inet:ip-address;
                    description
                      "The IP address to use for this endpoint.";
                  }
    
                  leaf vs-port {
                    type inet:port-number;
                    description
                      "The TCP or UDP port number to use for this endpoint.";
                  }
                }  // case vs-gen
    
                case vs-tls {
                  leaf netconf-tls-address {
                    type inet:ip-address;
                    default "0.0.0.0";
                    description
                      "Specifies the IP address to listen on for NETCONF
    over TLS messages.";
                    reference
                      "RFC 7589: NETCONF over TLS";
    
                  }
    
                  leaf netconf-tls-certificate {
                    type string {
                      length "1 .. max";
                    }
                    default
                      "$HOME/.ssl/netconfd-pro.crt";
                    description
                      "Contains the file path specification
    for the file containing the server SSL certificate,
    used for the NETCONF over TLS protocol.";
                  }
    
                  leaf netconf-tls-key {
                    type string {
                      length "1 .. max";
                    }
                    default
                      "$HOME/.ssl/netconfd-pro.key";
                    description
                      "Contains the file path specification
    for the file containing the server SSL key,
    used for the NETCONF over TLS protocol.";
                  }
    
                  leaf netconf-tls-port {
                    type inet:port-number;
                    default "6513";
                    description
                      "Specifies the TCP port to listen for NETCONF over TLS
    messages.";
                    reference
                      "RFC 7589: NETCONF over TLS";
    
                  }
    
                  leaf netconf-tls-trust-store {
                    type string {
                      length "1 .. max";
                    }
                    default
                      "$HOME/.ssl/trust-store.pem";
                    description
                      "Contains the file path specification
    for the file containing the server SSL trust-store,
    or the path specification for the directory to use
    for finding trusted certificates. If the default value
    is used and the file is not found, then the default
    directory location '/etc/ssl/certs' will be used.";
                  }
                }  // case vs-tls
              }  // choice vs-transport
            }  // list vs-bind
          }  // list virtual-server
        }  // container virtual-servers
      }  // module yumaworks-virtual-server
    

© 2023 YumaWorks, Inc. All rights reserved.