{
    "metamodel":
    {
        "component":
        {
            "name": "vapi_common",
            "documentation": "The {@name com.vmware.vapi} {@term component} provides API infrastructure {@term services} and standard types that can be used in the interface specification of any {@term service}.",
            "metadata":
            {
            }

            ,
            "packages":
            [
                {
                    "name": "com.vmware.vapi.metadata.authentication",
                    "documentation": "The {@name com.vmware.vapi.metadata.authentication} {@term package} provides {@term services} that expose authentication information for operation elements across all the service elements. <p> To calculate the effective authentication information for an operation element, you should first see if there is an authentication scheme specified for the operation element. If it is not specified, then authentication scheme for the service element that contains this operation element is used. If it is not specified for the service element as well, then the authentication scheme for the package element that contains this service element is used.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.authentication.authentication_info",
                            "type": "Structure",
                            "documentation": "The {@name AuthenticationInfo} {@term structure} describes the authentication information. Authentication information could be specified for a package element, service elenent or an operation element. <p> Using the authentication scheme information, a client invoking an API call from any {@term service} can figure out what kind of credentials are needed for that API call.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.authentication.authentication_info.scheme_type",
                                    "documentation": "The {@name SchemeType} {@term enumerated type} provides {@term enumeration values} for the set of valid authentication scheme types.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "SESSIONLESS",
                                            "documentation": "Indicates that the scheme is a session less authentication scheme, the user is authenticated on every {@term operation}. There is no explicit session establishment.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "SESSION_AWARE",
                                            "documentation": "Indicates that the scheme is a session aware authentication scheme. It requires an explicit login before executing a {@term operation} and logout when a session terminates. A {@term service} might choose to have a session aware scheme if it wants to associate some state corresponding to the user until the user logs out or if it wants to mitigate the cost of authenticating the user on every {@term operation}.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "scheme_type",
                                    "documentation": "The type of the authentication scheme.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.authentication_info.scheme_type"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "session_manager",
                                    "documentation": "In a session aware authentication scheme, a session manager is required that supports {@code create}, {@code delete} and {@code keepAlive} {@term operations}. The fully qualified {@term service} name of the session manager is provided in {@link AuthenticationInfo#sessionManager} {@term field}. This {@term service} is responsible for handling sessions.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "scheme_type", "value": ["SESSION_AWARE"]}
                                    }

                                }
                                ,
                                {
                                    "name": "scheme",
                                    "documentation": "String identifier of the authentication scheme. <p> Following are the supported authentication schemes by the infrastructure: <ul> <li>The identifier {@code com.vmware.vapi.std.security.saml_hok_token} for SAML holder of key token based authentication mechanism. </li> <li>The identifier {@code com.vmware.vapi.std.security.bearer_token} for SAML bearer token based authentication mechanism. </li> <li>The identifier {@code com.vmware.vapi.std.security.session_id} for session based authentication mechanism. </li> <li>The identifier {@code com.vmware.vapi.std.security.user_pass} for username and password based authentication mechanism. </li> </ul>",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.component_data",
                            "type": "Structure",
                            "documentation": "The {@name ComponentData} {@term structure} contains the authentication information of the component along with its fingerprint.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "info",
                                    "documentation": "Authentication information of the component. This includes information about all the {@term packages} in the component.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.component_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "fingerprint",
                                    "documentation": "Fingerprint of the metadata of the component. <p> Authentication information could change when there is an infrastructure update. Since the data present in {@link ComponentData#info} could be quite large, {@name #fingerprint} provides a convenient way to check if the data for a particular component is updated. <p> You should store the fingerprint associated with a component. After an update, by invoking the {@link com.vmware.vapi.metadata.authentication.Component#fingerprint} {@term operation}, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can then use the {@link com.vmware.vapi.metadata.authentication.Component#get} to retrieve the new authentication information for the component.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.component_info",
                            "type": "Structure",
                            "documentation": "The {@name ComponentInfo} {@term structure} contains authentication information of a component element. <p> For an explanation of authentication information contained within component elements, see {@link com.vmware.vapi.metadata.authentication.Component}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "packages",
                                    "documentation": "Authentication information of all the package elements. The key in the {@term map} is the identifier of the package element and the value in the {@term map} is the authentication information for the package element. <p> For an explanation of authentication information containment within package elements, see {@link com.vmware.vapi.metadata.authentication.Package}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.package_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.package"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.operation_info",
                            "type": "Structure",
                            "documentation": "The {@name OperationInfo} {@term structure} contains authentication information of an operation element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "schemes",
                                    "documentation": "List of authentication schemes used by an operation element. The authentication scheme specified on the service element corresponding to this operation element is ignored.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.authentication_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.package_info",
                            "type": "Structure",
                            "documentation": "The {@name PackageInfo} {@term structure} contains authentication information of a package element. <p> For an explanation of authentication information contained within package elements, see {@link com.vmware.vapi.metadata.authentication.Package}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "schemes",
                                    "documentation": "List of authentication schemes to be used for all the operation elements contained in this package element. If a particular service or operation element has no explicit authentications defined in the authentication defintion file, these authentication schemes are used for authenticating the user.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.authentication_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "services",
                                    "documentation": "Information about all service elements contained in this package element that contain authentication information. The key in the {@term map} is the identifier of the service element and the value in the {@term map} is the authentication information for the service element. <p> For an explanation of authentication information containment within service elements, see {@link com.vmware.vapi.metadata.authentication.Service}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.service_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.service"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.service_info",
                            "type": "Structure",
                            "documentation": "The {@name ServiceInfo} {@term structure} contains authentication information of a service element. <p> For an explanation of authentication information contained within service elements, see {@link com.vmware.vapi.metadata.authentication.Service}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "schemes",
                                    "documentation": "List of authentication schemes to be used for all the operation elements contained in this service element. The authentication scheme specified on the package element corresponding to this service element is ignored.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.authentication_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "operations",
                                    "documentation": "Information about all operation elements contained in this service element that contain authentication information. The key in the {@term map} is the identifier of the operation element and the value in the {@term map} is the authentication information for the operation element. <p> For an explanation of containment of authentication information within operation elements, see {@link com.vmware.vapi.metadata.authentication.service.Operation}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.operation_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.operation"}
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.authentication.component",
                            "documentation": "The {@name Component} {@term service} provides {@term operations} to retrieve authentication information of a component element. <p> A component element is said to contain authentication information if any one of package elements contained in it has authentication information.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for component.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.component"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the component elements that have authentication information.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the component elements that have authentication information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.component"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves authentication information about the component element corresponding to {@param.name componentId}. <p> The {@link ComponentData} contains the authentication information about the component element and it's fingerprint. It contains information about all the package elements that belong to this component element.",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "Identifier of the component element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link ComponentData} instance that corresponds to {@param.name componentId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.component_data"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the component element associated with {@param.name componentId} does not have any authentication information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Retrieves the fingerprint computed from the authentication metadata of the component element corresponding to {@param.name componentId}. <p> The fingerprint provides clients an efficient way to check if the metadata for a particular component has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of {@link com.vmware.vapi.metadata.authentication.Component#get}.",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "Identifier of the component element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The fingerprint computed from the authentication metadata of the component.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the component element associated with {@param.name componentId} does not have any authentication information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.package",
                            "documentation": "The {@name Package} {@term service} provides {@term operations} to retrieve authentication information of a package element. <p> A package element is said to contain authentication information if there is a default authentication assigned to all service elements contained in the package element or if one of the service element contained in this package element has authentication information.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for package.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.package"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the package elements that have authentication information.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the package elements that have authentication information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.package"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves authentication information about the package element corresponding to {@param.name packageId}.",
                                    "params":
                                    [
                                        {
                                            "name": "package_id",
                                            "documentation": "Identifier of the package element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.package"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link PackageInfo} instance that corresponds to {@param.name packageId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.package_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the package element associated with {@param.name packageId} does not have any authentication information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.service",
                            "documentation": "The {@name Service} {@term service} provides {@term operations} to retrieve authentication information of a service element. <p> A service element is said to contain authentication information if there is a default authentication assigned to all operation elements contained in a service element or if one of the operation elements contained in this service element has authentication information.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for service.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.service"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the service elements that have authentication information.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the service elements that have authentication information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.service"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves authentication information about the service element corresponding to {@param.name serviceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link ServiceInfo} instance that corresponds to {@param.name serviceId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.service_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not have any authentication information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.authentication.source",
                            "documentation": "The {@name Source} {@term service} provides {@term operations} to manage the sources of authentication metadata information. <p> The interface definition language infrastructure provides tools to generate various kinds of metadata in JSON format from the interface definition files and additional properties files. One of the generated files contains authentication information. The generated file can be registered as a source of metadata. <p> The authentication file contains all the data present in the interface definition files. Each authentication file contains data about one component element. When a authentication file is added as a source, each source contributes only one component element's metadata. <p> Authentication metadata can also be discovered from a remote server that supports the authentication metadata {@term services} (see {@link com.vmware.vapi.metadata.authentication}). Since multiple components can be registered with a single metadata server, when a remote server is registered as a source, that source can contribute more than one component.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for metadata source.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.metadata.authentication.source"
                                }
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.authentication.source.info",
                                    "type": "Structure",
                                    "documentation": "The {@name Info} {@term structure} contains the metadata source information.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the authentication metadata file that has the authentication information about one component element. The {@name filePath} is the path to the file in the server's filesystem.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information for the remote server. This must be in the format http(s)://IP:port/namespace. <p> The remote server must support the {@term services} in the {@link com.vmware.vapi.metadata.authentication} {@term package}. It must expose authentication information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.authentication.source.create_spec",
                                    "type": "Structure",
                                    "documentation": "The {@name CreateSpec} {@term structure} contains the registration information of a authentication source.",
                                    "metadata":
                                    {
                                        "Include": {"value": "com.vmware.vapi.metadata.source_create_spec"}
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the metamodel metadata file that has the metamodel information about one component element.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information of the remote server. This should be of the format http(s)://IP:port/namespace. <p> The remote server should contain the {@term services} in {@link com.vmware.vapi.metadata.metamodel} {@term package}. It could expose metamodel information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "create",
                                    "documentation": "Creates a new metadata source. Once the server validates the registration information of the metadata source, the authentication metadata is retrieved from the source. This populates elements in all the {@term services} defined in {@link com.vmware.vapi.metadata.authentication} {@term package}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "metadata source identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.authentication.source"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "spec",
                                            "documentation": "create specification.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.source.create_spec"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.already_exists",
                                            "documentation": "if the metadata source identifier is already registered with the infrastructure."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.invalid_argument",
                                            "documentation": "if the type of the source specified in {@link CreateSpec#type} is invalid."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the file specified in {@link CreateSpec#filepath} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "delete",
                                    "documentation": "Deletes an existing authentication metadata source from the infrastructure.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.authentication.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the metadata source corresponding to {@param.name sourceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.authentication.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link Info} instance that corresponds to {@param.name sourceId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.source.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers of the metadata sources currently registered with the infrastructure.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for metadata sources currently registered.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.metadata.authentication.source"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "reload",
                                    "documentation": "Reloads the authentication metadata from all the metadata sources or of a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.authentication.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Returns the aggregate fingerprint of metadata from all the metadata sources or from a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.authentication.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Aggregate fingerprint of all the metadata sources or of a particular metadata source.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.authentication.service",
                    "documentation": "The {@name com.vmware.vapi.metadata.authentication.service} {@term package} provides {@term services} to retrieve authentication information for operation elements.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.authentication.service.operation",
                            "documentation": "The {@name Operation} {@term service} provides {@term operations} to retrieve authentication information of an operation element. <p> An operation element is said to contain authentication information if authentication schemes are specified in the authentication definition file.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for operation.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.operation"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the operation elements contained in the service element corresponding to {@param.name serviceId} that have authentication information.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "List of identifiers for the operation elements contained in the service element that have authentication information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.operation"}
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not have any operation elements that have authentication information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves the authentication information about an operation element corresponding to {@param.name operationId} contained in the service element corresponding to {@param.name serviceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "operation_id",
                                            "documentation": "Identifier of the operation element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.operation"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link com.vmware.vapi.metadata.authentication.OperationInfo} instance that corresponds to {@param.name operationId}.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.operation_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.cli",
                    "documentation": "The {@name com.vmware.vapi.metadata.cli} {@term package} provides {@term services} that expose all the information required to display namespace or command help, execute a command and display it's result.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.cli.component_info",
                            "type": "Structure",
                            "documentation": "The {@name ComponentInfo} is an aggregated {@term structure} for CLI commands and namespaces information. Warning: This structure is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                            "metadata":
                            {
                                "Changing": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "namespaces",
                                    "documentation": "Information for all CLI namespaces of a {@term component} Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.namespace.info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "commands",
                                    "documentation": "Information for all CLI commands of a {@term component} Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.info"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.cli.command",
                            "documentation": "The {@name Command} {@term service} provides {@term operations} to get information about command line interface (CLI) commands.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.cli.command.formatter_type",
                                    "documentation": "The {@name FormatterType} {@term enumerated type} defines supported CLI output formatter types. See {@link Info#formatter}.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "SIMPLE",
                                            "documentation": "Displays command output as it is.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "TABLE",
                                            "documentation": "Displays command output in table format.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "JSON",
                                            "documentation": "Displays command output in JSON format.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "XML",
                                            "documentation": "Displays command output in XML format.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "CSV",
                                            "documentation": "Displays command output in CSV format.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "HTML",
                                            "documentation": "Displays command output in HTML format.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.cli.command.generic_type",
                                    "documentation": "The {@name GenericType} {@term enumerated type} defines generic types supported by {@name Command} {@term service}. See {@link OptionInfo#generic}.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "NONE",
                                            "documentation": "Default case.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "OPTIONAL",
                                            "documentation": "Input parameter is an optional.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "LIST",
                                            "documentation": "Input parameter is a list.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "OPTIONAL_LIST",
                                            "documentation": "Input parameter is an optional of type list. <p> New in vSphere 6.5.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "LIST_OPTIONAL",
                                            "documentation": "Input parameter is a list of optionals. <p> New in vSphere 6.5.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.cli.command.output_field_info",
                                    "type": "Structure",
                                    "documentation": "The {@name OutputFieldInfo} {@term structure} describes the name used by the CLI to display a single {@term field} of a {@term structure} element in the interface definition language.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "field_name",
                                            "documentation": "Name of the {@term field}.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "display_name",
                                            "documentation": "Name used by the CLI to display the {@term field}.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.cli.command.output_info",
                                    "type": "Structure",
                                    "documentation": "The {@name OutputInfo} {@term structure} describes the names used by the CLI to display the {@term fields} of a {@term structure} element in the interface definition language as well as the order in which the {@term fields} will be displayed.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "structure_id",
                                            "documentation": "Name of the {@term structure}.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.structure"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "output_fields",
                                            "documentation": "The order in which the {@term fields} of the {@term structure} will be displayed by the CLI as well as the names used to display the {@term fields}.",
                                            "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.output_field_info"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.cli.command.option_info",
                                    "type": "Structure",
                                    "documentation": "The {@name OptionInfo} {@term structure} describes information about a specific input option of a command.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "long_option",
                                            "documentation": "The long option name of the parameter as used by the user.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "short_option",
                                            "documentation": "The single character value option name.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "field_name",
                                            "documentation": "The fully qualified name of the option referred to by the operation element in {@link Info#operationId}.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "description",
                                            "documentation": "The description of the option to be displayed to the user when they request usage information for a CLI command.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "The type of option. This is used to display information about what kind of data is expected (string, number, boolean, etc.) for the option when they request usage information for a CLI command. For {@term enumerated type} this stores the fully qualified {@term enumerated type} id.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "generic",
                                            "documentation": "This is used to tell the user whether the option is required or optional, or whether they can specify the option multiple times.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.generic_type"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.cli.command.identity",
                                    "type": "Structure",
                                    "documentation": "The {@name Identity} {@term structure} uniquely identifies a command in the CLI commands tree.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "path",
                                            "documentation": "The dot-separated path of the namespace containing the command in the CLI command tree.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "name",
                                            "documentation": "Name of the command.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.cli.command.info",
                                    "type": "Structure",
                                    "documentation": "The {@name Info} {@term structure} contains information about a command. It includes the identity of the command, a description, information about the {@term service} and {@term operation} that implement the command, and CLI-specific information for the command.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "identity",
                                            "documentation": "Basic command identity.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.identity"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "description",
                                            "documentation": "The text description displayed to the user in help output.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "service_id",
                                            "documentation": "The service identifier that contains the operations for this CLI command.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "operation_id",
                                            "documentation": "The operation identifier corresponding to this CLI command.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.operation"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "options",
                                            "documentation": "The input for this command.",
                                            "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.option_info"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "formatter",
                                            "documentation": "The formatter to use when displaying the output of this command.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.formatter_type"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "output_field_list",
                                            "documentation": "List of output structure name and output field info.",
                                            "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.output_info"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers of all commands, or commands in a specific namespace.",
                                    "params":
                                    [
                                        {
                                            "name": "path",
                                            "documentation": "The dot-separated path of the namespace for which command identifiers should be returned.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Identifiers of the requested commands.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.identity"}},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if a namespace corresponding to {@param.name path} doesn't exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about a command including information about how to execute that command.",
                                    "params":
                                    [
                                        {
                                            "name": "identity",
                                            "documentation": "Identifier of the command for which to retreive information.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.identity"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Information about the command including information about how to execute that command.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.command.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if a command corresponding to {@param.name identity} doesn't exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Returns the aggregate fingerprint of all the command metadata from all the metadata sources. <p> The fingerprint provides clients an efficient way to check if the metadata for commands has been modified on the server.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "Fingerprint of all the command metadata present on the server.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.cli.namespace",
                            "documentation": "The {@name Namespace} {@term service} provides {@term operations} to get information about command line interface (CLI) namespaces.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.cli.namespace.identity",
                                    "type": "Structure",
                                    "documentation": "The {@name Identity} {@term structure} uniquely identifies a namespace in the CLI namespace tree.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "path",
                                            "documentation": "The dot-separated path of the namespace containing the namespace in the CLI node tree. For top-level namespace this will be empty.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "name",
                                            "documentation": "The name displayed to the user for this namespace.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.cli.namespace.info",
                                    "type": "Structure",
                                    "documentation": "The {@name Info} {@term structure} contains information about a namespace. It includes the identity of the namespace, a description, information children namespaces.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "identity",
                                            "documentation": "Basic namespace identity.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.namespace.identity"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "description",
                                            "documentation": "The text description displayed to the user in help output.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "children",
                                            "documentation": "The children of this namespace in the tree of CLI namespaces.",
                                            "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.namespace.identity"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers of all namespaces registered with the infrastructure.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "Identifiers of all the namespaces.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.namespace.identity"}},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retreives information about a namespace including information about children of that namespace.",
                                    "params":
                                    [
                                        {
                                            "name": "identity",
                                            "documentation": "Identifier of the namespace for which to retreive information.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.namespace.identity"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Information about the namespace including information about child of that namespace.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.namespace.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if a namespace corresponding to {@param.name identity} doesn't exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Returns the aggregate fingerprint of all the namespace metadata from all the metadata sources. <p> The fingerprint provides clients an efficient way to check if the metadata for namespaces has been modified on the server.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "Fingerprint of all the namespace metadata present on the server.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.cli.source",
                            "documentation": "The {@name Source} {@term service} provides {@term operations} to manage the sources of command line interface (CLI) metadata information. <p> The interface definition language infrastructure provides tools to generate various kinds of metadata in JSON format from the interface definition files and additional properties files. One of the generated files contains CLI information. <p> A CLI metadata file contains information about one component element. When a CLI metadata file is added as a source, each source contributes only one component element's metadata. <p> CLI metadata can also be discovered from a remote server that supports the CLI metadata services (see {@link com.vmware.vapi.metadata.cli}) {@term package}. Since multiple components can be registered with a single metadata server, when a remote server is registered as a source, that source can contribute more than one component.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.cli.source.info",
                                    "type": "Structure",
                                    "documentation": "The {@name Info} {@term structure} contains the metadata source information.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "The type ({@enum.values SourceType}) of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the CLI metadata file that has the CLI information about one component. The {@name #filepath} is the path to the file in the server's filesystem.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information for the remote server. This should be in the format http(s)://IP:port/namespace. <p> The remote server must contain the {@term services} in the {@link com.vmware.vapi.metadata.cli} {@term package}. It must expose CLI information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.cli.source.create_spec",
                                    "type": "Structure",
                                    "documentation": "The {@name CreateSpec} {@term structure} contains the registration information of a CLI source.",
                                    "metadata":
                                    {
                                        "Include": {"value": "com.vmware.vapi.metadata.source_create_spec"}
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the metamodel metadata file that has the metamodel information about one component element.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information of the remote server. This should be of the format http(s)://IP:port/namespace. <p> The remote server should contain the {@term services} in {@link com.vmware.vapi.metadata.metamodel} {@term package}. It could expose metamodel information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "create",
                                    "documentation": "Creates a new metadata source. Once the server validates the registration information of the metadata source, the CLI metadata is retrieved from the source. This populates elements in all the {@term services} defined in {@link com.vmware.vapi.metadata.cli} {@term package}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "metadata source identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "spec",
                                            "documentation": "create specification.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.source.create_spec"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.already_exists",
                                            "documentation": "If the metadata source identifier is already registered with the infrastructure."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.invalid_argument",
                                            "documentation": "If type of the source specified in {@link CreateSpec#type} is invalid."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the file specified in {@link CreateSpec#filepath} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "delete",
                                    "documentation": "Deletes an existing CLI metadata source from the infrastructure.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the metadata source corresponding to {@param.name sourceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link Info} instance that corresponds to {@param.name sourceId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.source.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers of the metadata sources currently registered with the infrastructure.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for metadata sources currently registered.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "reload",
                                    "documentation": "Reloads the CLI metadata from all the metadata sources or of a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Returns the aggregate fingerprint of metadata from all the metadata sources or from a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Aggregate fingerprint of all the metadata sources or of a particular metadata source.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.metamodel",
                    "documentation": "The {@name com.vmware.vapi.metadata.metamodel} {@term package} provides {@term services} that expose all the information present in the interface definition language (IDL) specification. <p> Metamodel metadata is organized into an hierarchy of elements. The main elements are: <ul> <li>Enumeration: An enumeration element that has a list of enumeration value elements.</li> <li>Constant: A constant element has a name and a value.</li> <li>Structure: A structure element can have field elements, constant elements and enumeration elements. </li> <li>Operation: An operation has a list of parameter elements, result element and error elements.</li> <li>Service: A service is a collection of operation elements, structure elements, enumerated elements and constant elements.</li> <li>Package: A package is a collection of service elements, structure elements and enumeration elements.</li> <li>Component: A component is a collection of package elements.</li> </ul> The {@name com.vmware.vapi.metadata.metamodel} {@term package} has {@term services} that enables two styles of client applications: <ul> <li>A client can retrieve the exact pieces of information it requires using the various granularities the API supports (that is {@link com.vmware.vapi.metadata.metamodel.Component}, {@link com.vmware.vapi.metadata.metamodel.Package}, {@link com.vmware.vapi.metadata.metamodel.Service}, {@link com.vmware.vapi.metadata.metamodel.Structure}, {@link com.vmware.vapi.metadata.metamodel.Enumeration} and {@link com.vmware.vapi.metadata.metamodel.service.Operation}). In this case, it doesn't cache any information locally and always invokes {@term operations} to get the metamodel information it requires.</li> <li>A client can retrieve all the metamodel information in fewer {@term operation} invocations using the {@link com.vmware.vapi.metadata.metamodel.Component} {@term service} and cache the output locally. It can then poll on the fingerprint information exposed by the {@link com.vmware.vapi.metadata.metamodel.Component} {@term service} to monitor changes in API definition.</li> </ul>",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.component_data",
                            "type": "Structure",
                            "documentation": "The {@name ComponentData} {@term structure} contains the metamodel metadata information of a component element along with its fingerprint.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "info",
                                    "documentation": "Metamodel information of the component element. This includes information about all the package elements contained in this component element. <p> The metamodel information about a component could be quite large if there are a lot of package elements contained in this component.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.component_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "fingerprint",
                                    "documentation": "Fingerprint of the metamodel metadata of the component component. <p> Metamodel information could change when there is an infrastructure update and new functionality is added to an existing component. <p> Since the data present in {@link ComponentData#info} could be quite large, {@name #fingerprint} provides a convenient way to check if the data for a particular component is updated. <p> You should store the fingerprint associated with a component. After an update, by invoking the {@link com.vmware.vapi.metadata.metamodel.Component#fingerprint} {@term operation}, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can use the {@link com.vmware.vapi.metadata.metamodel.Component#get} to retrieve the new metamodel information for the component.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.component_info",
                            "type": "Structure",
                            "documentation": "The {@name ComponentInfo} {@term structure} contains metamodel metadata information about a component element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "Dot separated name of the component 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": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "packages",
                                    "documentation": "Metamodel metadata information of all the package elements contained in the component element. The key in the {@term map} is the identifier of the package element and the value in the {@term map} is the metamodel information of the package element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.package_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.package"}
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata for the component element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for a component. It can contain HTML markup and documentation tags (similar to Javadoc tags). The first sentence of the package documentation is a complete sentence that identifies the component by name and summarizes the purpose of the component.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.constant_info",
                            "type": "Structure",
                            "documentation": "The {@name ConstantInfo} {@term structure} contains metamodel information of the constant elements.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "type",
                                    "documentation": "Type of the constant element.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "value",
                                    "documentation": "Value of the constant element.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.constant_value"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for the constant element. It can contain HTML markup and documentation tags (similar to Javadoc tags).",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.constant_value",
                            "type": "Structure",
                            "documentation": "The {@name ConstantValue} {@term structure} contains the metamodel information of the constant element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.constant_value.category",
                                    "documentation": "The {@name Category} {@term enumerated type} defines {@term enumeration values} for the valid kinds of values.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "PRIMITIVE",
                                            "documentation": "Indicates the type of constant value is primitive.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "LIST",
                                            "documentation": "Indicates the type of constant value is a list.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "category",
                                    "documentation": "Category of the type of constant value.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.constant_value.category"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "primitive_value",
                                    "documentation": "Primitive value of the constant element.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.primitive_value"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "category", "value": ["PRIMITIVE"]}
                                    }

                                }
                                ,
                                {
                                    "name": "list_value",
                                    "documentation": "List value of the constant element.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.primitive_value"}}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "category", "value": ["LIST"]}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.element_map",
                            "type": "Structure",
                            "documentation": "The {@name ElementMap} {@term structure} contains the metadata elements. <p> One of the sources for metadata is the annotations present in the interface definition language. When an annotation is represented in the {@name ElementMap}, {@name ElementMap} describes the data specified in the arguments for the annotation. <p> For example, in {@code @UnionCase(tag=\"tag\", value=\"SELECT\")}, ElementMap describes the keyword arguments tag and value.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "elements",
                                    "documentation": "Metamodel information of the metadata elements. The key parameter of the {@term map} is the identifier for the element and the value corresponds to the element value.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_value"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.element_value",
                            "type": "Structure",
                            "documentation": "The {@name ElementValue} {@term structure} describes the value of the metadata element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.element_value.type",
                                    "documentation": "The {@name Type} {@term enumerated type} defines the valid types for values in metadata elements.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "LONG",
                                            "documentation": "Indicates the type of the value is a long (64 bit signed integer).",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "STRING",
                                            "documentation": "Indicates the type of the value is a string (a variable length sequence of characters). The encoding is UTF-8.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "STRING_LIST",
                                            "documentation": "Indicates the type of the value is a list of strings.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "STRUCTURE_REFERENCE",
                                            "documentation": "Indicates the type of the value is an identifier for a structure element.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "STRUCTURE_REFERENCE_LIST",
                                            "documentation": "Indicates the type of the value is a list of identifiers for a structure element.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "type",
                                    "documentation": "Type of the value.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_value.type"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "long_value",
                                    "documentation": "Long value of the metadata element.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "long"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["LONG"]}
                                    }

                                }
                                ,
                                {
                                    "name": "string_value",
                                    "documentation": "String value of the metadata element.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["STRING"]}
                                    }

                                }
                                ,
                                {
                                    "name": "list_value",
                                    "documentation": "List of strings value of the metadata element.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["STRING_LIST"]}
                                    }

                                }
                                ,
                                {
                                    "name": "structure_id",
                                    "documentation": "Identifier of the structure element.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["STRUCTURE_REFERENCE"]}
                                        ,
                                        "Resource": {"value": "com.vmware.vapi.structure"}
                                    }

                                }
                                ,
                                {
                                    "name": "structure_ids",
                                    "documentation": "List of identifiers of the structure elements.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["STRUCTURE_REFERENCE_LIST"]}
                                        ,
                                        "Resource": {"value": "com.vmware.vapi.structure"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.enumeration_info",
                            "type": "Structure",
                            "documentation": "The {@name EnumerationInfo} {@term structure} contains the metamodel information of an enumeration element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "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.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "values",
                                    "documentation": "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.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.enumeration_value_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata elements for an enumeration element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for an enumeration element. It can contain HTML markup and Javadoc tags. The first sentence of the enumeration documentation is a complete sentence that identifies the enumeration by name and summarizes the purpose of the enumeration. The documentation describes the context in which the enumeration is used. <p> The documentation also contains references to the context in which the enumeration is used. But if the enumeration is used in many contexts, the references may not be present.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.enumeration_value_info",
                            "type": "Structure",
                            "documentation": "The {@name EnumerationValueInfo} {@term structure} describes the {@term enumeration value} in the {@term enumerated type}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "value",
                                    "documentation": "Value in the enumerated type. All the characters in the string are capitalized.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Additional metadata for enumeration value in the enumerated type. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for an enumeration value. It can contain HTML markup and documentation tags (similar to Javadoc tags). The first statement will be a noun or verb phrase that describes the purpose of the enumeration value.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.error_info",
                            "type": "Structure",
                            "documentation": "The {@name ErrorInfo} {@term structure} contains the metadata information about the error elements contained in an operation element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "structure_id",
                                    "documentation": "Identifier for the structure element corresponding to the error that is being reported by the operation.",
                                    "type": {"category": "primitive", "primitive_type": "ID"},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.structure"}
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "The English language documentation for the service element. It can contain HTML markup and Javadoc tags.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.field_info",
                            "type": "Structure",
                            "documentation": "The {@name FieldInfo} {@term structure} contains metamodel information of a field element contained in a structure element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "Name of the field element in a canonical format. The format 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": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "type",
                                    "documentation": "Type information.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata elements for the field element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for the service element. It can contain HTML markup and Javadoc tags.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.generic_instantiation",
                            "type": "Structure",
                            "documentation": "The {@name GenericInstantiation} {@term 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.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.generic_instantiation.generic_type",
                                    "documentation": "The {@name GenericType} {@term enumerated type} provides {@term enumeration values} for each of the generic types provided by the infrastructure.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "LIST",
                                            "documentation": "Indicates the generic type is a list.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "MAP",
                                            "documentation": "Indicates the generic type is a map.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "OPTIONAL",
                                            "documentation": "Indicates the generic type is an optional.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "SET",
                                            "documentation": "Indicates the generic type is a set.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "generic_type",
                                    "documentation": "The generic type that is being instantiated.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.generic_instantiation.generic_type"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "element_type",
                                    "documentation": "Type of the element parameter if the generic type instantiation is a {@link GenericType#LIST}, {@link GenericType#OPTIONAL} or {@link GenericType#SET}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "generic_type", "value": ["LIST", "OPTIONAL", "SET"]}
                                    }

                                }
                                ,
                                {
                                    "name": "map_key_type",
                                    "documentation": "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 {@link GenericInstantiation#mapValueType}..",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "generic_type", "value": ["MAP"]}
                                    }

                                }
                                ,
                                {
                                    "name": "map_value_type",
                                    "documentation": "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 {@link GenericInstantiation#mapKeyType}..",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "generic_type", "value": ["MAP"]}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.operation_info",
                            "type": "Structure",
                            "documentation": "The {@name OperationInfo} {@term structure} contains metamodel information of an operation element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "Name of the operation element in a canonical format. The format 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": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "params",
                                    "documentation": "Metamodel information for the parameter elements. The order of the parameters elements in the list is same as the order of the parameters declared in the interface definition file.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.field_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "output",
                                    "documentation": "Metamodel type for the output element.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.operation_result_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "errors",
                                    "documentation": "List of error elements that might be reported by the operation element. If the operation reports the same error for more than one reason, the list contains the error element associated with the error more than once with different documentation elements.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.error_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata elements for the operation element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for key in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for the service element. It can contain HTML markup and Javadoc tags.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.operation_result_info",
                            "type": "Structure",
                            "documentation": "The {@name OperationResultInfo} {@term structure} contains the metamodel information of an operation result element. <p> An operation accepts a list of parameters and returns a result or an error. The {@name OperationResultInfo} describes the result element of an operation.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "type",
                                    "documentation": "Type information of the operation result element.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata elements for the service element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for the operation result element. It can contain HTML markup and Javadoc tags.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.package_info",
                            "type": "Structure",
                            "documentation": "The {@name PackageInfo} {@term structure} contains the metamodel information of all the service elements, structure elements and enumeration elements contained in the package element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "Dot separated name of the package 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": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "structures",
                                    "documentation": "Metamodel information of all the structure elements contained in the package element. The key in the {@term map} is the identifier of the structure element and the value in the {@term map} is the metamodel information for the structure element. <p> This does not include the structure elements contained in the service elements that are contained in this package element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.structure_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.structure"}
                                    }

                                }
                                ,
                                {
                                    "name": "enumerations",
                                    "documentation": "Metamodel information of all the enumeration elements contained in the package element. The key in the {@term map} is the identifier of the enumeration element and the value in the {@term map} is the metamodel information for the enumeration element. <p> This does not include the enumeration elements that are contained in the service elements of this package element or structure elements of this package element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.enumeration_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.enumeration"}
                                    }

                                }
                                ,
                                {
                                    "name": "services",
                                    "documentation": "Metamodel information of all the service elements contained in the package element. The key in the {@term map} is the identifier of the service element and the value in the {@term map} is the metamodel information for the service element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.service_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.service"}
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata elements for the package element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for a package. It can contain HTML markup and Javadoc tags. The first sentence of the package documentation is a complete sentence that identifies the package by name and summarizes the purpose of the package. <p> The primary purpose of a package documentation is to provide high-level context that will provide a framework in which the users can put the detail about the package contents.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.primitive_value",
                            "type": "Structure",
                            "documentation": "The {@name PrimitiveValue} {@term structure} contains value of the constant element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.primitive_value.type",
                                    "documentation": "The {@name Type} {@term enumerated type} defines the valid types for values in constant elements.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "BOOLEAN",
                                            "documentation": "Indicates the value is a boolean (true or false).",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "DOUBLE",
                                            "documentation": "Indicates the value is a double (64 bit floating number).",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "LONG",
                                            "documentation": "Indicates the value is a long (64 bit signed integer).",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "STRING",
                                            "documentation": "Indicates the value is a string (a variable length sequence of characters). The encoding is UTF8.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "type",
                                    "documentation": "Type of the constant value.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.primitive_value.type"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "boolean_value",
                                    "documentation": "Boolean value of the constant.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "boolean"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["BOOLEAN"]}
                                    }

                                }
                                ,
                                {
                                    "name": "double_value",
                                    "documentation": "Double value of the constant.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "double"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["DOUBLE"]}
                                    }

                                }
                                ,
                                {
                                    "name": "long_value",
                                    "documentation": "Long value of the constant.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "long"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["LONG"]}
                                    }

                                }
                                ,
                                {
                                    "name": "string_value",
                                    "documentation": "String value of the constant.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["STRING"]}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.service_info",
                            "type": "Structure",
                            "documentation": "The {@name ServiceInfo} {@term structure} contains the metamodel information of all the operation elements, structure elements and enumeration elements containted in a service element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "Dot separated name of the service 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": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "operations",
                                    "documentation": "Metamodel information of all the operation elements contained in the service element. The key in the {@term map} is the identifier of the operation element and the value in the {@term map} is the metamodel information for the operation element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.operation_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.operation"}
                                    }

                                }
                                ,
                                {
                                    "name": "structures",
                                    "documentation": "Metamodel information of all the structure elements contained in the service element. The key in the {@term map} is the identifier of the structure element and the value in the {@term map} is the metamodel information for the structure element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.structure_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.structure"}
                                    }

                                }
                                ,
                                {
                                    "name": "enumerations",
                                    "documentation": "Metamodel information of all the enumeration elements contained in the service element. The key in the {@term map} is the identifier of the enumeration element and the value in the {@term map} is the metamodel information for the enumeration element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.enumeration_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.enumeration"}
                                    }

                                }
                                ,
                                {
                                    "name": "constants",
                                    "documentation": "Metamodel information of all the constant elements contained in the service element. The key in the {@term map} is the name of the constant element and the value in the {@term map} is the metamodel information for the contant element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.constant_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata elements for the service element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "English language documentation for the service element. It can contain HTML markup and Javadoc tags. The first sentence of the service documentation is a complete sentence that identifies the service by name and summarizes the purpose of the service. The remaining part of the documentation provides a summary of how to use the operations defined in the service.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.structure_info",
                            "type": "Structure",
                            "documentation": "The {@name StructureInfo} {@term structure} contains the metamodel information of all the field elements, constant elements and enumeration elements contained in the structure element. <p> 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 {@code @Include} on the structure in which we want to add the fields. If this annotation is present, the list of fields in the {@name StructureInfo} will also contain the fields that are being included. The annotation information is also retained in the {@link StructureInfo#metadata} element as well.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.structure_info.type",
                                    "documentation": "The {@name Type} {@term 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 {@term errors} of an operation element.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "STRUCTURE",
                                            "documentation": "If the type is a structure element.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "ERROR",
                                            "documentation": "If the type is an error element.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "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": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "type",
                                    "documentation": "Type of the structure.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.structure_info.type"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "enumerations",
                                    "documentation": "Metamodel information of all the enumeration elements contained in the structure element. The key in the {@term map} is the identifier of the enumeration element and the value is the metamodel information of the enumeration element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.enumeration_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.enumeration"}
                                    }

                                }
                                ,
                                {
                                    "name": "constants",
                                    "documentation": "Metamodel information of all the constant elements contained in the structure element. The key in the {@term map} is the name of the constant element and the value in the {@term map} is the metamodel information for the constant element.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.constant_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "fields",
                                    "documentation": "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.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.field_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "Generic metadata elements for the structure element. The key in the {@term map} is the name of the metadata element and the value is the data associated with that metadata element. <p> The {@link com.vmware.vapi.metadata.metamodel.MetadataIdentifier} contains possible string values for keys in the {@term map}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.element_map"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "documentation",
                                    "documentation": "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.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.type",
                            "type": "Structure",
                            "documentation": "The {@name Type} {@term structure} describes the type information of a typed element in the interface definiton language. The following elements in the metamodel are typed: <ul> <li>Field element in a structure element. See {@link StructureInfo#fields}</li> <li>Parameter element in an operation element. See {@link OperationInfo#params}</li> <li>Result element in an operation element. See {@link OperationInfo#output}</li> </ul> The type could be one of the three following categories: <ul> <li>Built-in types: These are types present in the interface definition language type system. They are provided by the infrastructure. </li> <li>User defined named type: API designers can create custom types and use them for the typed elements. These types have a unique identifier.</li> <li>Generic type instantiation: The language infrastructure also provides generic types such as list, map, set and so on. An instantiation of one of these generic types could also be used for the typed elements.</li> </ul>",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.type.category",
                                    "documentation": "The {@name Category} {@term enumerated type} provides {@term enumeration value} for each category of the type.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "BUILTIN",
                                            "documentation": "The type is one of the built-in types specified in {@link BuiltinType}",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "USER_DEFINED",
                                            "documentation": "The type is one of the user defined named types.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "GENERIC",
                                            "documentation": "The type is an instantiation of one of the generic types.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.type.builtin_type",
                                    "documentation": "The {@name BuiltinType} {@term enumerated type} provides {@term enumeration value} for each of the built-in types present in the interface definition language type system.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "VOID",
                                            "documentation": "The built-in type is a void. The value is {@term unset}.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "BOOLEAN",
                                            "documentation": "The built-in type is a boolean. The value is true or false.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "LONG",
                                            "documentation": "The built-in type is a long. The value is a 64 bit signed integer.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "DOUBLE",
                                            "documentation": "The built-in type is a double. The value is a 64 bit floating point number.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "STRING",
                                            "documentation": "The built-in type is a string. The value is a variable-length sequence of zero or more unicode characters.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "BINARY",
                                            "documentation": "The built-in type is a binary. The value is a variable-length sequence of zero or more bytes.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "SECRET",
                                            "documentation": "The built-in type is a secret. The value is a variable-length sequence of zero or more unicode characters. The value contains sensitive data that should not be printed or displayed anywhere.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "DATE_TIME",
                                            "documentation": "The built-in type is a datetime. The value should be in the UTC timezone and the precision is milliseconds.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "ID",
                                            "documentation": "The built-in type is an ID. The value represents an identifier for a resource.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "URI",
                                            "documentation": "The built-in type is an URI. The value follows the IRI specification in RFC 3987.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "ANY_ERROR",
                                            "documentation": "The built-in type is an arbitrary {@term error} type. This is used if the value of a typed element can be one of any user defined named type which is an {@term error}.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "DYNAMIC_STRUCTURE",
                                            "documentation": "The built-in type is a dynamic structure. This is used if the value of a typed element can be one of any user defined named type.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "OPAQUE",
                                            "documentation": "The built-in type is an opaque. This is used if the value of a typed element could be of any type and the actual type will be known only during the execution of the API. This is mostly used in infrastructure {@term services}.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "category",
                                    "documentation": "Category of this type.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type.category"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "builtin_type",
                                    "documentation": "Category of the built-in type.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.type.builtin_type"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "category", "value": ["BUILTIN"]}
                                    }

                                }
                                ,
                                {
                                    "name": "user_defined_type",
                                    "documentation": "Identifier and type of the user defined type.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.user_defined_type"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "category", "value": ["USER_DEFINED"]}
                                    }

                                }
                                ,
                                {
                                    "name": "generic_instantiation",
                                    "documentation": "Instantiation of one of the generic types available in the interface definition language.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.generic_instantiation"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "category", "value": ["GENERIC"]}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.user_defined_type",
                            "type": "Structure",
                            "documentation": "The {@name UserDefinedType} {@term structure} contains the metamodel type information of a typed element whose type is a user defined named type.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "resource_type",
                                    "documentation": "Category of the user defined named type. The named type could be a structure element or an enumeration element.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                        "IsOneOf": {"value": ["com.vmware.vapi.structure", "com.vmware.vapi.enumeration"]}
                                    }

                                }
                                ,
                                {
                                    "name": "resource_id",
                                    "documentation": "Identifier of the user defined named type.",
                                    "type": {"category": "primitive", "primitive_type": "ID"},
                                    "metadata":
                                    {
                                        "Resource": {"value": ["com.vmware.vapi.structure", "com.vmware.vapi.enumeration"], "typeHolder": "resource_type"}
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.component",
                            "documentation": "The {@name Component} {@term service} providers {@term operations} to retrieve metamodel information of a component element. <p> A component defines a set of functionality that is deployed together and versioned together. For example, all the {@term services} that belong to VMware Content Library are part of a single component. A component element describes a component. A component element contains one or more package elements. <p> The {@term operations} for package elements are provided by {@term service} {@link com.vmware.vapi.metadata.metamodel.Package}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for component.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.component"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the component elements that are registered with the infrastructure.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the component elements that are registered with the infrastructure.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.component"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves metamodel information about the component element corresponding to {@param.name componentId}. <p> The {@link ComponentData} contains the metamodel information about the component and it's fingerprint. It contains information about all the package elements that are contained in this component element.",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "Identifier of the component element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link ComponentData} instance that corresponds to {@param.name componentId}.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.component_data"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the component element associated with {@param.name componentId} is not registered with the infrastructure."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Retrieves the fingerprint computed from the metamodel metadata of the component element corresponding to {@param.name componentId}. <p> The fingerprint provides clients an efficient way to check if the metadata for a particular component element has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of {@link com.vmware.vapi.metadata.metamodel.Component#get}.",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "Identifier of the component element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The fingerprint computed from the metamodel metadata of the component element.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the component element associated with {@param.name componentId} is not registered with the infrastructure."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.enumeration",
                            "documentation": "The {@name Enumeration} {@term service} provides {@term operations} to retrieve metamodel information about an enumeration element in the interface definition language. <p> The {@name Enumeration} has a list of enumeration value elements.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for enumeration.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.enumeration"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the enumeration elements that are contained in all the package elements, service elements and structure elements.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the enumeration elements.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.enumeration"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the enumeration element corresponding to {@param.name enumerationId}. <p> The {@link EnumerationInfo} contains the metamodel information about the enumeration value element contained in the enumeration element.",
                                    "params":
                                    [
                                        {
                                            "name": "enumeration_id",
                                            "documentation": "Identifier of the enumeration element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.enumeration"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link EnumerationInfo} instance that corresponds to {@param.name enumerationId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.enumeration_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the enumeration element associated with {@param.name enumerationId} is not contained in any of the package elements, service elements and structure elements."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.metadata_identifier",
                            "documentation": "The {@name MetadataIdentifier} {@term service} provides string constants that can be used as identifiers for the metadata elements. <p> Most of the types in {@link com.vmware.vapi.metadata.metamodel} package has a metadata field whose type is {@code Map<String, ElementMap>}. {@link MetadataIdentifier} contains the identifiers used in the keys of the above Map type.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "CANONICAL_NAME",
                                    "documentation": "Identifier representing the CanonicalName metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "CanonicalName"
                                }
                                ,
                                {
                                    "name": "COMPONENT",
                                    "documentation": "Identifier representing the Component metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Component"
                                }
                                ,
                                {
                                    "name": "CREATE",
                                    "documentation": "Identifier representing the Create metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Create"
                                }
                                ,
                                {
                                    "name": "CRUD",
                                    "documentation": "Identifier representing the Crud metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Crud"
                                }
                                ,
                                {
                                    "name": "HAS_FIELDS_OF",
                                    "documentation": "Identifier representing the HasFieldsOf metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "HasFieldsOf"
                                }
                                ,
                                {
                                    "name": "INCLUDABLE",
                                    "documentation": "Identifier representing the Includable metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Includable"
                                }
                                ,
                                {
                                    "name": "INCLUDE",
                                    "documentation": "Identifier representing the Include metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Include"
                                }
                                ,
                                {
                                    "name": "IS_ONE_OF",
                                    "documentation": "Identifier representing the IsOneOf metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "IsOneOf"
                                }
                                ,
                                {
                                    "name": "MODEL",
                                    "documentation": "Identifier representing the Model metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Model"
                                }
                                ,
                                {
                                    "name": "READ",
                                    "documentation": "Identifier representing the Read metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Read"
                                }
                                ,
                                {
                                    "name": "RESOURCE",
                                    "documentation": "Identifier representing the Resource metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Resource"
                                }
                                ,
                                {
                                    "name": "UNION_CASE",
                                    "documentation": "Identifier representing the UnionCase metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "UnionCase"
                                }
                                ,
                                {
                                    "name": "UNION_TAG",
                                    "documentation": "Identifier representing the UnionTag metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "UnionTag"
                                }
                                ,
                                {
                                    "name": "UPDATE",
                                    "documentation": "Identifier representing the Update metadata.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "Update"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.package",
                            "documentation": "The {@name Package} {@term service} provides {@term operations} to retrieve metamodel information about a package element in the interface definition language. <p> A package is a logical grouping of services, structures and enumerations. A package element describes the package. It contains the service elements, structure elements and enumeration elements that are grouped together.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for package.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.package"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the packages elements that are contained in all the registered component elements.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the package elements that are contained in all the registered component elements.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.package"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the package element corresponding to {@param.name packageId}.",
                                    "params":
                                    [
                                        {
                                            "name": "package_id",
                                            "documentation": "Identifier of the package element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.package"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link PackageInfo} instance that corresponds to {@param.name packageId}.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.package_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the package element associated with {@param.name packageId} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.resource",
                            "documentation": "The {@link Resource} {@term service} provides {@term operations} to retrieve information about resource types. <p> A service is a logical grouping of operations that operate on an entity. Each entity is identifier by a namespace (or resource type) and an unique identifier.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for resource.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.resource"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the set of resource types present across all the service elements contained in all the package elements.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "Set of resource types",
                                        "type": {"category": "generic", "generic_type": "Set" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.resource"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.service",
                            "documentation": "The {@name Service} {@term service} provides {@term operations} to retrieve metamodel information about a service element in the interface definition language. <p> A service is a logical grouping of operations that operate on some entity. A service element describes a service. It contains operation elements that describe the operations grouped in the service. It also contains structure elements and enumeration elements corresponding to the structures and enumerations defined in the service.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for service.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.service"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the service elements that are currently registered with the infrastructure. <p> The list of service elements is an aggregate list of all the service elements contained in all the package elements.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the service elements that are currently registered with the infrastructure.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.service"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the service element corresponding to {@param.name serviceId}. <p> The {@link ServiceInfo} contains the metamodel information for the operation elements, structure elements and enumeration elements contained in the service element.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link ServiceInfo} instance that corresponds to {@param.name serviceId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.service_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} is not registered with the infrastructure."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.source",
                            "documentation": "The {@name Source} {@term service} provides {@term operations} to manage the sources of metamodel metadata information. <p> The interface definition language infrastructure provides tools to generate various kinds of metadata in JSON format from the interface definition files and additional properties files. One of the generated files contains metamodel information. The generated file can be registered as a source of metadata. <p> The metamodel file contains all the data present in the interface definition files. Each metamodel file contains data about one component element. When a metamodel file is added as a source, each source contributes only one component element's metadata. <p> Metamodel metadata can also be discovered from a remote server that supports the metamodel metadata {@term services} (see {@link com.vmware.vapi.metadata.metamodel}). Since multiple components can be registered with a single metadata server, when a remote server is registered as a source, that source can contribute more than one component.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for metadata source.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.metadata.metamodel.source"
                                }
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.source.info",
                                    "type": "Structure",
                                    "documentation": "The {@name Info} {@term structure} contains the metadata source information.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the metamodel metadata file that has the metamodel information about one component element. The {@name filePath} is the path to the file in the server's filesystem.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information for the remote server. This must be in the format http(s)://IP:port/namespace. <p> The remote server must support the {@term services} in the {@link com.vmware.vapi.metadata.metamodel} {@term package}. It must expose metamodel information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.metamodel.source.create_spec",
                                    "type": "Structure",
                                    "documentation": "The {@name CreateSpec} {@term structure} contains the registration information of a metamodel source.",
                                    "metadata":
                                    {
                                        "Include": {"value": "com.vmware.vapi.metadata.source_create_spec"}
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the metamodel metadata file that has the metamodel information about one component element.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information of the remote server. This should be of the format http(s)://IP:port/namespace. <p> The remote server should contain the {@term services} in {@link com.vmware.vapi.metadata.metamodel} {@term package}. It could expose metamodel information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "create",
                                    "documentation": "Creates a new metadata source. Once the server validates the registration information of the metadata source, the metamodel metadata is retrieved from the source. This populates elements in all the {@term services} defined in {@link com.vmware.vapi.metadata.metamodel} {@term package}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "metadata source identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.metamodel.source"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "spec",
                                            "documentation": "create specification.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.source.create_spec"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.already_exists",
                                            "documentation": "if the metadata source identifier is already registered with the infrastructure."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.invalid_argument",
                                            "documentation": "if the type of the source specified in {@link CreateSpec#type} is invalid."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the file specified in {@link CreateSpec#filepath} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "delete",
                                    "documentation": "Deletes an existing metamodel metadata source from the infrastructure.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.metamodel.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the metadata source corresponding to {@param.name sourceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.metamodel.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link Info} instance that corresponds to {@param.name sourceId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.source.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers of the metadata sources currently registered with the infrastructure.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for metadata sources currently registered.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.metadata.metamodel.source"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "reload",
                                    "documentation": "Reloads the metamodel metadata from all the metadata sources or of a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.metamodel.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Returns the aggregate fingerprint of metadata from all the metadata sources or from a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.metamodel.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Aggregate fingerprint of all the metadata sources or of a particular metadata source.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.structure",
                            "documentation": "The {@name Structure} {@term service} providers {@term operations} to retrieve metamodel information about a structure element in the interface definition language.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for structure.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.structure"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the structure elements that are contained in all the package elements and service elements.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the structure elements.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.structure"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the structure element corresponding to {@param.name structureId}. <p> The {@link StructureInfo} contains the metamodel information about the structure element. It contains information about all the field elements and enumeration elements contained in this structure element.",
                                    "params":
                                    [
                                        {
                                            "name": "structure_id",
                                            "documentation": "Identifier of the structure element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.structure"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link StructureInfo} instance that corresponds to {@param.name structureId}.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.structure_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the structure element associated with {@param.name structureId} is not contained in any of the package elements or service elements."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.metamodel.resource",
                    "documentation": "The {@name com.vmware.vapi.metadata.metamodel.resource} {@term package} provides {@term services} to retrieve metamodel information for resource types.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.resource.model",
                            "documentation": "The {@name Model} {@term service} provides {@term operations} to retrieve information about models. <p> A structure is used as a model if it is used for persisting data about an entity. Some of the fields in the model structure are also used for creating indexes for querying. <p> One or more services can operate on the same resource type. One or more services can provide the model structure for an entity of this resource type. Using {@name Model} {@term service} you can retrieve the list of all the structure elements that are model structures for a given resource type.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the set of identifiers for the structure elements that are models for the resource type corresponding to {@param.name resourceId}. <p> The {@link com.vmware.vapi.metadata.metamodel.Structure} {@term service} provides {@term operations} to retrieve more details about the structure elements corresponding to the identifiers returned by this {@term operation}.",
                                    "params":
                                    [
                                        {
                                            "name": "resource_id",
                                            "documentation": "Identifier of the resource type.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.resource"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The set of identifiers for the models that are associated with the resource type in {@param.name resourceId}.",
                                        "type": {"category": "generic", "generic_type": "Set" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.structure"}
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the resource type associated with {@param.name resourceId} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.metamodel.service",
                    "documentation": "The {@name com.vmware.vapi.metadata.metamodel.service} {@term package} provides {@term services} to retrieve metamodel information about the elements contained in a service element.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.service.hidden",
                            "documentation": "The {@name Hidden} {@term service} provides {@term operations} to retrieve the list of {@term services} that are hidden and should not be exposed in various presentation layers of API infrastructure.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the {@term service} identifiers that should be hidden.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of {@term service} identifiers that should be hidden.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.service"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.metamodel.service.operation",
                            "documentation": "The {@name Operation} {@term service} provides {@term operations} to retrieve metamodel information of an operation element in the interface definition language.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for operation element.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.operation"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the operation elements that are defined in the scope of {@param.name serviceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the operation elements that are defined in the scope of {@param.name serviceId}.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.operation"}
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not exist in any of the package elements."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves the metamodel information about an operation element corresponding to {@param.name operationId} contained in the service element corresponding to {@param.name serviceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "operation_id",
                                            "documentation": "Identifier of the operation element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.operation"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link com.vmware.vapi.metadata.metamodel.OperationInfo} instance that corresponds to {@param.name operationId} defined in scope {@param.name serviceId}.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.operation_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not exist in any of the package elements."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata",
                    "documentation": "The {@link com.vmware.vapi.metadata} {@term package} provides metadata {@term services}. These are {@term services} that provide different facets of API information. Clients can use these {@term services} to: <ul> <li> Discover APIs available in the infrastructure. </li> <li> Fetch metadata that can be used to build presentation layers like CLI, REST, etc.</li> <li> Fetch authentication and authorization metadata. </li> </ul>",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.source_type",
                            "documentation": "The {@name SourceType} {@term enumerated type} defines the types of sources for API metadata. You specify the type of source when adding a metadata source to a metadata service.",
                            "metadata":
                            {
                            }
                    ,
                            "values":
                            [
                                {
                                    "name": "FILE",
                                    "documentation": "Indicates the metadata source is a JSON file.",
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "REMOTE",
                                    "documentation": "Indicates the metadata source is a remote server.",
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.source_create_spec",
                            "type": "Structure",
                            "documentation": "The {@name SourceCreateSpec} {@term structure} contains the registration information for a metadata source.",
                            "metadata":
                            {
                                "Includable": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "description",
                                    "documentation": "English language human readable description of the source.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "type",
                                    "documentation": "Type of the metadata source.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "filepath",
                                    "documentation": "Absolute file path of the metamodel metadata file that has the metamodel information about one component element.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["FILE"]}
                                    }

                                }
                                ,
                                {
                                    "name": "address",
                                    "documentation": "Connection information of the remote server. This should be of the format http(s)://IP:port/namespace. <p> The remote server should contain the {@term services} in {@link com.vmware.vapi.metadata.metamodel} {@term package}. It could expose metamodel information of one or more components.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.source_info",
                            "type": "Structure",
                            "documentation": "Metadata source info",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "type",
                                    "documentation": "Type of the metadata source",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "file_name",
                                    "documentation": "Name of the metadata source file",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["FILE"]}
                                    }

                                }
                                ,
                                {
                                    "name": "remote_addr",
                                    "documentation": "Address of the remote metadata source",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                    }

                                }
                                ,
                                {
                                    "name": "msg_protocol",
                                    "documentation": "Message protocol to be used",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.privilege",
                    "documentation": "The {@name com.vmware.vapi.metadata.privilege} {@term package} provides {@term services} that expose privilege information for operation elements across all the service elements. <p> An entity has a unique identifier and a resource type. An entity can either be present in one of the parameter elements or if a parameter is a structure element, it could also be present in one of the field elements. <p> Privileges can be assigned to either operation elements or entities used in the operation element. A list of privileges can also be applied on a package element. This list of privileges would be used as a default for all the operation elements and the entities that do not have any defined privileges.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.privilege.component_data",
                            "type": "Structure",
                            "documentation": "The {@name ComponentData} {@term structure} contains the privilege information of the component along with its fingerprint.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "info",
                                    "documentation": "Privilege information of the component. This includes information about all the {@term packages} in the component.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.component_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "fingerprint",
                                    "documentation": "Fingerprint of the metadata of the component. <p> Privilege information could change when there is an infrastructure update. Since the data present in {@link ComponentData#info} could be quite large, {@name #fingerprint} provides a convenient way to check if the data for a particular component is updated. <p> You should store the fingerprint associated with a component. After an update, by invoking the {@link com.vmware.vapi.metadata.privilege.Component#fingerprint} {@term operation}, you can retrieve the new fingerprint for the component. If the new fingerprint and the previously stored fingerprint do not match, clients can then use the {@link com.vmware.vapi.metadata.privilege.Component#get} to retrieve the new privilege information for the component.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.component_info",
                            "type": "Structure",
                            "documentation": "The {@name ComponentInfo} {@term structure} contains the privilege information of a component element. <p> For an explanation of privilege information contained within component elements, see {@link com.vmware.vapi.metadata.privilege.Component}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "packages",
                                    "documentation": "Privilege information of all the package elements. The key in the {@term map} is the identifier of the package element and the value in the {@term map} is the privilege information for the package element. <p> For an explanation of privilege information containment within package elements, see {@link com.vmware.vapi.metadata.privilege.Package}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.package_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.package"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.operation_info",
                            "type": "Structure",
                            "documentation": "The {@name OperationInfo} {@term structure} contains privilege information of an operation element. <p> For an explanation of containment within operation elements, see {@link com.vmware.vapi.metadata.privilege.service.Operation}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "privileges",
                                    "documentation": "List of all privileges assigned to the operation element.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "privilege_info",
                                    "documentation": "Privilege information of all the parameter elements of the operation element. For an explanation of containment of privilege information within parameter elements, see {@link com.vmware.vapi.metadata.privilege.PrivilegeInfo}.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.privilege_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.package_info",
                            "type": "Structure",
                            "documentation": "The {@name PackageInfo} {@term structure} contains the privilege information of a package element. <p> For an explanation of privilege information contained within package elements, see {@link com.vmware.vapi.metadata.privilege.Package}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "privileges",
                                    "documentation": "List of default privileges to be used for all the operations present in this package. If a particular operation element has no explicit privileges defined in the privilege definition file, these privileges are used for enforcing authorization.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "services",
                                    "documentation": "Information about all service elements contained in this package element that contain privilege information. The key in the {@term map} is the identifier of the service element and the value in the {@term map} is the privilege information for the service element. For an explanation of privilege information containment within service elements, see {@link com.vmware.vapi.metadata.privilege.Service}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.service_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.service"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.privilege_info",
                            "type": "Structure",
                            "documentation": "The {@name PrivilegeInfo} {@term structure} contains the privilege information for a parameter element in an operation element.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "property_path",
                                    "documentation": "The {@name #propertyPath} points to an entity that is used in the operation element. An entity can either be present in one of the parameter elements or if a parameter is a structure element, it could also be present in one of the field elements. <p> If the privilege is assigned to an entity used in the parameter, {@name #propertyPath} will just contain the name of the parameter field. If the privilege is assigned to an entity in one of the field elements of a parameter element that is a structure element, then {@name #propertyPath} will contain a path to the field element starting from the parameter name.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "privileges",
                                    "documentation": "List of privileges assigned to the entity that is being referred by {@link #propertyPath}.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.service_info",
                            "type": "Structure",
                            "documentation": "The {@name ServiceInfo} {@term structure} contains privilege information of a service element. <p> For an explanation of privilege information contained within service elements, see {@link com.vmware.vapi.metadata.privilege.Service}.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "operations",
                                    "documentation": "Information about all operation elements contained in this service element that contain privilege information. The key in the {@term map} is the identifier of the operation element and the value in the {@term map} is the privilege information for the operation element. <p> For an explanation of containment of privilege information within operation elements, see {@link com.vmware.vapi.metadata.privilege.service.Operation}.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.operation_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.operation"}
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.privilege.component",
                            "documentation": "The {@name Component} {@term service} provides {@term operations} to retrieve privilege information of a component element. <p> A component element is said to contain privilege information if any one of package elements in it contains privilege information.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for vAPI component.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.component"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the component elements that have privilege information.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the component elements that have privilege information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.component"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves privilege information about the component element corresponding to {@param.name componentId}. <p> The {@link ComponentData} contains the privilege information about the component element and its fingerprint. It contains information about all the package elements that belong to this component element.",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "Identifier of the component element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link ComponentData} instance that corresponds to {@param.name componentId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.component_data"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the component element associated with {@param.name componentId} does not have any privilege information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Retrieves the fingerprint computed from the privilege metadata of the component element corresponding to {@param.name componentId}. <p> The fingerprint provides clients an efficient way to check if the metadata for a particular component has been modified on the server. The client can do this by comparing the result of this operation with the fingerprint returned in the result of {@link com.vmware.vapi.metadata.privilege.Component#get}.",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "Identifier of the component element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The fingerprint computed from the privilege metadata of the component.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the component element associated with {@param.name componentId} does not have any privilege information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.package",
                            "documentation": "The {@name Package} {@term service} provides {@term operations} to retrieve privilege information of a package element. <p> A package element is said to contain privilege information if there is a default privilege assigned to all service elements contained in the package element or if one of the operation elements contained in one of the service elements in this package element has privilege information.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for package.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.package"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the package elements that have privilege information.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the package elements that have privilege information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.package"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves privilege information about the package element corresponding to {@param.name packageId}.",
                                    "params":
                                    [
                                        {
                                            "name": "package_id",
                                            "documentation": "Identifier of the package element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.package"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link PackageInfo} instance that corresponds to {@param.name packageId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.package_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the package element associated with {@param.name packageId} does not have any privilege information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.service",
                            "documentation": "The {@name Service} {@term service} provides {@term operations} to retrieve privilege information of a service element. <p> A service element is said to contain privilege information if one of the operation elements contained in this service element has privilege information.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for service.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.service"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the service elements that have privilege information.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for the service elements that have privilege information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.service"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves privilege information about the service element corresponding to {@param.name serviceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link ServiceInfo} instance that corresponds to {@param.name serviceId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.service_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not have any privilege information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.privilege.source",
                            "documentation": "The {@name Source} {@term service} provides {@term operations} to manage the sources of privilege metadata information. <p> The interface definition language infrastructure provides tools to generate various kinds of metadata in JSON format from the interface definition files and additional properties files. One of the generated files contains privilege information. The generated file can be registered as a source of metadata. <p> The privilege file contains all the data present in the interface definition files. Each privilege file contains data about one component element. When a privilege file is added as a source, each source contributes only one component element's metadata. <p> Privilege metadata can also be discovered from a remote server that supports the privilege metadata {@term services} (see {@link com.vmware.vapi.metadata.privilege}). Since multiple components can be registered with a single metadata server, when a remote server is registered as a source, that source can contribute more than one component.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for metadata source.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.metadata.privilege.source"
                                }
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.privilege.source.info",
                                    "type": "Structure",
                                    "documentation": "The {@name Info} {@term structure} contains the metadata source information.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the privilege metadata file that has the privilege information about one component element. The {@name filePath} is the path to the file in the server's filesystem.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information for the remote server. This must be in the format http(s)://IP:port/namespace. <p> The remote server must support the {@term services} in the {@link com.vmware.vapi.metadata.privilege} {@term package}. It must expose privilege information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.privilege.source.create_spec",
                                    "type": "Structure",
                                    "documentation": "The {@name CreateSpec} {@term structure} contains the registration information of a privilege source.",
                                    "metadata":
                                    {
                                        "Include": {"value": "com.vmware.vapi.metadata.source_create_spec"}
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the metamodel metadata file that has the metamodel information about one component element.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information of the remote server. This should be of the format http(s)://IP:port/namespace. <p> The remote server should contain the {@term services} in {@link com.vmware.vapi.metadata.metamodel} {@term package}. It could expose metamodel information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "create",
                                    "documentation": "Creates a new metadata source. Once the server validates the registration information of the metadata source, the privilege metadata is retrieved from the source. This populates elements in all the {@term services} defined in {@link com.vmware.vapi.metadata.privilege} {@term package}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "metadata source identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.privilege.source"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "spec",
                                            "documentation": "create specification.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.source.create_spec"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.already_exists",
                                            "documentation": "if the metadata source identifier is already registered with the infrastructure."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.invalid_argument",
                                            "documentation": "if the type of the source specified in {@link CreateSpec#type} is invalid."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the file specified in {@link CreateSpec#filepath} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "delete",
                                    "documentation": "Deletes an existing privilege metadata source from the infrastructure.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.privilege.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves information about the metadata source corresponding to {@param.name sourceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.privilege.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link Info} instance that corresponds to {@param.name sourceId}",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.source.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers of the metadata sources currently registered with the infrastructure.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "The list of identifiers for metadata sources currently registered.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.metadata.privilege.source"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "reload",
                                    "documentation": "Reloads the privilege metadata from all the metadata sources or of a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.privilege.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Returns the aggregate fingerprint of metadata from all the metadata sources or from a particular metadata source if {@param.name sourceId} is specified.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Identifier of the metadata source.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.privilege.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Aggregate fingerprint of all the metadata sources or of a particular metadata source.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the metadata source associated with {@param.name sourceId} is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.privilege.service",
                    "documentation": "The {@name com.vmware.vapi.metadata.privilege.service} {@term package} provides {@term services} to retrieve privilege information for operation elements.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.privilege.service.operation",
                            "documentation": "The {@name Operation} {@term service} provides {@term operations} to retrieve privilege information of an operation element. <p> An operation element is said to contain privilege information if there are any privileges assigned to the operation element or if one of the parameter elements contained in it has privileges assigned in privilege definition file.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for operation.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.operation"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the identifiers for the operation elements contained in the service element corresponding to {@param.name serviceId} that have privilege information.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "List of identifiers for the operation elements contained in the service element that have privilege information.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.operation"}
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not have any operation elements that have privilege information."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Retrieves the privilege information about an operation element corresponding to {@param.name operationId} contained in the service element corresponding to {@param.name serviceId}.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "operation_id",
                                            "documentation": "Identifier of the operation element.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.operation"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "The {@link com.vmware.vapi.metadata.privilege.OperationInfo} instance that corresponds to {@param.name operationId}.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.operation_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "if the service element associated with {@param.name serviceId} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi",
                    "documentation": "The {@name com.vmware.vapi} {@term component} provides API infrastructure {@term services} and standard types that can be used in the interface specification of any {@term service}.",
                    "metadata":
                    {
                        "Component": {"versions": ["1.0", "1.1", "1.2", "1.3"]}
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.component_info",
                            "type": "Structure",
                            "documentation": "The {@name ComponentInfo} {@term structure} holds {@term component} metadata of the different metadata types for an API {@term component}. The {@term structure} allows any combination of metadata types to be aggregated into one instance. Warning: This structure is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                            "metadata":
                            {
                                "Changing": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "metamodel",
                                    "documentation": "The metamodel {@term component} data Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.metamodel.component_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "cli",
                                    "documentation": "The CLI {@term component} data Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.cli.component_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "authentication",
                                    "documentation": "The authentication {@term component} data Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.authentication.component_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "routing",
                                    "documentation": "The routing {@term component} data Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.component_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "privilege",
                                    "documentation": "The privilege {@term component} data Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.privilege.component_info"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata_info",
                            "type": "Structure",
                            "documentation": "The {@name MetadataInfo} is a {@term structure} which holds a map of the available metadata aggregated in a {@link ComponentInfo} {@term structure}. Warning: This structure is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                            "metadata":
                            {
                                "Changing": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "version",
                                    "documentation": "Version of the current {@name MetadataInfo} {@term structure}. Property value changes when the content of the {@name MetadataInfo} or referenced {@term structures} changes. This enables {@term structure} processing adjustments. Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "metadata",
                                    "documentation": "{@term Component} information of all available {@term components}. The key in the {@term map} is the identifier of the {@term component} and the value is the aggregated {@link ComponentInfo}. Warning: This attribute is part of a new feature in development. It may be changed at any time and may not have all supported functionality implemented.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.component_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.component"}
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.std.activation",
                    "documentation": "The {@name com.vmware.vapi.std.activation} {@term package} provides {@term services} that TODO.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.std.activation.activation_manager",
                            "documentation": "<b>WARNING:</b> Use only as a sample. The API is experimental and subject to change in future versions. <p> Activation tracking/management service. <p> An activation describes a method invocation in the runtime.",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "cancel",
                                    "documentation": "Asks for cancellation of a running activation. Whether or not the cancellation request will have any effect depends on the implementation of the method that has to be canceled.",
                                    "params":
                                    [
                                        {
                                            "name": "activation_id",
                                            "documentation": "activation identifier",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "there is no activation with the specified id"
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.std.errors",
                    "documentation": "The {@name com.vmware.vapi.std.errors} {@term package} provides the standard {@term errors} that can be included in the list of {@term errors} in the specification of {@term operations} to indicate that the {@term operation} might report those {@term errors}. It also provides some {@term structures} intended to be used as payload to provide additional information about those {@term errors}.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.std.errors.already_exists",
                            "type": "Error",
                            "documentation": "The {@name AlreadyExists} {@term error} indicates that an attempt was made to create an entity but the entity already exists.  Typically the entity has a name or identifier that is required to be unique in some context, but there is already an entity with that name or identifier in that context. <p> Examples: <ul> <li>Trying to create a new tag category when a tag category with the specified name already exists.</li> <li>Trying to create a new tag in tag category when a tag with the specified name already exists the tag category.</li> <li>Trying to create a LUN with a specific UUID on a node (for replication purposes) when a LUN with that UUID already exists on the node.</li> <li>Trying to create a file in a directory or move or copy a file to a directory when a file with that name already exists in the directory. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.already_in_desired_state",
                            "type": "Error",
                            "documentation": "The {@name AlreadyInDesiredState} {@term error} indicates that an attempt to change the state of a resource or service had no effect because the resource or service is already in the desired state. <p> Examples: <ul> <li>Trying to power on a virtual machine that is already powered on.</li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.argument_locations",
                            "type": "Structure",
                            "documentation": "The {@name ArgumentLocations} {@term structure} describes which part(s) of the input to the {@term operation} caused the {@term error}. <p> Some types of {@term errors} are caused by the value of one of the inputs to the {@term operation}, possibly due to an interaction with other inputs to the {@term operation}. This {@term structure} is intended to be used as the payload to identify those inputs when the {@term operation} reports {@term errors} like {@link InvalidArgument} or {@link NotFound}. See {@link Error#data}.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "primary",
                                    "documentation": "String describing the location of the input that triggered the {@term error}.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "secondary",
                                    "documentation": "{@term List} (possibly empty) of strings describing the locations of other inputs that caused the the primary input to trigger the {@term error}.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.canceled",
                            "type": "Error",
                            "documentation": "The {@name Canceled} {@term error} indicates that the {@term operation} canceled itself in response to an explicit request to do so. {@term Operations} being \"canceled\" for other reasons (for example the client connection was closed, a time out occured, or due to excessive resource consumption) should not report this {@term error}. <p> Examples: <ul> <li>A user is monitoring the progress of the {@term operation} in a GUI and sees that it is likely to take longer than he is willing to wait and clicks the cancel button. </li> <li>A user invokes the {@term operation} using a command-line tool and decides that she didn't really want to invoke that {@term operation}, and presses CTRL-c. </li> </ul> <p> Counterexamples: <ul> <li>The client's connection to the server was closed. Reporting an {@term error} is pointless since the client will not receive the error response because the connection has been closed. </li> <li>The request is taking longer than some amount of time.  The {@link TimedOut} {@term error} would be reported if the time was specified as part of the input or is documented in the API contract. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.concurrent_change",
                            "type": "Error",
                            "documentation": "The {@name ConcurrentChange} {@term error} indicates  that a data structure, entity, or resource has been modified since some earlier point in time. Typically this happens when the client is doing the <i>write</i> portion of a read-modify-write sequence and indicates that it wants the server to notify it if the data in the server has changed after it did the <i>read</i>, so that it can avoid overwriting that change inadvertantly.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.error",
                            "type": "Error",
                            "documentation": "The {@name Error} {@term error} describes the{@term fields} common to all standard {@term errors}. <p> This {@term error} serves two purposes: <ol> <li>It is the {@term error} that clients in many programming languages can catch to handle all standard {@term errors}.  Typically those clients will display one or more of the localizable messages from {@link #messages} to a human. </li> <li>It is the {@term error} that {@term operations} can report when they need to report some {@term error}, but the {@term error} doesn't fit into any other standard {@term error}, and in fact the only reasonable way for a client to react to the {@term error} is to display the message(s) to a human. </li> </ol>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                                ,
                                "ErrorType": {"value": "Exception"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.feature_in_use",
                            "type": "Error",
                            "documentation": "The {@name FeatureInUse} {@term error} indicates that an action cannot be completed because a feature is in use. <p> Examples: <ul> <li>Trying to disable snapshots on a virtual machine which has a snapshot. </li> <li>Trying to downgrade a license that has licensed features that are in use. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.file_locations",
                            "type": "Structure",
                            "documentation": "The {@name FileLocations} {@term structure} identifies the file(s) that caused the {@term operation} to report the {@term error}. <p> Some types of {@term errors} are caused by a problem with one or more files. This {@term structure} is intended to be used as the payload to identify those files when the {@term operation} reports {@term errors} like {@link NotFound}. See {@link Error#data}.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "primary",
                                    "documentation": "String identifying the file that triggered the {@term error}.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "secondary",
                                    "documentation": "{@term List} (possibly empty) of strings identifying other files that caused the primary file to trigger the {@term error}.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.internal_server_error",
                            "type": "Error",
                            "documentation": "The {@name InternalServerError} {@term error} indicates that the server encounters an unexpected condition that prevented it from fulfilling the request. <p> This {@term error} is reported by the API infrastructure, so it could occur in response to the invocation of any {@term operation}. <p> Examples: <ul> <li>The {@term operation} returns a value whose type doesn't match the type type the {@term operation} says it should return.</li> <li>The {@term operation} reports an {@term error} that is not included in the list of {@term errors} the {@term operation} says that it can report.</li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.invalid_argument",
                            "type": "Error",
                            "documentation": "The {@name InvalidArgument} {@term error} indicates that the values received for one or more {@term parameters} are not acceptable. <p> This {@term error} is reported by the API infrastructure, so it could occur in response to the invocation of any {@term operation}.  It may also be reported as the result of {@term operation}-specific validation. <p> Examples: <ul> <li>A {@term parameter} has a value that is not of the expected type. </li> <li>A {@term parameter} has a value that is not in the required range. </li> <li>A {@term parameter} has a value that is not one of the specifically allowed strings. </li> <li>One {@term field} of a {@term structure} is the tag for a tagged union, and has a specific value but another {@term field} of the {@term structure} that is required to be specified when the tag has that value is not specified, or another {@term field} of the {@term structure} that is required to be unspecified when the tag has that value is specified. </li> </ul> <p> Counterexamples: <ul> <li>Trying to create a new tag in tag category when a tag with the specified name already exists the tag category. The {@link AlreadyExists} {@term error} would be used instead. </li> <li>Invoke the {@term operation} to retrieve information about a virtual machine, passing an id that does not identify an existing virtual machine. The {@link NotFound} {@term error} would be used instead. </li> <li>Attempt to put a virtual machine into a folder that can only contain hosts. The {@link InvalidElementType} {@term error} would be used instead. </li> <li>Attempt to attach a SCSI virtual disk to an IDE port. The {@link InvalidElementType} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.invalid_element_configuration",
                            "type": "Error",
                            "documentation": "The {@name InvalidElementConfiguration} {@term error} indicates that an attempt to modify the configuration of an element or a group containing the element failed due to the configuraton of the element. A typical case is when the {@term operation} is am attempt to change the group membership of the element fails, in which case a configuration change on the element may allow the group membership change to succeed. <p> Examples: <ul> <li>Attempt to move a host with a fault tolerant virtual machine out of a cluster (i.e. make the host a standalone host). </li> <li>Attempt to remove a host from a DRS cluster without putting the host into maintenance mode. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.invalid_element_type",
                            "type": "Error",
                            "documentation": "The {@name InvalidElementType} {@term error} indicates that the server was unable to fulfil the request because an element of a specific type cannot be a member of particular group. <p> This {@term error} could be reported, for example, if an attempt is made to put an element into the wrong type of container. <p> Examples: <ul> <li>Attempt to put a virtual machine into a folder that can only contain hosts. </li> <li>Attempt to attach a SCSI virtual disk to an IDE port. </li> </ul> Counterexamples: <ul> <li>A {@term parameter} has a value that is not of the expected type. The {@link InvalidArgument} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.invalid_request",
                            "type": "Error",
                            "documentation": "The {@name InvalidRequest} {@term error} indicates that the request is malformed in such a way that the server is unable to process it. <p> Examples: <ul> <li>The XML in a SOAP request is not well-formed so the server cannot parse the request. </li> <li>The XML in a SOAP request is well-formed but does not match the structure required by the SOAP specification. </li> <li>A JSON-RPC request is not valid JSON. </li> <li>The JSON sent in a JSON-RPC request is not a valid JSON-RPC Request object. </li> <li>The Request object from a JSON-RPC request does not match the structure required by the API infrastructure. </li> </ul> <p> Counterexamples: <ul> <li>The {@term parameter} has a value that is not with the required range. The {@link InvalidArgument} {@term error} would be used instead. </li> <li>The name of the {@term operation} specified in the request doesn't not match any known {@term operation}. The {@link NotFound} {@term error} would be used instead. </li> </ul> <p> Some transport protocols (for example JSON-RPC) include their own mechanism for reporting these kinds of errors, and the API infrastructure for a programming language may expose the errors using a language specific mechanism, so this {@term error} might not be used.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.not_allowed_in_current_state",
                            "type": "Error",
                            "documentation": "The {@name NotAllowedInCurrentState} {@term error} indicates that the requested {@term operation} is not allowed with a resource or service in its current state.  This could be because the {@term operation} is performing a configuration change that is not allowed in the current state or because {@term operation} itself is not allowed in the current state. <p> Examples: <ul> <li>Trying to add a virtual device that cannot be hot plugged to a running virtual machine. </li> <li>Trying to upgrade the virtual hardware version for a suspended virtual machine. </li> <li>Trying to power off, reset, or suspend a virtual machine that is not powered on. </li> </ul> <p> Counterexamples: <ul> <li>Trying to power off a virtual machine that is in the process of being powered on. The {@link ResourceBusy} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.not_found",
                            "type": "Error",
                            "documentation": "The {@name NotFound} {@term error} indicates that a specified element could not be found. <p> Examples: <ul> <li>Invoke the {@term operation} to retrieve information about a virtual machine, passing an id that does not identify an existing virtual machine. </li> <li>Invoke the {@term operation} to modify the configuration of a virtual nic, passing an id that does not identify an existing virtual nic in the specified virtual machine. </li> <li>Invoke the {@term operation} to remove a vswitch, passing an id that does not identify an existing vswitch. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.operation_not_found",
                            "type": "Error",
                            "documentation": "The {@name OperationNotFound} {@term error} indicates that the {@term operation} specified in the request could not be found. <p> Every API request specifies a service identifier and an operation identifier along with the {@term parameters}. If the API infrastructure is unable to find the requested {@term service} or {@term operation} it reports this {@term error}. <p> This {@term error} can be reported by the API infrastructure for any {@term operation}, but it is specific to the API infrastructure, and should never be reported by the implementation of any {@term operation}. <p> Examples: <ul> <li>A client provides an invalid service or operation identifier when invoking the {@term operation} using a dynamic interface (for example REST). </li> <li>A client invokes the {@term operation} from a {@term service}, but that {@term service} has not been installed. </li> </ul> <p> Counterexamples: <ul> <li>A client invokes a task scheduling {@term operation}, but provides an invalid service identifier or operation identifier. The {@link NotFound} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.resource_busy",
                            "type": "Error",
                            "documentation": "The {@name ResourceBusy} {@term error} indicates that the {@term operation} could not be completed because a resource it needs is busy. <p> Examples: <ul> <li>Trying to power off a virtual machine that is in the process of being powered on. </li> </ul> <p> Counterexamples: <ul> <li>Trying to remove a VMFS datastore when there is a virtual machine registered on any host attached to the datastore. The {@link ResourceInUse} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.resource_in_use",
                            "type": "Error",
                            "documentation": "The {@name ResourceInUse} {@term error} indicates that the {@term operation} could not be completed because a resource is in use. <p> Examples: <ul> <li>Trying to remove a VMFS datastore when the is a virtual machine registered on any host attached to the datastore. </li> <li>Trying to add a virtual switch if the physical network adapter being bridged is already in use. </li> </ul> <p> Counterexamples: <ul> <li>Trying to power off a virtual machine that is in the process of being powered on. The {@link ResourceBusy} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.resource_inaccessible",
                            "type": "Error",
                            "documentation": "The {@name ResourceInaccessible} {@term error} indicates that the {@term operation} could not be completed because an entity is not accessible. <p> Examples: <ul> <li>Attempt to invoke some {@term operation} on a virtual machine when the virtual machine's configuration file is not accessible (for example due to a storage APD condition). </li> </ul> <p> Counterexamples: <ul> <li>Attempt to invoke some {@term operation} when the server is too busy. The {@link ServiceUnavailable} {@term error} would be used instead. </li> <li>Attempt to invoke some {@term operation} when the server is undergoing maintenance. The {@link ServiceUnavailable} {@term error} would be used instead. </li> <li>Some {@term operation} fails to contact VMware Tools running inside the virtual machine. The {@link ServiceUnavailable} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.service_unavailable",
                            "type": "Error",
                            "documentation": "The {@name ServiceUnavailable} {@term error} indicates that the {@term service} is unavailable. <p> Examples: <ul> <li>Attempt to invoke a {@term operation} when the server is too busy. </li> <li>Attempt to invoke a {@term operation} when the server is undergoing maintenance. </li> <li>An {@term operation} fails to contact VMware Tools running inside the virtual machine. </li> </ul> <p> Counterexamples: <ul> <li>A client provides an invalid service or operation identifier when invoking the {@term operation} using a dynamic interface (for example REST). The {@link OperationNotFound} {@term error} would be used instead. </li> <li>A client invokes the {@term operation} from the {@term service}, but that {@term service} has not been installed. The {@link OperationNotFound} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.timed_out",
                            "type": "Error",
                            "documentation": "The {@name TimedOut} {@term error} indicates that the {@term operation} did not complete within the allowed amount of time.  The allowed amount of time might be: <ul> <li>provided by the client as an input {@term parameter}. </li> <li>a fixed limit of the {@term service} implementation that is a documented part of the contract of the {@term service}. </li> <li>a configurable limit used by the implementation of the {@term service}. </li> <li>a dynamic limit computed by the implementation of the {@term service}. </li> </ul> The {@term operation} may or may not complete after the {@name TimedOut} {@term error} was reported. <p> Examples: <ul> <li>The {@term operation} was unable to complete within the timeout duration specified by a {@term parameter} of the {@term operation}. </li> </ul> <p> Counterexamples: <ul> <li>A server implementation that puts requests into a queue before dispatching them might delete a request from the queue if it doesn't get dispatched within <i>n</i> minutes.  The {@link ServiceUnavailable} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.transient_indication",
                            "type": "Structure",
                            "documentation": "The {@name TransientIndication} {@term structure} indicates whether or not the {@term error} is transient. <p> Some types of {@term errors} are transient in certain situtations and not transient in other situtations.  This {@term error} payload can be used to indicate to clients whether a particular {@term error} is transient. See {@link Error#data}.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "is_transient",
                                    "documentation": "Indicates that the {@term error} this {@term structure} is attached to is transient.",
                                    "type": {"category": "primitive", "primitive_type": "boolean"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.unable_to_allocate_resource",
                            "type": "Error",
                            "documentation": "The {@name UnableToAllocateResource} {@term error} indicates that the {@term operation} failed because it was unable to allocate or acquire a required resource. <p> Examples: <ul> <li>Trying to power on a virtual machine when there are not enough licenses to do so. </li> <li>Trying to power on a virtual machine that would violate a resource usage policy. </li> </ul> <p> Counterexamples: <ul> <li>Trying to power off a virtual machine that is in the process of being powered on. A {@link ResourceBusy} {@term error} would be used instead. </li> <li>Trying to remove a VMFS datastore when the is a virtual machine registered on any host attached to the datastore. The {@link ResourceInUse} {@term error} would be used instead. </li> <li>Trying to add a virtual switch if the physical network adapter being bridged is already in use. The {@link ResourceInUse} {@term error} would be used instead. </li> <li>Attempt to invoke some {@term operation} on a virtual machine when the virtual machine's configuration file is not accessible (for example due to a storage APD condition). The {@link ResourceInaccessible} {@term error} would be used instead. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.unauthenticated",
                            "type": "Error",
                            "documentation": "The {@name Unauthenticated} {@term error} indicates that the {@term operation} requires authentication and the user is not authenticated. <p> API requests may include a security context containing user credentials. For example, the user credentials could be a SAML token, a user name and password, or the session identifier for a previously established session. <p> Examples: <ul> <li>The SAML token in the request's security context has expired. </li> <li>The user name and password in the request's security context are invalid. </li> <li>The session identifier in the request's security context identifies a session that has expired. </li> </ul> Counterexamples: <ul> <li> The user is authenticated but isn't authorized to perform the requested {@term operation}. The {@link Unauthorized} {@term error} would be used instead. </li> </ul> <p> For security reasons, the {@link Error#data} {@term field} in this {@term error} is {@term unset}, and the {@link Error#messages} {@term field} in this {@term error} does not disclose which part of the security context is correct or incorrect.  For example the messages would not disclose whether a username or a password is valid or invalid, but only that a combination of username and password is invalid.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.unauthorized",
                            "type": "Error",
                            "documentation": "The {@name Unauthorized} {@term error} indicates that the user is not authorized to perform the {@term operation}. <p> API requests may include a security context containing user credentials. For example, the user credentials could be a SAML token, a user name and password, or the session identifier for a previously established session. Invoking the {@term operation} may require that the user identified by those credentials has particular privileges on the {@term operation} or on one or more  resource identifiers passed to the {@term operation}. <p> Examples: <ul> <li>The {@term operation} requires that the user have one or more privileges on the {@term operation}, but the user identified by the credentials in the security context does not have the required privileges. </li> <li>The {@term operation} requires that the user have one or more privileges on a resource identifier passed to the {@term operation}, but the user identified by the credentials in the security context does not have the required privileges. </li> </ul> <p> <p> Counterexamples: <ul> <li>The SAML token in the request's security context has expired.  A {@link Unauthenticated} {@term error} would be used instead. </li> <li>The user name and password in the request's security context are invalid.  The {@link Unauthenticated} {@term error} would be used instead. </li> <li>The session identifier in the request's security context identifies a session that has expired.  The {@link Unauthenticated} {@term error} would be used instead. </li> </ul> <p> For security reasons, the {@link Error#data} {@term field} in this {@term error} is {@term unset}, and the {@link Error#messages} {@term field} in this {@term error} does not disclose why the user is not authorized to perform the {@term operation}.  For example the messages would not disclose which privilege the user did not have or which resource identifier the user did not have the required privilege to access.  The API documentation should indicate what privileges are required.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.unexpected_input",
                            "type": "Error",
                            "documentation": "The {@name UnexpectedInput} {@term error} indicates that the request contained a {@term parameter} or {@term field} whose name is not known by the server. <p> Every {@term operation} expects {@term parameters} with known names.  Some of those {@term parameters} may be (or contain) {@term structures}, and the {@term operation} expects those {@term structures} to contain {@term fields} with known names. If the {@term operation} receives {@term parameters} or {@term fields} with names that is does not expect, this {@term error} may be reported. <p> This {@term error} can be reported by the API infrastructure for any {@term operation}, but it is specific to the API infrastructure, and should never be reported by the implementation of any {@term operation}. <p> Examples: <ul> <li>A client using stubs generated from the interface specification for version2 of a {@term service} invokes the {@term operation} passing one or more {@term parameters} that were added in version2, but they are communicating with a server that only supports version1 of the {@term service}. </li> <li>A client provides an unexpected {@term parameter} or {@term field} name when invoking the {@term operation} using a dynamic interface (for example REST). </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.unsupported",
                            "type": "Error",
                            "documentation": "The {@name Unsupported} {@term error} indicates that the {@term operation} is not supported by the {@term service}. <p> Examples: <ul> <li>Trying to hot-plug a CPU when the current configuration of the VM does not support hot-plugging of CPUs. </li> <li>Trying to change the memory size to a value that is not within the acceptable guest memory bounds supported by the virtual machine's host. </li> </ul>",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.errors.unverified_peer",
                            "type": "Error",
                            "documentation": "The {@name UnverifiedPeer} {@term error} indicates that an attempt to connect to an unknown or not-yet-trusted endpoint failed because the system was unable to verify the identity of the endpoint. <p> Typically the {{@link Error#data} {@term field} of this error will contain information that can be presented to a human to allow them to decide whether to trust the endpoint. If they decide to trust the endpoint, the request can be resubmitted with an indication that the endpoint should be trusted. <p> Examples: <ul> <li>The client provides an IP address or URL of an endpoint the system should communicate with using an SSL connection, but the endpoint's SSL certificate is self-signed, expired, or otherwise not trustworthy. </li> <li>The client provides an IP address of a host the system should communicate with using ssh, but ssh doesn't recognize the public key of the host</li> </ul> <p>",
                            "metadata":
                            {
                                "Feature": {"value": "VAPI_TOFO"}
                                ,
                                "Released": {"version": "1.3"}
                                ,
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "messages",
                                    "documentation": "Stack of one or more localizable messages for human {@term error} consumers. <p> The message at the top of the stack (first in the list) describes the {@term error} from the perspective of the {@term operation} the client invoked. Each subsequent message in the stack describes the \"cause\" of the prior message.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.localizable_message"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "data",
                                    "documentation": "Data to facilitate clients responding to the {@term operation} reporting a standard {@term error} to indicating that it was unable to complete successfully. <p> {@term Operations} may provide data that clients can use when responding to {@term errors}.  Since the data that clients need may be specific to the context of the {@term operation} reporting the {@term error}, different {@term operations} that report the same {@term error} may provide different data in the {@term error}.  The documentation for each each {@term operation} will describe what, if any, data it provides for each {@term error} it reports. The {@link ArgumentLocations}, {@link FileLocations}, and {@link TransientIndication} {@term structures} are intended as possible values for this {@term field}.  {@link com.vmware.vapi.std.DynamicID} may also be useful as a value for this {@term field} (although that is not its primary purpose).  Some {@term services} may provide their own specific {@term structures} for use as the value of this {@term field} when reporting {@term errors} from their {@term operations}.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.std.interposition",
                    "documentation": "The {@name com.vmware.vapi.std.interposition} {@term package} provides {@term services} that TODO.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.std.interposition.invocation_request",
                            "type": "Structure",
                            "documentation": "Information about an interposed request for operation invocation. All interposers would receive an instance of this structure as an input parameter.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "service_id",
                                    "documentation": "Fully qualified name of the service which contains the interposed operation. In canonical format. For example org.example.hello.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "operation_id",
                                    "documentation": "Name of the interposed operation. In canonical format. For example say_hello.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "operation_input",
                                    "documentation": "Input of the interposed operation.",
                                    "type": {"category": "primitive", "primitive_type": "opaque"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "user",
                                    "documentation": "User which started the interposed operation.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.interposition.security_principal"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "groups",
                                    "documentation": "Groups of the user who started the interposed operation. Would be empty if there is no authentication information.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.interposition.security_principal"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.interposition.invocation_result",
                            "type": "Structure",
                            "documentation": "Information about the result from an interposed operation invocation. All POST interposers will receive an instance of this structure.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                                {
                                    "name": "com.vmware.vapi.std.interposition.invocation_result.result_type",
                                    "documentation": "Type of the invocation result.",
                                    "metadata":
                                    {
                                    }
                            ,
                                    "values":
                                    [
                                        {
                                            "name": "NORMAL_RESULT",
                                            "documentation": "Normal invocation result.",
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "ERROR_RESULT",
                                            "documentation": "Error invocation result.",
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "result_type",
                                    "documentation": "Type of the invocation result.",
                                    "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.std.interposition.invocation_result.result_type"},
                                    "metadata":
                                    {
                                        "UnionTag": {"value": "true"}
                                    }

                                }
                                ,
                                {
                                    "name": "output",
                                    "documentation": "Normal result value.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "opaque"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "result_type", "value": ["NORMAL_RESULT"]}
                                    }

                                }
                                ,
                                {
                                    "name": "error",
                                    "documentation": "Error result value.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "dynamic_structure"}},
                                    "metadata":
                                    {
                                        "UnionCase": {"tag": "result_type", "value": ["ERROR_RESULT"]}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.interposition.security_principal",
                            "type": "Structure",
                            "documentation": "VMODL equivalent of com.vmware.vapi.security.PrincipalId.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "name",
                                    "documentation": "Principal name.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "domain",
                                    "documentation": "Principal domain.",
                                    "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.std.introspection",
                    "documentation": "The {@link com.vmware.vapi.std.introspection} {@term package} provides {@term services} that expose basic information about the vAPI {@term services} registered with a vAPI provider.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.std.introspection.operation",
                            "documentation": "The {@link Operation} service provides operations to retrieve information about the operations present in a vAPI service.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.std.introspection.operation.data_definition",
                                    "type": "Structure",
                                    "documentation": "The {@link DataDefinition} structure describes a vAPI data type.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                        {
                                            "name": "com.vmware.vapi.std.introspection.operation.data_definition.data_type",
                                            "documentation": "The {@link DataType} enumeration provides values representing the data types supported by the vAPI infrastructure.",
                                            "metadata":
                                            {
                                            }
                                    ,
                                            "values":
                                            [
                                                {
                                                    "name": "BINARY",
                                                    "documentation": "Indicates the value is a binary type.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "BOOLEAN",
                                                    "documentation": "Indicates the value is a boolean type. The possible values are True and False equivalent of the language used to invoke this operation.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "DOUBLE",
                                                    "documentation": "Indicates the value is a double type. It is a 64 bit floating point number.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "DYNAMIC_STRUCTURE",
                                                    "documentation": "Indicates the value is a dynamic structure. This means, any data of type {@link DataType#STRUCTURE} can be used.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "ERROR",
                                                    "documentation": "Indicates the value is a specific error type.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "ANY_ERROR",
                                                    "documentation": "Indicates the value is arbitrary error type. This means, any data of type {@link DataType#ERROR} can be used.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "LIST",
                                                    "documentation": "Indicates the value is a list data type. Any value of this type can have zero or more elements in the list.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "LONG",
                                                    "documentation": "Indicates the value is a long data type. It is a 64 bit signed integer number.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "OPAQUE",
                                                    "documentation": "Indicates the value is an opaque type. This means, data of any {@link DataType} can be used.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "OPTIONAL",
                                                    "documentation": "Indicates the value is an optional data type. Any value of this type can be null.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "SECRET",
                                                    "documentation": "Indicates the value is a secret data type. This is used for sensitive information. The server will not log any data of this type and if possible wipe the data from the memory after usage.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "STRING",
                                                    "documentation": "Indicates the value is a string data type. This is a unicode string.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "STRUCTURE",
                                                    "documentation": "Indicates the value is a structure data type. A structure has string identifier and a set of fields with corresponding values.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "STRUCTURE_REF",
                                                    "documentation": "Indicates the value is a structure reference. This is used to break circular dependencies in the type references. This just has a string identifier of the structure. Clients have to maintain a list of structures already visited and use that to resolve this reference.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                                ,
                                                {
                                                    "name": "VOID",
                                                    "documentation": "Indicates the value is a void data type.",
                                                    "metadata":
                                                    {
                                                    }

                                                }
                                            ]
                                        }
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "type",
                                            "documentation": "Data type of the value.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.operation.data_definition.data_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "element_definition",
                                            "documentation": "Contains the element definition for generic data types like List and Optional.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.operation.data_definition"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["OPTIONAL", "LIST"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "name",
                                            "documentation": "Fully qualified name of the structure.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["STRUCTURE", "STRUCTURE_REF", "ERROR"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "fields",
                                            "documentation": "Fields of the structure type. The key of the map is the canonical name of the field and the value is the {@link DataDefinition} for the field. The order of the structure fields defined in IDL is not maintained by the {@link Operation} service.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.operation.data_definition"}}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["STRUCTURE", "ERROR"]}
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.std.introspection.operation.info",
                                    "type": "Structure",
                                    "documentation": "Information about a vAPI operation.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "input_definition",
                                            "documentation": "{@link DataDefinition} describing the operation input. <p> The {@link DataDefinition#type} of this field will be {@link DataDefinition.DataType#STRUCTURE}. The keys of {@link DataDefinition#fields} are the names of the operation parameters, and the values of {@link DataDefinition#fields} describe the type of the operation parameters.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.operation.data_definition"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "output_definition",
                                            "documentation": "{@link DataDefinition} describing the operation output.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.operation.data_definition"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "error_definitions",
                                            "documentation": "List of {@link DataDefinition} describing the errors that the operation might report. <p> The {@link DataDefinition#type} of every element in this list will be {@link DataDefinition.DataType#ERROR}.",
                                            "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.operation.data_definition"}},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the set of operation identifiers for a given vAPI service.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "service identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "set of operation identifiers for a given vAPI service.",
                                        "type": {"category": "generic", "generic_type": "Set" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.operation"}
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the service identifier does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Returns the {@link Info} for a given vAPI operation.",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "service identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "operation_id",
                                            "documentation": "operation identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.operation"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "{@link Info} for a given vAPI operation.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.operation.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the operation identifier does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.introspection.provider",
                            "documentation": "The {@link Provider} service provides operations to retrieve information about a vAPI Provider. A provider is a container that exposes one or more vAPI services.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.std.introspection.provider.info",
                                    "type": "Structure",
                                    "documentation": "Information about a vAPI provider",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "id",
                                            "documentation": "Identifier of the provider",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.provider"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "checksum",
                                            "documentation": "Checksum of the information present in the provider. <p> Clients can use this information to check if the service information has changed. When a new service is added or removed (or) one of the existing service information is modified, the value of the checksum changes. <p> The information used to calculate the checksum includes: <ul> <li>service identifiers</li> <li>operation identifiers inside the service</li> <li>input, output and error definitions of an operation</li> </ul>",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "get",
                                    "documentation": "Returns a {@link Info} describing the vAPI provider on which the operation is invoked",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "{@link Info} describing the vAPI provider on which the operation is invoked",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.provider.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.introspection.service",
                            "documentation": "The {@link Service} service provides operations to retrieve information about the services exposed by a vAPI provider. A provider is a container that exposes one or more vAPI services.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.std.introspection.service.info",
                                    "type": "Structure",
                                    "documentation": "Information about a vAPI service",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "operations",
                                            "documentation": "Set of identifiers of operations present in the service",
                                            "type": {"category": "generic", "generic_type": "Set" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.operation"}
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Returns the set of service identifiers.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "set of service identifiers",
                                        "type": {"category": "generic", "generic_type": "Set" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.service"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Returns the {@link Info} for the specified service",
                                    "params":
                                    [
                                        {
                                            "name": "id",
                                            "documentation": "service identifier",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "{@link Info} for the specified service",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.std.introspection.service.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the service identifier does not exist"
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.std",
                    "documentation": "The {@name com.vmware.vapi.std} {@term package} provides standard types that can be used in the interface specification of any {@term service}.",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.std.authentication_scheme",
                            "type": "Structure",
                            "documentation": "The {@link AuthenticationScheme} class defines constants for authentication scheme identifiers for authentication mechanisms present in the vAPI infrastructure shipped by VMware. <p> A third party extension can define and implements it's own authentication mechanism and define a constant in a different IDL file.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "NO_AUTHENTICATION",
                                    "documentation": "Indicates that the request doesn't need any authentication.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.std.security.no_authentication"
                                }
                                ,
                                {
                                    "name": "SAML_BEARER_TOKEN",
                                    "documentation": "Indicates that the security context in a request is using a SAML bearer token based authentication scheme. <p> In this scheme, the following pieces of information has to be passed in the SecurityContext structure in the execution context of the request: <ul> <li>The scheme identifier: com.vmware.vapi.std.security.saml_bearer_token</li> <li>The token itself</li> </ul> <p> Sample security context in JSON format that matches the specification: {@code { 'schemeId': 'com.vmware.vapi.std.security.saml_bearer_token', 'token': 'the token itself' } } vAPI runtime provide convenient factory methods that take SAML bearer token and to create the security context that conforms to the above mentioned format.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.std.security.saml_bearer_token"
                                }
                                ,
                                {
                                    "name": "SAML_HOK_TOKEN",
                                    "documentation": "Indicates that the security context in a request is using a SAML holder-of-key token based authentication scheme. <p> In this scheme, the following pieces of information has to be passed in the SecurityContext structure in the execution context of the request: <ul> <li>The scheme identifier: com.vmware.vapi.std.security.saml_hok_token</li> <li>Signature of the request: This includes - algorithm used for signing the request, SAML holder of key token and signature digest </li> <li>Request timestamp: This includes the {@code created} and {@code expires} timestamp of the request. The timestamp should match the following format - YYYY-MM-DDThh:mm:ss.sssZ (e.g. 1878-03-03T19:20:30.451Z). </ul> <p> Sample security context in JSON format that matches the specification: {@code { 'schemeId': 'com.vmware.vapi.std.security.saml_hok_token', 'signature': { 'alg': 'RS256', 'samlToken': ..., 'value': ..., }, 'timestamp': { 'created': '2012-10-26T12:24:18.941Z', 'expires': '2012-10-26T12:44:18.941Z', } } } vAPI runtime provide convenient factory methods that take SAML holder of key token and private key to create the security context that conforms to the above mentioned format.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.std.security.saml_hok_token"
                                }
                                ,
                                {
                                    "name": "SESSION_ID",
                                    "documentation": "Indicates that the security context in a request is using a session identifier based authentication scheme. <p> In this scheme, the following pieces of information has to be passed in the SecurityContext structure in the execution context of the request: <ul> <li>The scheme identifier - com.vmware.vapi.std.security.session_id</li> <li>Valid session identifier - This is usually returned by a login method of a session manager interface for a particular vAPI service of this authentication scheme</li> </ul> Sample security context in JSON format that matches the specification: {@code { 'schemeId': 'com.vmware.vapi.std.security.session_id', 'sessionId': ...., } } vAPI runtime provides convenient factory methods that take session identifier as input parameter and create a security context that conforms to the above format.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.std.security.session_id"
                                }
                                ,
                                {
                                    "name": "USER_PASSWORD",
                                    "documentation": "Indicates that the security context in a request is using username/password based authentication scheme. <p> In this scheme, the following pieces of information has to be passed in the SecurityContext structure in the execution context of the request: <ul> <li>The scheme identifier - com.vmware.vapi.std.security.user_pass</li> <li>Username</li> <li>Password</li> </ul> <p> Sample security context in JSON format that matches the specification: {@code { 'schemeId': 'com.vmware.vapi.std.security.user_pass', 'userName': ...., 'password': ... } } <br> vAPI runtime provides convenient factory methods that take username and password as input parameters and create a security context that conforms to the above format.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.std.security.user_pass"
                                }
                                ,
                                {
                                    "name": "OAUTH_ACCESS_TOKEN",
                                    "documentation": "Indicates that the security context in a request is using OAuth2 based authentication scheme. <p> In this scheme, the following pieces of information has to be passed in the SecurityContext structure in the execution context of the request: <ul> <li>The scheme identifier - com.vmware.vapi.std.security.oauth</li> <li>Valid OAuth2 access token - This is usually acquired by OAuth2 Authorization Server after successful authentication of the end user.</li> </ul> <p> Sample security context in JSON format that matches the specification: {@code { 'schemeId': 'com.vmware.vapi.std.security.oauth', 'accesstoken': .... } } <br> vAPI runtime provides convenient factory methods that takes OAuth2 access token as input parameter and creates a security context that conforms to the above format.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.std.security.oauth"
                                }
                            ]

                            ,
                            "fields":
                            [

                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.dynamic_ID",
                            "type": "Structure",
                            "documentation": "The {@name DynamicID} {@term structure} represents an identifier for a resource of an arbitrary type.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "type",
                                    "documentation": "The type of resource being identified (for example {@code com.acme.Person}). <p> {@term Services} that contain {@term operations} for creating and deleting resources typically contain a {@term constant} specifying the resource type for the resources being created and deleted. The API metamodel metadata {@term services} include a {@term service} that allows retrieving all the known resource types.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "id",
                                    "documentation": "The identifier for a resource whose type is specified by {@link #type}.",
                                    "type": {"category": "primitive", "primitive_type": "ID"},
                                    "metadata":
                                    {
                                        "Resource": {"value": [], "typeHolder": "type"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.std.localizable_message",
                            "type": "Structure",
                            "documentation": "The {@name LocalizableMessage} {@term structure} represents a localizable string or message template.  {@term Services} include one or more localizable message templates in the {@term errors} they report so that clients can display diagnostic messages in the native language of the user. {@term Services} can include localizable strings in the data returned from {@term operations} to allow clients to display localized status information in the native language of the user.",
                            "metadata":
                            {
                                "Export": {"value": "true"}
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "id",
                                    "documentation": "Unique identifier of the localizable string or message template. <p> This identifier is typically used to retrieve a locale-specific string or message template from a message catalog.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "default_message",
                                    "documentation": "The value of this localizable string or message template in the {@code en_US} (English) locale.  If {@link #id} refers to a message template, the default message will contain the substituted arguments. This value can be used by clients that do not need to display strings and messages in the native language of the user.  It could also be used as a fallback if a client is unable to access the appropriate message catalog.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "args",
                                    "documentation": "Arguments to be substituted into a message template.",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.routing",
                    "documentation": "",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.routing.component_data",
                            "type": "Structure",
                            "documentation": "Routing information of the vAPI component along with its checksum",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "info",
                                    "documentation": "Routing information of the vAPI component",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.component_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "fingerprint",
                                    "documentation": "Fingerprint of metadata of a vAPI component",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.component_info",
                            "type": "Structure",
                            "documentation": "Information about a vAPI component that contains routing information For an explanation of routing information within components, see {@link com.vmware.vapi.metadata.routing.Component}",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "packages",
                                    "documentation": "Routing information of all the vAPI packages. The key in the map is the ID of the package and the value in the map is the routing information for the package For an explanation of routing information within packages, see {@link com.vmware.vapi.metadata.routing.Package}",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.package_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.package"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.operation_info",
                            "type": "Structure",
                            "documentation": "Information about a vAPI operation that contains routing information. For an explanation of containment within operations, see {@link com.vmware.vapi.metadata.routing.Operation}",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "routing_info",
                                    "documentation": "The routing information assigned for this operation. For an explanation of routing information, see {@link com.vmware.vapi.metadata.routing.RoutingInfo}",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.routing_info"},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.package_info",
                            "type": "Structure",
                            "documentation": "Information about a vAPI package containing routing information. <p> For an explanation of routing information within packages, see {@link com.vmware.vapi.metadata.routing.Package}",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "routing_info",
                                    "documentation": "The routing information to be used for all the operations present in this package. If a particular operation has no explicit routing information defined in the routing definition file, this routing info will be used for enforcing routing.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.routing_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "services",
                                    "documentation": "Information about all services in this package that contain routing information. The key in the map is the ID of the service and the value in the map is the routing information for the service For an explanation of routing information within service, see {@link com.vmware.vapi.metadata.routing.Service}",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.service_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.service"}
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.routing_info",
                            "type": "Structure",
                            "documentation": "Routing information",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "routing_path",
                                    "documentation": "The initial version of the routing info allowed routing by single parameter. Clients requested allowing them to place more than one parameters so that the routing is performed by the first non-null argument in the list. To achieve that we have added method com.vmware.vapi.metadata.RoutingInfo#getRoutingPaths() which should be preferred over com.vmware.vapi.metadata.RoutingInfo#getRoutingPath() which is deprecated. The deprecated method will return string representation of the comma-separated list of ids, while the com.vmware.vapi.metadata.RoutingInfo#getRoutingPaths() will return instance of {@code java.util.List<String>} containing the ids.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "routing_strategy",
                                    "documentation": "The routingStrategy is the actual strategy, based on which will be performed the routing. If the routingStrategy is IDROUTE, in {@link RoutingInfo#routingPath} must be assigned the id for the routing. There are also default strategies like IDFIRSTROUTE, LOCAL for which there is no need to specify routingPath. The name of these strategies is clear about where we should look for an ID to route, or if we need ID at all.",
                                    "type": {"category": "primitive", "primitive_type": "string"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "operation_hints",
                                    "documentation": "This is comma-separated list of hints from the input ini file. Here the user must mention the type of the invoked method, e.g. HINTS(create) or HINTS(delete). In the future we expect this field to contain other hints also e.g. HINTS(create,lazy).",
                                    "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "id_types",
                                    "documentation": "This is map of specifically predefined resource types in the routing metadata. For example id types that do not require storage in the Inventory Service. Those type of objects are called 'positioned' - it is well known in advance where those objects will be routed, because their ids contain VC server guid. Example: Content Library Sessions are considered transient objects that do not need to be persisted in the IS. Routing ini file must contain section: [types] com.vmware.content.DownloadSession=positioned The map therefore will contain: {{\"com.vmware.content.DownloadSession\", \"positioned\"}} Note: This should not be final solution. To avoid duplication, currently this map will be stored only in one RoutingInfo object across the whole ProductModel. In the future, it might be moved to a common place as ComponentInfo, for example.",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "string"}, "map_value_type": {"category": "primitive", "primitive_type": "string"}},
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.service_info",
                            "type": "Structure",
                            "documentation": "Information about a vAPI service that has routing information A service is said to contain routing information if any of its operations have routing information",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                            ]

                            ,
                            "fields":
                            [

                                {
                                    "name": "routing_info",
                                    "documentation": "The routing information to be used for all the operations present in this service. If a particular operation has no explicit routing information defined in the routing definition file, this routing info will be used for enforcing routing.",
                                    "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.routing_info"},
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                {
                                    "name": "operations",
                                    "documentation": "Information about all operations in this service that contain routing Information. The key in the map is the ID of the operation and the value in the map is the routing information for this operation. <p> For an explanation of routing information within operations, see {@link com.vmware.vapi.metadata.routing.Operation}",
                                    "type": {"category": "generic", "generic_type": "Map" ,"map_key_type": {"category": "primitive", "primitive_type": "ID"}, "map_value_type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.operation_info"}},
                                    "metadata":
                                    {
                                        "Resource": {"value": "com.vmware.vapi.operation"}
                                    }

                                }
                            ]
                        }
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.routing.component",
                            "documentation": "Operations to retrieve information about the routing information in a vAPI component. A Component is said to contain routing information if any of its packages, services or methods contain routing information",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for vAPI Component.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.component"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "List all the vAPI components that contain operations which have routing information.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "list of fully qualified component names",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.component"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Get the routing information for a vAPI component",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "fully qualified component name",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "routing information for the vAPI component",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.component_data"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the component name does not exist"
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Checksum of all routing metadata for a vAPI component on the server",
                                    "params":
                                    [
                                        {
                                            "name": "component_id",
                                            "documentation": "fully qualified component name",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.component"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "checksum of routing metadata for a vAPI component",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the component name does not exist"
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.package",
                            "documentation": "Operations to retrieve information about routing information in a vAPI package A Package is said to contain routing information if there is a default RoutingInfo assigned to all operations within a package or if one of the operations within this package has explicit routing information",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for vAPI package.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.package"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "List of all vAPI packages that have routing information",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "list of fully qualified package names",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.package"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Get the routing information for a vAPI package",
                                    "params":
                                    [
                                        {
                                            "name": "package_id",
                                            "documentation": "fully qualified package name",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.package"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "routing information for the vAPI package",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.package_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the package name does not exist"
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.service",
                            "documentation": "Operations to retrieve information about routing information of a vAPI service",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for vAPI Service.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.service"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Get list of all vAPI services that have operations with routing information",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "list of fully qualified service names",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.service"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Get the routing information for a vAPI service",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "fully qualified service name",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "identifier information for the vAPI service",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.service_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the service name does not exist"
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                        ,
                        {
                            "name": "com.vmware.vapi.metadata.routing.source",
                            "documentation": "Operations to manage the metadata sources for routing information",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for vAPI metadata source.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.metadata.source"
                                }
                            ]

                            ,
                            "structures":
                            [
                                {
                                    "name": "com.vmware.vapi.metadata.routing.source.info",
                                    "type": "Structure",
                                    "documentation": "Metadata source info.",
                                    "metadata":
                                    {
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "Description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the file that has the metadata information.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "URI of the remote vAPI endpoint. This should be of the format http(s):IP:port/namespace.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                                ,
                                {
                                    "name": "com.vmware.vapi.metadata.routing.source.create_spec",
                                    "type": "Structure",
                                    "documentation": "Metadata source create spec.",
                                    "metadata":
                                    {
                                        "Include": {"value": "com.vmware.vapi.metadata.source_create_spec"}
                                    }

                                    ,
                                    "enumerations":
                                    [
                                    ]

                                    ,
                                    "constants":
                                    [
                                    ]

                                    ,
                                    "fields":
                                    [

                                        {
                                            "name": "description",
                                            "documentation": "English language human readable description of the source.",
                                            "type": {"category": "primitive", "primitive_type": "string"},
                                            "metadata":
                                            {
                                            }

                                        }
                                        ,
                                        {
                                            "name": "type",
                                            "documentation": "Type of the metadata source.",
                                            "type": {"category": "user_defined", "user_defined_type": "Enumeration" ,"user_defined_type_name": "com.vmware.vapi.metadata.source_type"},
                                            "metadata":
                                            {
                                                "UnionTag": {"value": "true"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "filepath",
                                            "documentation": "Absolute file path of the metamodel metadata file that has the metamodel information about one component element.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "string"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["FILE"]}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "address",
                                            "documentation": "Connection information of the remote server. This should be of the format http(s)://IP:port/namespace. <p> The remote server should contain the {@term services} in {@link com.vmware.vapi.metadata.metamodel} {@term package}. It could expose metamodel information of one or more components.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "URI"}},
                                            "metadata":
                                            {
                                                "UnionCase": {"tag": "type", "value": ["REMOTE"]}
                                            }

                                        }
                                    ]
                                }
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "create",
                                    "documentation": "Create a new metadata source.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "metadata source identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "spec",
                                            "documentation": "create specification.",
                                            "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.source.create_spec"},
                                            "metadata":
                                            {
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.already_exists",
                                            "documentation": "If the metadata source identifier is already present."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.invalid_argument",
                                            "documentation": "If type of the source specified in @{link CreateSpec#type} is invalid."
                                        }
                                        ,
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the file specified in @{link CreateSpec#filepath} does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "delete",
                                    "documentation": "Delete a metadata source.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Metadata source identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Get the details about a metadata source.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Metadata source identifier.",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Metadata source info.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.source.info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "list",
                                    "documentation": "List all the metadata sources.",
                                    "params":
                                    [
                                    ],
                                    "result":
                                    {
                                        "documentation": "List of all metadata sources.",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                        }

                                    },
                                    "errors":
                                    [
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "reload",
                                    "documentation": "Reload metadata from all the sources or of a particular source.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Metadata source identifier.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "",
                                        "type": {"category": "primitive", "primitive_type": "void"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "fingerprint",
                                    "documentation": "Returns the fingerprint of all the sources or of a particular source.",
                                    "params":
                                    [
                                        {
                                            "name": "source_id",
                                            "documentation": "Metadata source identifier.",
                                            "type": {"category": "generic", "generic_type": "Optional" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.metadata.source"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "fingerprint of all the sources or of a particular source.",
                                        "type": {"category": "primitive", "primitive_type": "string"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the metadata source identifier is not found."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
                ,
                {
                    "name": "com.vmware.vapi.metadata.routing.service",
                    "documentation": "",
                    "metadata":
                    {
                    }

                    ,
                    "enumerations":
                    [
                    ]

                    ,
                    "structures":
                    [
                    ]

                    ,
                    "services":
                    [
                        {
                            "name": "com.vmware.vapi.metadata.routing.service.operation",
                            "documentation": "Operations to retrieve information about routing in a vAPI operation",
                            "metadata":
                            {
                            }

                            ,
                            "enumerations":
                            [
                            ]

                            ,
                            "constants":
                            [
                                {
                                    "name": "RESOURCE_TYPE",
                                    "documentation": "Resource type for vAPI operation.",
                                    "type": {"category": "Primitive", "type": "String"},
                                    "value": "com.vmware.vapi.operation"
                                }
                            ]

                            ,
                            "structures":
                            [
                            ]

                            ,
                            "operations":
                            [
                                 {
                                    "name": "list",
                                    "documentation": "Get the IDs of all the vAPI operations in the given service that contain routing information",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "list of operation identifiers",
                                        "type": {"category": "generic", "generic_type": "List" ,"element_type": {"category": "primitive", "primitive_type": "ID"}},
                                        "metadata":
                                        {
                                            "Resource": {"value": "com.vmware.vapi.operation"}
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the service identifier does not exist."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                                ,
                                 {
                                    "name": "get",
                                    "documentation": "Get information about a vAPI operation that contains routing information",
                                    "params":
                                    [
                                        {
                                            "name": "service_id",
                                            "documentation": "Identifier of the service",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.service"}
                                            }

                                        }
                                        ,
                                        {
                                            "name": "operation_id",
                                            "documentation": "Identifier of the operation",
                                            "type": {"category": "primitive", "primitive_type": "ID"},
                                            "metadata":
                                            {
                                                "Resource": {"value": "com.vmware.vapi.operation"}
                                            }

                                        }
                                    ],
                                    "result":
                                    {
                                        "documentation": "Operation info for the vAPI operation that contains routing information.",
                                        "type": {"category": "user_defined", "user_defined_type": "Structure" ,"user_defined_type_name": "com.vmware.vapi.metadata.routing.operation_info"},
                                        "metadata":
                                        {
                                        }

                                    },
                                    "errors":
                                    [
                                        {
                                            "user_defined_type_name": "com.vmware.vapi.std.errors.not_found",
                                            "documentation": "If the service identifier does not exist or if the specified operation identifier does not exist in the service."
                                        }
                                    ],
                                    "metadata":
                                    {
                                    }

                                }
                            ]
                        }
                    ]
                }
            ]
        }
    }
}
