module rem-vm-pool {
    yang-version 1.1;
    namespace "http://metaswitch.com/yang/tas-vm-build/rem-vm-pool";
    prefix "rem-vm-pool";
    import vm-types {
        prefix "vmt";
        revision-date 2019-11-29;
    }
    import extensions {
        prefix "yangdoc";
        revision-date 2020-12-02;
    }
    organization "Metaswitch Networks";
    contact "rvt-schemas@metaswitch.com";
    description "Rhino Element Manager (REM) virtual machine pool configuration schema.";
    revision 2020-06-01 {
        description
            "Initial revision";
        reference
            "Metaswitch Deployment Definition Guide";
    }
    grouping rem-virtual-machine-pool {
        leaf deployment-id {
            type vmt:deployment-id-type;
            mandatory true;
            description "The deployment identifier. Used to form a unique VM identifier within the
                         VM host.";
        }
        leaf site-id {
            type vmt:site-id-type;
            mandatory true;
            description "Site ID for the site that this VM pool is a part of.";
        }
        leaf node-type-suffix {
            type vmt:node-type-suffix-type;
            default "";
            description "Suffix to add to the node type when deriving the group identifier. Should
                         normally be left blank.";
        }
        list rem-auth {
            key "username";
            min-elements 1;
            uses vmt:rem-auth-grouping;
            description "List of REM users and their plain text passwords.";
            yangdoc:change-impact "converges";
        }
        list virtual-machines {
            key "vm-id";
            leaf vm-id {
                type string;
                mandatory true;
                description "The unique virtual machine identifier.";
            }
            description "Configured virtual machines.";
        }
        description "Rhino Element Manager (REM) virtual machine pool.";
    }
}