vapi metadata metamodel: generic instantiation

The generic_instantiation structure describes the type information of a typed element when the type is an instantiation of one of the generic types provided by the infrastructure.

Representations:

{
    "element_type"{
        "builtin_type""VOID",
        "category""BUILTIN",
        "generic_instantiation"{
            "element_type"{
                "builtin_type""VOID",
                "category""BUILTIN",
                "generic_instantiation"{
                    "generic_type""LIST"
                },
                "user_defined_type"{
                    "resource_id""obj-103",
                    "resource_type""string"
                }
            },
            "generic_type""LIST"
        },
        "user_defined_type"{
            "resource_id""obj-103",
            "resource_type""string"
        }
    },
    "generic_type""LIST",
    "map_key_type"{
        "builtin_type""VOID",
        "category""BUILTIN",
        "generic_instantiation"{
            "element_type"{
                "builtin_type""VOID",
                "category""BUILTIN",
                "generic_instantiation"{
                    "generic_type""LIST"
                },
                "user_defined_type"{
                    "resource_id""obj-103",
                    "resource_type""string"
                }
            },
            "generic_type""LIST"
        },
        "user_defined_type"{
            "resource_id""obj-103",
            "resource_type""string"
        }
    },
    "map_value_type"{
        "builtin_type""VOID",
        "category""BUILTIN",
        "generic_instantiation"{
            "element_type"{
                "builtin_type""VOID",
                "category""BUILTIN",
                "generic_instantiation"{
                    "generic_type""LIST"
                },
                "user_defined_type"{
                    "resource_id""obj-103",
                    "resource_type""string"
                }
            },
            "generic_type""LIST"
        },
        "user_defined_type"{
            "resource_id""obj-103",
            "resource_type""string"
        }
    }
}
<?xml version="1.0" ?>
<ns0:GenericInstantiation xmlns:ns0="http://vmware.com/vapi/metadata/metamodel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <map_key_type>
    <user_defined_type>
      <resource_id>obj-103</resource_id>
      <resource_type>string</resource_type>
    </user_defined_type>
    <category>BUILTIN</category>
    <generic_instantiation>
      <generic_type>LIST</generic_type>
      <element_type>
        <user_defined_type>
          <resource_id>obj-103</resource_id>
          <resource_type>string</resource_type>
        </user_defined_type>
        <category>BUILTIN</category>
        <generic_instantiation>
          <generic_type>LIST</generic_type>
        </generic_instantiation>
        <builtin_type>VOID</builtin_type>
      </element_type>
    </generic_instantiation>
    <builtin_type>VOID</builtin_type>
  </map_key_type>
  <map_value_type>
    <user_defined_type>
      <resource_id>obj-103</resource_id>
      <resource_type>string</resource_type>
    </user_defined_type>
    <category>BUILTIN</category>
    <generic_instantiation>
      <generic_type>LIST</generic_type>
      <element_type>
        <user_defined_type>
          <resource_id>obj-103</resource_id>
          <resource_type>string</resource_type>
        </user_defined_type>
        <category>BUILTIN</category>
        <generic_instantiation>
          <generic_type>LIST</generic_type>
        </generic_instantiation>
        <builtin_type>VOID</builtin_type>
      </element_type>
    </generic_instantiation>
    <builtin_type>VOID</builtin_type>
  </map_value_type>
  <generic_type>LIST</generic_type>
  <element_type>
    <user_defined_type>
      <resource_id>obj-103</resource_id>
      <resource_type>string</resource_type>
    </user_defined_type>
    <category>BUILTIN</category>
    <generic_instantiation>
      <generic_type>LIST</generic_type>
      <element_type>
        <user_defined_type>
          <resource_id>obj-103</resource_id>
          <resource_type>string</resource_type>
        </user_defined_type>
        <category>BUILTIN</category>
        <generic_instantiation>
          <generic_type>LIST</generic_type>
        </generic_instantiation>
        <builtin_type>VOID</builtin_type>
      </element_type>
    </generic_instantiation>
    <builtin_type>VOID</builtin_type>
  </element_type>
</ns0:GenericInstantiation>

Attributes:

Name Type Description
Required
generic_type string The generic type that is being instantiated.

Provides enumeration values for each of the generic types provided by the infrastructure. Value is one of:
LIST: Indicates the generic type is a list.
MAP: Indicates the generic type is a map.
OPTIONAL: Indicates the generic type is an optional.
SET: Indicates the generic type is a set.

Optional
element_type type Type of the element parameter if the generic type instantiation is a LIST, OPTIONAL or SET.

Optional. It is only relevant when generic_type has value [LIST, OPTIONAL, SET]. This field is optional and it is only relevant when the value of generic_type is one of LIST, OPTIONAL, or SET.

map_key_type type Type of the key parameter of the map generic type instantiation. The map generic type has a key parameter and value parameter. The type of the value parameter is described by vapi.metadata.metamodel.generic_instantiation.map_value_type..

Optional. It is only relevant when generic_type has value MAP. This field is optional and it is only relevant when the value of generic_type is MAP.

map_value_type type Type of the value parameter of the map generic type instantiation. The map generic type has a key parameter and value parameter. The type of the key parameter is described by vapi.metadata.metamodel.generic_instantiation.map_key_type..

Optional. It is only relevant when generic_type has value MAP. This field is optional and it is only relevant when the value of generic_type is MAP.