Metadata_Metamodel_StructureInfo

Metadata_Metamodel_StructureInfo
Metadata_Metamodel_StructureInfo

The StructureInfo 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 StructureInfo will also contain the fields that are being included. The annotation information is also retained in the StructureInfo.metadata element as well.

JSON Example
{
    "name": "string",
    "type": "string",
    "enumerations": {
        "enumerations": {
            "name": "string",
            "values": [
                {
                    "value": "string",
                    "metadata": {
                        "metadata": {
                            "elements": {
                                "elements": {
                                    "type": "string",
                                    "long_value": 0,
                                    "string_value": "string",
                                    "list_value": [
                                        "string"
                                    ],
                                    "structure_id": "string",
                                    "structure_ids": [
                                        "string"
                                    ]
                                }
                            }
                        }
                    },
                    "documentation": "string"
                }
            ],
            "metadata": {
                "metadata": {
                    "elements": {
                        "elements": {
                            "type": "string",
                            "long_value": 0,
                            "string_value": "string",
                            "list_value": [
                                "string"
                            ],
                            "structure_id": "string",
                            "structure_ids": [
                                "string"
                            ]
                        }
                    }
                }
            },
            "documentation": "string"
        }
    },
    "constants": {
        "constants": {
            "type": {
                "category": "string",
                "builtin_type": "string",
                "user_defined_type": {
                    "resource_type": "string",
                    "resource_id": "string"
                },
                "generic_instantiation": {
                    "generic_type": "string",
                    "element_type": "Metadata_Metamodel_Type Object",
                    "map_key_type": "Metadata_Metamodel_Type Object",
                    "map_value_type": "Metadata_Metamodel_Type Object"
                }
            },
            "value": {
                "category": "string",
                "primitive_value": {
                    "type": "string",
                    "boolean_value": false,
                    "double_value": "number",
                    "long_value": 0,
                    "string_value": "string"
                },
                "list_value": [
                    {
                        "type": "string",
                        "boolean_value": false,
                        "double_value": "number",
                        "long_value": 0,
                        "string_value": "string"
                    }
                ]
            },
            "documentation": "string"
        }
    },
    "fields": [
        {
            "name": "string",
            "type": "Metadata_Metamodel_Type Object",
            "metadata": {
                "metadata": "Metadata_Metamodel_ElementMap Object"
            },
            "documentation": "string"
        }
    ],
    "metadata": {
        "metadata": {
            "elements": {
                "elements": {
                    "type": "string",
                    "long_value": 0,
                    "string_value": "string",
                    "list_value": [
                        "string"
                    ],
                    "structure_id": "string",
                    "structure_ids": [
                        "string"
                    ]
                }
            }
        }
    },
    "documentation": "string"
}
string
name
Required

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
Required

The StructureInfo.Type enumerated type 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.
STRUCTURE : If the type is a structure element.
ERROR : If the type is an error element.

object
enumerations
Required

Metamodel information of all the enumeration elements contained in the structure element. The key in the map 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 map 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 map will be an identifier for the resource type: com.vmware.vapi.enumeration.

object
constants
Required

Metamodel information of all the constant elements contained in the structure element. The key in the map is the name of the constant element and the value in the map is the metamodel information for the constant element.

fields
Required

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.

object
metadata
Required

Generic metadata elements for the structure element. The key in the map is the name of the metadata element and the value is the data associated with that metadata element. The MetadataIdentifier contains possible string values for keys in the map.

string
documentation
Required

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.