NETCONF/Yang Object type suggestion

i have one object foo used to state data of device.

With this object i need to give support for different types of state data based on input given to foo.

e.g. foo a --> status of a

   foo b --> status of b

   foo c --> status of c

above foo object is define in YANG file as per below,

    //leaf foo{

        //  config false;

        //  type string;

        //  description 

        //      "leaf contain the foo related information based on input.";


        //}

so my question is,

How can i define this kind of object in my YANG file ?

Which takes input argument and then give status.

As per i know only edit-config allows user to give input argument for config data types but for state data type,

Is there any way to give input argument to read status based ?

NOTE: I can accommodate this all objects individually in yang file but any other way is possible ?

e.g

    //leaf foo a{

        //  config false;

        //      type string;

        //  description 

        //  "leaf contain the foo related information a.";


        //}

Please suggest your view.

Based on the description of your use case, I believe a list definition is the most appropriate. An example is as follows:

list states {
  config false;
  key name;
  leaf name {
    type string;
  }
  leaf foo {
    type string;
  }
}

You will supply the list key as the argument in order to query its status.