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.

Representation:

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

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.