1. Types
2. vapi
3. metadata
4. metamodel

## 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:

- JSON
- XML

{
"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.