module demo1 {
    yang-version 1;
    namespace "namespace1";
    prefix "demo1";
    revision "2013-07-15";
    container device {
        list device {
            key deviceid;
            leaf deviceid {
                type string;
            }
    	    leaf Customs-supervisor {
        	type string;
        	description "name of the customs-supervisor.";
    	    }

    	    leaf Merchandiser-supervisor {
        	type string;
        	description "name of merchandiser-supervisor";
    	    }

    	    list Material-supervisor {
        	key "name";
        	leaf name {
            		type string;
            		description "name of logistics-supervisor";
        	}

        	leaf departmentId {
            		type string;
            		description "name of department";
        	}
    	    }

    	    container Purchasing-supervisor {
        	leaf purchasing-specialist {
            		type string;
            		description "name of the purchasing-specialist person";
        	}

        	leaf-list support {
            		type string;
            		description "name of the support person";
        	}
    	    }

    	    leaf-list Warehouse-supervisor {
        	type string;
        	description "name of the warehouse-supervisor's";
    	    }

    	    leaf Trading-supervisor {
        	type string;
        	description "name of the trading-supervisor";
    	    }

    	    leaf-list Employee-id {
        	type string;
        	description "list of the employee id";
    	    }
        }
    }
}
