tailf-webui

This module defines the Tail-f Web UI data model

  • Version: 2013-03-07

    tailf-webui@2013-03-07


    
      module tailf-webui {
    
        yang-version 1;
    
        namespace "http://tail-f.com/ns/webui";
    
        prefix webui;
    
        import ietf-netconf-acm {
          prefix nacm;
        }
        import tailf-common {
          prefix tailf;
        }
    
        organization "Tail-f Systems";
    
        description
          "This module defines the Tail-f Web UI data model";
    
        revision "2013-03-07" {
          description
            "Initial release containing graphical panel and data storage support";
        }
    
    
        container webui {
          tailf:info "Web UI specific configuration";
          container schematics {
            tailf:info "Diagrams and reusable assets for the same";
            container panels {
              tailf:info "For drawing diagrams";
              list panel {
                tailf:info "Diagrams containing images and other components";
                key "name";
                leaf name {
                  tailf:info "A unique name for the panel";
                  type string;
                }
    
                container properties {
                  tailf:info "Optional panel properties";
                  leaf title {
                    tailf:info "The panel heading";
                    type string;
                  }
    
                  leaf description {
                    tailf:info "What this panel is about";
                    type string;
                  }
    
                  leaf width {
                    tailf:info "Width in pixels";
                    type uint16;
                  }
    
                  leaf height {
                    tailf:info "Height in pixels";
                    type uint16;
                  }
                }  // container properties
    
                container components {
                  tailf:info "";
                  list component {
                    key "id";
                    leaf id {
                      tailf:info "Identifies this component uniquely.";
                      type string;
                    }
    
                    container properties {
                      leaf top {
                        tailf:info "Top-to-bottom coordinate in pixels";
                        type uint16;
                      }
    
                      leaf left {
                        tailf:info "Left-to-right coordinate in pixels";
                        type uint16;
                      }
    
                      leaf width {
                        tailf:info "Width in pixels";
                        type uint16;
                      }
    
                      leaf height {
                        tailf:info "Height in pixels";
                        type uint16;
                      }
    
                      leaf z-index {
                        tailf:info "How the components are stacked on the z-axis";
                        type int16;
                      }
    
                      choice component-type {
                        mandatory true;
                        container image {
                          leaf image {
                            tailf:info "The image to display";
                            type leafref {
                              path "/webui/schematics/assets/asset/name";
                            }
                            mandatory true;
                          }
                        }  // container image
                        container link {
                          leaf text {
                            tailf:info "The link text";
                            type string;
                          }
    
                          leaf link {
                            tailf:info "The link itself";
                            type string;
                            mandatory true;
                          }
                        }  // container link
                      }  // choice component-type
                    }  // container properties
                  }  // list component
                }  // container components
              }  // list panel
            }  // container panels
    
            container assets {
              tailf:info "Sharable assets such as images and movies";
              list asset {
                key "name";
                leaf name {
                  tailf:info "A unique name for the asset";
                  type string;
                }
    
                choice asset-type {
                  case image {
                    leaf base-64-image {
                      tailf:info "Base64 encoded image";
                      type string;
                      mandatory true;
                    }
    
                    leaf type {
                      tailf:info "Image file format";
                      type enumeration {
                        enum "jpeg" {
                          value 0;
                        }
                        enum "png" {
                          value 1;
                        }
                        enum "gif" {
                          value 2;
                        }
                      }
                      mandatory true;
                    }
                  }  // case image
                }  // choice asset-type
              }  // list asset
            }  // container assets
          }  // container schematics
    
          container data-stores {
            tailf:info "Persistent data-stores used by the Web UI";
            list user-profile {
              nacm:default-deny-all;
              tailf:info "Stores profiles for specific users in JSON format";
              key "username";
              leaf username {
                tailf:info "Who the configuration belongs to";
                type string;
              }
    
              list profile {
                tailf:info "User profile settings";
                key "key";
                uses base-key-value-store;
              }  // list profile
    
              list saved-query {
                tailf:info "Saved search queries";
                key "list-path name";
                uses base-saved-query-store;
              }  // list saved-query
            }  // list user-profile
    
            list data-store {
              tailf:info "Stores ad-hoc configuration";
              key "key";
              uses base-key-value-store;
            }  // list data-store
    
            list saved-query {
              tailf:info "Queries that have been saved globally";
              key "list-path name";
              uses base-saved-query-store;
            }  // list saved-query
          }  // container data-stores
        }  // container webui
    
        grouping base-key-value-store {
          leaf key {
            tailf:info "Identifies a unique entry in the store";
            type string;
          }
    
          leaf value {
            tailf:info "String based blob, for example JSON or base64 encoded string";
            type string;
          }
        }  // grouping base-key-value-store
    
        grouping base-saved-query-store {
          leaf list-path {
            tailf:info "Identifies a unique list instance";
            type string;
          }
    
          leaf name {
            tailf:info "The name of the saved query";
            type string;
          }
    
          leaf serialized-query {
            tailf:info "Web UI query serialized as JSON";
            type string;
            mandatory true;
          }
        }  // grouping base-saved-query-store
      }  // module tailf-webui
    

© 2023 YumaWorks, Inc. All rights reserved.