vapi metadata metamodel: structure info
structure_info
structure contains the metamodel information of all the field elements, constant elements and enumeration elements contained in the structure element. In the interface definition language, API designers have the ability to include all the fields from one structure to another structure. This is done by using an annotation @Include
on the structure in which we want to add the fields. If this annotation is present, the list of fields in the structure_info
will also contain the fields that are being included. The annotation information is also retained in the vapi.metadata.metamodel.structure_info.metadata element as well.
Representation:
"metadata" : {
"<string>" : {
"elements" : {
"<string>" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
}
}
}
},
"documentation" : "string",
"name" : "string",
"enumerations" : {
"obj-103" : {
"metadata" : {
"<string>" : {
"elements" : {
"<string>" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
}
}
}
},
"values" : [
{
"metadata" : {
"<string>" : {
"elements" : {
"<string>" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
}
}
}
},
"documentation" : "string",
"value" : "string"
},
{
"metadata" : {
"<string>" : {
"elements" : {
"<string>" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
}
}
}
},
"documentation" : "string",
"value" : "string"
}
],
"documentation" : "string",
"name" : "string"
}
},
"constants" : {
"<string>" : {
"documentation" : "string",
"type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST",
"element_type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST"
}
}
}
},
"value" : {
"list_value" : [
{
"string_value" : "string",
"boolean_value" : true,
"type" : "BOOLEAN",
"double_value" : 1.5,
"long_value" : 1
},
{
"string_value" : "string",
"boolean_value" : true,
"type" : "BOOLEAN",
"double_value" : 1.5,
"long_value" : 1
}
],
"primitive_value" : {
"string_value" : "string",
"boolean_value" : true,
"type" : "BOOLEAN",
"double_value" : 1.5,
"long_value" : 1
},
"category" : "PRIMITIVE"
}
}
},
"type" : "STRUCTURE",
"fields" : [
{
"metadata" : {
"<string>" : {
"elements" : {
"<string>" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
}
}
}
},
"documentation" : "string",
"name" : "string",
"type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST",
"element_type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST"
}
}
}
}
},
{
"metadata" : {
"<string>" : {
"elements" : {
"<string>" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
}
}
}
},
"documentation" : "string",
"name" : "string",
"type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST",
"element_type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST"
}
}
}
}
}
]
}
"metadata" : [
{
"value" : {
"elements" : [
{
"value" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
},
"key" : "string"
}
]
},
"key" : "string"
}
],
"documentation" : "string",
"name" : "string",
"enumerations" : [
{
"value" : {
"metadata" : [
{
"value" : {
"elements" : [
{
"value" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
},
"key" : "string"
}
]
},
"key" : "string"
}
],
"values" : [
{
"metadata" : [
{
"value" : {
"elements" : [
{
"value" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
},
"key" : "string"
}
]
},
"key" : "string"
}
],
"documentation" : "string",
"value" : "string"
},
{
"metadata" : [
{
"value" : {
"elements" : [
{
"value" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
},
"key" : "string"
}
]
},
"key" : "string"
}
],
"documentation" : "string",
"value" : "string"
}
],
"documentation" : "string",
"name" : "string"
},
"key" : "obj-103"
}
],
"constants" : [
{
"value" : {
"documentation" : "string",
"type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST",
"element_type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST"
}
}
}
},
"value" : {
"list_value" : [
{
"string_value" : "string",
"boolean_value" : true,
"type" : "BOOLEAN",
"double_value" : 1.5,
"long_value" : 1
},
{
"string_value" : "string",
"boolean_value" : true,
"type" : "BOOLEAN",
"double_value" : 1.5,
"long_value" : 1
}
],
"primitive_value" : {
"string_value" : "string",
"boolean_value" : true,
"type" : "BOOLEAN",
"double_value" : 1.5,
"long_value" : 1
},
"category" : "PRIMITIVE"
}
},
"key" : "string"
}
],
"type" : "STRUCTURE",
"fields" : [
{
"metadata" : [
{
"value" : {
"elements" : [
{
"value" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
},
"key" : "string"
}
]
},
"key" : "string"
}
],
"documentation" : "string",
"name" : "string",
"type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST",
"element_type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST"
}
}
}
}
},
{
"metadata" : [
{
"value" : {
"elements" : [
{
"value" : {
"list_value" : [
"string",
"string"
],
"string_value" : "string",
"structure_id" : "obj-103",
"type" : "LONG",
"structure_ids" : [
"obj-103",
"obj-103"
],
"long_value" : 1
},
"key" : "string"
}
]
},
"key" : "string"
}
],
"documentation" : "string",
"name" : "string",
"type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST",
"element_type" : {
"builtin_type" : "VOID",
"user_defined_type" : {
"resource_type" : "string",
"resource_id" : "obj-103"
},
"category" : "BUILTIN",
"generic_instantiation" : {
"generic_type" : "LIST"
}
}
}
}
}
]
}
Attributes:
Name | Type | Description |
---|---|---|
Required | ||
-.name | string | Dot separated name of the structure element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention. |
-.type | string | Type of the structure. Defines the kind of this structure element. In the interface definition language, structure element and error element have similar characteristics. The difference is that only error elements can be used to describe the errors of an operation element. Value is one of: STRUCTURE: If the type is a structure element. ERROR: If the type is an error element. |
-.enumerations | object | Metamodel information of all the enumeration elements contained in the structure element. The key in the key/value pairs is the identifier of the enumeration element and the value is the metamodel information of the enumeration element. When clients pass a value of this structure as a parameter, the key in the field key/value pairs must be an identifier for the resource type: com.vmware.vapi.enumeration . When operations return a value of this structure as a result, the key in the field key/value pairs will be an identifier for the resource type: com.vmware.vapi.enumeration .Object with element values of type enumeration_info. |
-.enumerations.* | enumeration_info | |
-.enumerations.*.name | string | Dot separated name of the enumeration element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention. |
-.enumerations.*.values | enumeration_value_info[] | Metamodel information of all the enumeration value elements contained in this enumeration element. The order of the enumeration value elements in the list is same as the order in which they are defined in the interface definition file. |
-.enumerations.*.values[].value | string | Value in the enumerated type. All the characters in the string are capitalized. |
-.enumerations.*.values[].metadata | object | Additional metadata for enumeration value in the enumerated type. The key in the key/value pairs is the name of the metadata element and the value is the data associated with that metadata element. The vapi.metadata.metamodel.metadata_identifier contains possible string values for keys in the key/value pairs. Object with element values of type element_map. |
-.enumerations.*.values[].metadata.* | element_map | |
-.enumerations.*.values[].metadata.*.elements | object | Metamodel information of the metadata elements. The key parameter of the key/value pairs is the identifier for the element and the value corresponds to the element value. Object with element values of type element_value. |
-.enumerations.*.values[].metadata.*.elements.* | element_value | |
-.enumerations.*.values[].metadata.*.elements.*.type | string | Type of the value. Defines the valid types for values in metadata elements. Value is one of: LONG: Indicates the type of the value is a long (64 bit signed integer). STRING: Indicates the type of the value is a string (a variable length sequence of characters). The encoding is UTF-8. STRING_LIST: Indicates the type of the value is a list of strings. STRUCTURE_REFERENCE: Indicates the type of the value is an identifier for a structure element. STRUCTURE_REFERENCE_LIST: Indicates the type of the value is a list of identifiers for a structure element. |
-.constants | object | Metamodel information of all the constant elements contained in the structure element. The key in the key/value pairs is the name of the constant element and the value in the key/value pairs is the metamodel information for the constant element. Object with element values of type constant_info. |
-.fields | field_info[] | Metamodel information of all the field elements. The order of the field elements in the list matches the order in which the fields are defined in the service. |
-.metadata | object | Generic metadata elements for the structure element. The key in the key/value pairs is the name of the metadata element and the value is the data associated with that metadata element. The vapi.metadata.metamodel.metadata_identifier contains possible string values for keys in the key/value pairs. Object with element values of type element_map. |
-.documentation | string | English language documentation for a structure element. It can contain HTML markup and Javadoc tags. The first sentence of the structure documentation is a complete sentence that identifies the structure by name and summarizes the purpose of the structure. |
Optional | ||
-.enumerations.*.values[].metadata.*.elements.*.long_value | long | Long value of the metadata element. Optional. It is only relevant when type has value LONG. This field is optional and it is only relevant when the value of type is LONG. |
-.enumerations.*.values[].metadata.*.elements.*.string_value | string | String value of the metadata element. Optional. It is only relevant when type has value STRING. This field is optional and it is only relevant when the value of type is STRING. |
-.enumerations.*.values[].metadata.*.elements.*.list_value | string[] | List of strings value of the metadata element. Optional. It is only relevant when type has value STRING_LIST. This field is optional and it is only relevant when the value of type is STRING_LIST. |
Attributes:
Name | Type | Description |
---|---|---|
Required | ||
name | string | Dot separated name of the structure element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention. |
type | string | Type of the structure. Defines the kind of this structure element. In the interface definition language, structure element and error element have similar characteristics. The difference is that only error elements can be used to describe the errors of an operation element. Value is one of: STRUCTURE: If the type is a structure element. ERROR: If the type is an error element. |
enumerations | list | Metamodel information of all the enumeration elements contained in the structure element. The key in the key/value pairs is the identifier of the enumeration element and the value is the metamodel information of the enumeration element. When clients pass a value of this structure as a parameter, the key in the field key/value pairs must be an identifier for the resource type: com.vmware.vapi.enumeration . When operations return a value of this structure as a result, the key in the field key/value pairs will be an identifier for the resource type: com.vmware.vapi.enumeration .List of {"key": string, "value": enumeration_info} |
enumerations[].key | string | |
enumerations[].value | enumeration_info | |
enumerations[].value.name | string | Dot separated name of the enumeration element. The segments in the name reflect the organization of the APIs. The format of each segment is lower case with underscores. Each underscore represents a word boundary. If there are acronyms in the word, the capitalization is preserved. This format makes it easy to translate the segment into a different naming convention. |
enumerations[].value.values | enumeration_value_info[] | Metamodel information of all the enumeration value elements contained in this enumeration element. The order of the enumeration value elements in the list is same as the order in which they are defined in the interface definition file. |
enumerations[].value.values[].value | string | Value in the enumerated type. All the characters in the string are capitalized. |
enumerations[].value.values[].metadata | list | Additional metadata for enumeration value in the enumerated type. The key in the key/value pairs is the name of the metadata element and the value is the data associated with that metadata element. The vapi.metadata.metamodel.metadata_identifier contains possible string values for keys in the key/value pairs. List of {"key": string, "value": element_map} |
enumerations[].value.values[].metadata[].key | string | |
enumerations[].value.values[].metadata[].value | element_map | |
enumerations[].value.values[].metadata[].value.elements | list | Metamodel information of the metadata elements. The key parameter of the key/value pairs is the identifier for the element and the value corresponds to the element value. List of {"key": string, "value": element_value} |
enumerations[].value.values[].metadata[].value.elements[].key | string | |
enumerations[].value.values[].metadata[].value.elements[].value | element_value | |
enumerations[].value.values[].metadata[].value.elements[].value.type | string | Type of the value. Defines the valid types for values in metadata elements. Value is one of: LONG: Indicates the type of the value is a long (64 bit signed integer). STRING: Indicates the type of the value is a string (a variable length sequence of characters). The encoding is UTF-8. STRING_LIST: Indicates the type of the value is a list of strings. STRUCTURE_REFERENCE: Indicates the type of the value is an identifier for a structure element. STRUCTURE_REFERENCE_LIST: Indicates the type of the value is a list of identifiers for a structure element. |
constants | list | Metamodel information of all the constant elements contained in the structure element. The key in the key/value pairs is the name of the constant element and the value in the key/value pairs is the metamodel information for the constant element. List of {"key": string, "value": constant_info} |
fields | field_info[] | Metamodel information of all the field elements. The order of the field elements in the list matches the order in which the fields are defined in the service. |
metadata | list | Generic metadata elements for the structure element. The key in the key/value pairs is the name of the metadata element and the value is the data associated with that metadata element. The vapi.metadata.metamodel.metadata_identifier contains possible string values for keys in the key/value pairs. List of {"key": string, "value": element_map} |
documentation | string | English language documentation for a structure element. It can contain HTML markup and Javadoc tags. The first sentence of the structure documentation is a complete sentence that identifies the structure by name and summarizes the purpose of the structure. |
Optional | ||
enumerations[].value.values[].metadata[].value.elements[].value.long_value | long | Long value of the metadata element. Optional. It is only relevant when type has value LONG. This field is optional and it is only relevant when the value of type is LONG. |
enumerations[].value.values[].metadata[].value.elements[].value.string_value | string | String value of the metadata element. Optional. It is only relevant when type has value STRING. This field is optional and it is only relevant when the value of type is STRING. |
enumerations[].value.values[].metadata[].value.elements[].value.list_value | string[] | List of strings value of the metadata element. Optional. It is only relevant when type has value STRING_LIST. This field is optional and it is only relevant when the value of type is STRING_LIST. |