yumaworks-yp-grpc

YumaPro gRPC Application message definitions. Copyright (c) 2014 - 2023 YumaWorks, Inc. All rights reserved. Redistribution an...

  • Version: 2023-08-04

    yumaworks-yp-grpc@2023-08-04


    
      module yumaworks-yp-grpc {
    
        yang-version 1.1;
    
        namespace
          "http://yumaworks.com/ns/yumaworks-yp-grpc";
    
        prefix ypgrpc;
    
        import ietf-yang-structure-ext {
          prefix sx;
        }
        import yumaworks-ycontrol {
          prefix yctl;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import ietf-inet-types {
          prefix inet;
        }
    
        organization "YumaWorks, Inc.";
    
        contact
          "Support <support@yumaworks.com>";
    
        description
          "YumaPro gRPC Application message definitions.
    
         Copyright (c) 2014 - 2023 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 "2023-08-04" {
          description
            "22.10T-11: Change CLI container to sx:structure";
        }
    
        revision "2021-08-23" {
          description "Initial version";
        }
    
        sx:augment-structure "/yctl:ycontrol/yctl:message-payload/yctl:payload/yctl:payload";
    
        augment /yctl:ycontrol/yctl:message-payload/yctl:payload/yctl:payload {
          container yp-grpc {
            choice message-type {
              mandatory true;
              leaf register-request {
                type empty;
                description
                  "Message type: subsys-request;
                   Purpose: register the YP-gRPC subsystem
                   Expected Response Message: ok or error";
              }
              container capability-ad-event {
                description
                  "Subsystem event to advertise all the gRPC
                 available and active capabilities during
                 the registration time.
                 Type: subsys-event
                 Expected Response Message: none";
                leaf name {
                  type yang:yang-identifier;
                  mandatory true;
                  description
                    "Name of the gRCP server.";
                }
    
                leaf address {
                  type inet:host;
                  mandatory true;
                  description
                    "IP Address or host name for the gRPC server.
                   The value returned is implementation specific
                   (e.g., hostname, IPv4 address, IPv6 address)";
                }
    
                leaf port {
                  type inet:port-number;
                  description
                    "TCP port number for the gRPC server.
                   If not present then the default port for
                   the protocol will be used.";
                }
    
                leaf-list proto {
                  type string;
                  description
                    "The list of proto files that gRPC server supports.";
                }
    
                list service {
                  key "name";
                  description
                    "List of gRPC Services supported by the gRPC server and
                   related information.";
                  leaf name {
                    type string;
                    description
                      "Name of the gRCP Service associated with this list entry.";
                  }
    
                  list method {
                    key "name";
                    description
                      "The list of methods supported by the gRPC server and
                     related information.";
                    leaf name {
                      type string;
                      description
                        "Name of the Service Method associated with this list entry.";
                    }
    
                    leaf client-streaming {
                      type boolean;
                      description
                        "True if the client supports streaming for this method
                       FALSE otherwise.";
                    }
    
                    leaf server-streaming {
                      type boolean;
                      description
                        "True if the server supports streaming for this method.
                       FALSE otherwise.";
                    }
                  }  // list method
                }  // list service
              }  // container capability-ad-event
              container open-stream-event {
                description
                  "Subsystem event to advertise a new gRPC
                 server or client stream(s).
                 Type: subsys-event
                 Expected Response Message: none";
                list server-stream {
                  key "name";
                  description
                    "Contains a list of open server gRPC streams.";
                  leaf name {
                    type string;
                    description
                      "Name of a gRCP server stream.";
                  }
    
                  leaf location {
                    type inet:uri;
                    mandatory true;
                    description
                      "Contains a URL that represents the RPC that uses
                     this client stream.";
                  }
                }  // list server-stream
    
                list client-stream {
                  key "name";
                  description
                    "Contains a list of open client gRPC streams.";
                  leaf name {
                    type string;
                    description
                      "Name of a gRCP client stream.";
                  }
    
                  leaf location {
                    type inet:uri;
                    mandatory true;
                    description
                      "Contains a URL that represents the RPC that uses
                     this server stream.";
                  }
                }  // list client-stream
              }  // container open-stream-event
              container close-stream-event {
                description
                  "Subsystem event to advertise that the gRPC server or
                 client stream was closed.
                 Type: subsys-event
                 Expected Response Message: none";
                leaf-list server-stream {
                  type string;
                  description
                    "The list of closed server gRPC streams.";
                }
    
                leaf-list client-stream {
                  type string;
                  description
                    "The list of closed client gRPC streams.";
                }
              }  // container close-stream-event
            }  // choice message-type
          }  // container yp-grpc
        }
      }  // module yumaworks-yp-grpc
    

© 2023 YumaWorks, Inc. All rights reserved.